Форматирование значений свойств

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
ai91
Сообщения: 19
Зарегистрирован: Вт окт 23, 2018 11:17 pm
Благодарил (а): 4 раза
Поблагодарили: 6 раз

Форматирование значений свойств

Сообщение ai91 » Ср окт 24, 2018 12:01 am

Подскажите, пожалуйста, возможно ли настроить форматирование значений свойств объекта. Т.е. например какое-то свойство имеет значение 4432725 в каких-то условных попугаях, которое я хочу чтобы в интерфейсе отображалось в виде "4м, 43см и 27мм", или, допустим "4.42м".

Моя ситуация: полтора года назад установил majordomo, сделал устройство считывающее значения счетчиков - газа и электричества: esp8266 читает, декодирует и пишет в MQTT.
Majordomo, в свою очередь, читает значения и ежеминутно аккуратно складывает в базу. Но пишет значения в максимально сыром виде: электричество пишет с коэфициентом 0.1 Ватта (т.е., например текущее сырое значение = 74757756, что соответсвует 7475 kW), а газ с коэфициентом 0.01 м3 (т.е. текущее значение 524331 соответсвует 5243 м3). Также настроил я сохранение в базу кучи разных дельт для построения графиков: есть ежеминутные значения, есть ежедневные, есть изменения за минуту, за час, за день, за месяц, за год.
И вот, имею я в базе кучу накопленых данных за полтора года, которые можно красиво рисовать и анализировать.
Но незадача - только взялся я за графики, и собственно отображение текущих значений, как обнаружил что не могу найти способ как произвести автоматическое преобразование моих скоэффициентнутых значений. В итоге глядя на график я могу только видеть динамику, но понять реальное значение - надо напрягаться.
Вот пару примеров с электричеством:
https://www.dropbox.com/s/63yevhyiqq36m ... 1.png?dl=0
https://www.dropbox.com/s/l205ix6pk31m2 ... 2.png?dl=0

Собственно вопрос: есть ли возможность сделать все красиво?
Если решать в лоб - то можно сделать кастомную страницу, которая будет форматировать как надо, и кастомный график (не нашел как сделать тонкую настройку легенды в highcharts модуле).
Однако хотелось бы какое-то более элегантное решение, чтобы форматирование применялось автоматически, и можно было положить форматированное свойство на разные страницы/менюшки без дополнительного кода на этих самых страницах.
Например что-то вроде такого (и аналогичное для каждой дельты что есть у меня):
https://www.dropbox.com/s/twalzpqlmlebs ... 3.png?dl=0
Однако данный вариант не работает.

Собтсвенно в этом вопрос к гуру - как можно добиться того что мне надо с наименьшими затратами?
За это сообщение автора ai91 поблагодарил:
chimik (Ср окт 24, 2018 12:58 pm)
Рейтинг: 1.16%
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Форматирование значений свойств

Сообщение skysilver » Ср окт 24, 2018 3:44 pm

ai91 писал(а):
Ср окт 24, 2018 12:01 am
Собственно вопрос: есть ли возможность сделать все красиво?
Вижу два пути:
1) Делать все преобразования на стороне JS при отрисовке графиков.
2) Завести доп. свойства у объектов и через SQL-запросы и php-сценарий записать в них новую историю с нужным форматом данных.
За это сообщение автора skysilver поблагодарил:
ai91 (Чт окт 25, 2018 10:15 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить