Добрый день. Есть возможность сделать визуализацию в svg панели более информативно с большими возможностями? Нужно вывести показания устройства по нажатию на объект. То-есть допустим у меня схема здания, мне нужно чтоб можно было по нажатию на объект отобразились все параметры этого объекта то-есть если это датчик температуры чтоб он мне показал показания этого датчика. Зачем такие сложности, отвечаю. Есть
комбинированные датчики в которых есть огромное количество разных датчиков например (WB-MSW v.3). и если все эти параметры будут постоянно отображаться то мало что будет заметно на самой карте (то-есть грубо говоря эта вся информация она важна но не в постоянном отображение. ).
То есть, грубо говоря, отображать или не отображать слои svg? а есть пример, какой-нибудь svg с такими параметрами, которые хотелось бы прятать?
маленький кружок это датчик (WB-MSW v.3) я б хотел нажать на маленький кружок и чтоб мне вышел большой кружок на который указывает красная стрелка и в этом окне чтоб отображались все параметры этого датчика. я понимаю что большой круг можно сделать прозрачным пока не произойдет событие при котором оно отобразится. но параметры все-равно будут отображаться всегда даже когда не-будет большого круга
Здравствуйте!
Значения параметров можно также скрывать, пример на видео
Вы совершенно верно представляете решение и описываете его на примере круга, только можно не прозрачным его делать, а просто скрывать, для этого использовать поле Visible.
К сожалению, редактор дашборда игнорирует группы, поэтому мы не можем сгруппировать объект и скрывать его целиком, поэтому по условию придётся скрывать и сам кружок и значения.
Заметьте, что скрытие или изменение стиля элемента может происходить только по условию, в котором участвует значение из MQTT топика, поэтому конструкция будет такой:
- Создаёте виртуальное устройство на wb-rules, топики которого будут хранить текущее состояние большого кружочка с цифрами для каждого датчика: 1,2,3,4,5 …
- В редакторе дашборда для синего кружочка (1) назначаете топик одного из контролов созданного выше виртуального устройства и прописываете логику, чтобы при нажатии на этот кружок у вас в топик (1) писалась 1 или 0. То есть просто инвертировалось значение.
- Для большого кружка и цифр в нём прописываете в параметре Visible условие, что если в топике (1) 1, то показываем, а если 0 — скрываем.
я в теории понял, возможно глупый вопрос, но как мне привязать маленький синий кружок к большому с параметрами ?
Не к большому, по нажатию (щелчку) на маленьком инвертируется значение switch в виртуальном устройстве.
Через виртуальное устройство на wb-rules, которое будет посредником.
Я тут ещё подумал, с помощью виртуального устройства можно будет при желании автоматом скрывать уже открытые датчики.
по третьему пункту есть вопрос. параметры датчика не привязываются к большому кругу если указывать style ( в style топик датчика в контроллере )
указал в топике виртуальное устройство и завелось. спасибо за помощь все получилось )
Извините, у меня вопрос по работе. Дело в том что при нажатие параметры некоторое время не отображаются. Нужно время чтоб все стали отображаться. Это нормально или это я нарукожопил?
Думаю, что это баг. До новой публикации в топик после включения видимости параметр отображается некорректно. Сделаю баг-репорт для разработчиков.
я правильно понимаю что на каждый датчик (WB-MSW v.3) нужно создавать новое виртуальное устройство ?
Проще функцией, передавать в нее изменяющиеся параметры. И да, “устройств” может быть одно, главное чтобы контролов в нем было на каждый элемент svg
И да, “устройств” может быть одно, главное чтобы контроллеров в нем было на каждый элемент svg (тут я понял просто в виртуальном устройстве создаю количество необходимое по общему количеству показателей всех устройств) а вот тут я не понял (Проще функцией, передавать в нее изменяющиеся параметры.)
пришел к выводу что он заводится в тот момент когда параметры датчика меняются. если они без изменений они не будут отображаться. может добавить тысячные чтобы решить это? но для того чтоб отображались тысячные я так понимаю необходимо лезть в настройки самого датчика.
Да, значение начинает нормально отображаться после публикации нового значения в привязанный к полю топик. Наверное, хорошее решение сейчас подсказать не получится. Как вариант можно попробовать опрашивать более точный регистр температуры датчика, изменив шаблон:
4 0x0004 Input RO s16 Температура x0.01, °C Error: 0x7FFF 4.2
Также можно попробовать принудительно задать интервал публикации неизменившихся значений в настройках драйвера wb-mqtt-serial:
извините за глупый вопрос! но как мне зайти в регистр датчиков ? и возможно ли это через веб морду ? да и я смотрю у вас Русскоязычное меню . как мне сделать тоже русскоязычное меню ?
А попробуйте вместо сокрытия через Visible делать элемент прозрачным через Style, как вы хотели в самом начале.
Если получится, то вы сможете использовать дашборд уже сейчас и не ждать, пока мы исправим ошибку.
Да, возможно добавить опрос допольнительного регистра и через веб-интерфейс. Нужно сконфигурировать пользовательский регистр:
Переключение на русский язык описано в документации, на всякий случай приложу скриншот:
Если у вас такой настройки нет, то нужно будет обновить ПО контроллера.