Предложения по виджетам устройств в web-интерфейсе

Добрый день! Прошу рассмотреть следующие предложения по теме:

  1. В случае, когда длина названия контрола не позволяет вывести название целиком, реализовать две вещи: всплывающую подсказку с полным наименованием и “бегущую строку” с полным названием.

    Безымянный1

  2. В ряде случаев у виртуального устройства может быть или много контролов, или они могут относиться к разным логическим группам, что требует некоей структурированности их отображения. Сейчас это решается через контрол типа “text” с заголовком из последовательности тире или иных символов, что весьма кустарно и трудно адаптируемо к разным режимам отображения. Предлагаю реализовать подход, который с древних времен еще в Delphi был в структурах меню: в случае, если в заголовке контрола есть только один знак тире, то выводить не тире, а просто горизонтальную линию внутри виджета, без значения, значка истории и т.п. Развитием этой логики могла бы быть возможность сворачивать такие группы нажатием на иконку в правой части заголовка группы подобно тому, как это уже сделано для виджетов.

  3. Также хотелось бы иметь возможность добавить на рабочую панель виджет виртуального устройства целиком, не пречисляя его контролы. Здесь дело не столько в лени перечислять контролы, сколько в том, что в ряде случаев в процессе функционирования набор контролов у виртуального устройства может меняться. Например, если есть виртуальное устройство, аккумулирующее ошибки и предупреждения других виртуальных устройств, в котором контролы с типом “alarm”, чтобы не забивать перечень, добавляются только тогда, когда соответствующий “alarm“ активен, и, соответственно, динамически удаляются при утрате актуальности предупреждения. Возможности реализовать такое я пока не нашел.

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнительное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение

Вы затронули web‑интерфейс Wiren Board (панель Devices / Дашборды, виджеты устройств и виртуальные устройства). Отвечу по пунктам.

1. Длинные названия контролов: подсказка и “бегущая строка”

Сейчас в стандартном web‑интерфейсе:

  • заголовки контролов обрезаются по ширине блока,
  • всплывающая подсказка с полным именем показывается не всегда (для одних элементов есть title, для других — нет),
  • “бегущая строка” не реализована.

Обойти проблему на текущей версии можно только:

  1. Укорачивать имена каналов (например, через настройки имен в MQTT или шаблонах устройств).
  2. Либо делать пользовательский фронтенд (через MQTT и свою панель, например, на Node-RED Dashboard / Home Assistant / собственный web).

Ваше предложение по:

  • добавлению title с полным именем по наведению курсора;
  • включению “scrolling” для текста при фокусе/hover,

требует доработки фронтенда (клиентской части web-интерфейса). Самостоятельно это можно реализовать только через форк web-интерфейса и доработку кода (проект wirenboard/homeui на GitHub), но официально такого поведения пока нет.

Я зафиксирую для инженеров, что это фича‑запрос:
– добавить обязательный title ко всем подписям контролов;
– рассмотреть режим анимации длинных подписей (по hover / по фокусу).

2. “Группы” в виджете и горизонтальная линия‑разделитель

Сейчас web‑интерфейс не поддерживает:

  • логические группы контролов внутри одного виджета устройства;
  • collapsible/сворачиваемые группы;
  • специальные “разделители” для виртуальных устройств.

То, что вы делаете через контрол text с ----- в заголовке, действительно единственный штатный обходной путь.

Чтобы приблизиться к желаемому поведению без доработки фронтенда, есть только частичные варианты:

  1. Разнести контролы по нескольким виртуальным устройствам, по логическим группам, и уже сами устройства разложить по виджетам/панелям. Это даёт только “уровень сверху”, но не группировку внутри одного виджета.
  2. Если вы всё же готовы дорабатывать UI, можно в своём форке:
    • трактовать контрол text с именем - / --- как <hr> без значения и иконок;
    • добавить рядом иконку сворачивания группы и скрывать следующие элементы до следующего разделителя.

Как штатной возможности “контрол‑разделитель” или “группа с заголовком и сворачиванием” в текущем интерфейсе нет — это именно предложение на доработку UI.

Я передам инженерам ваше предложение в виде:

  • новое специальное “служебное” поведение для контролов типа text с заголовком - (отрисовывать горизонтальную линию, без значения и истории);
  • расширение этого механизма до групп с возможностью сворачивания (иконка справа, скрытие контролов до следующей линии/группы).

3. Виджет виртуального устройства целиком (динамический набор контролов)

Сейчас при добавлении виджета устройства на панель:

  • нужно явно перечислять контролы, которые должны отображаться;
  • динамическое появление/исчезновение контролов в MQTT не приводит к автоматическому изменению состава полей в уже созданном виджете.

Из-за этого сценарий с “агрегатором ошибок” (виртуальное устройство, в котором контролы типа alarm создаются/удаляются динамически) не реализуем “из коробки”: панель не “подтягивает” новые контролы автоматически.

На текущем ПО возможные обходные варианты:

  1. Добавить все потенциально возможные alarm‑каналы заранее (со статичным набором) и уже логикой включать/выключать их значения и видимость (например, через отдельное агрегированное текстовое поле). Но это противоречит вашей идее динамически создавать и удалять контролы.
  2. Использовать другую панель (Node‑RED Dashboard / Grafana / HA), которая строит представление “по MQTT‑древу” и может отображать контролы более динамически.
  3. Делать свой форк web‑интерфейса, в котором:
    • виджет “Устройство (полностью)” подтягивает список контролов из MQTT и обновляет его при изменениях;
    • настройки виджетов хранят не список контролов, а только ссылку на устройство.

Штатной настройки вида “показать все контролы устройства и автоматически обновлять их список” сейчас нет — это тоже фича‑запрос к web‑интерфейсу.

Что будет дальше

С точки зрения текущих возможностей контроллера/ПО:

  • Ваши 3 пункта — это предложения по развитию web‑интерфейса, а не то, что можно сейчас “включить галочкой”.
  • Обойти ограничения можно только:
    • через реструктуризацию виртуальных устройств (разные устройства под разные группы);
    • или через внешний/кастомный фронтенд, использующий MQTT.

Я передам инженерам поддержку ваше сообщение как набор фича‑запросов к web‑интерфейсу. В рабочий день коллеги смогут:

  • подтвердить, что в ближайших релизах уже есть подобные планы / задачи (если они есть);
  • либо предложить дополнительные обходные варианты, если появятся.

Если у вас есть пример конфигурации виртуального устройства‑агрегатора (кусок /etc/wb-mqtt-confed.d или JSON‑описание), приложите его, пожалуйста, в ответе — это поможет точнее сформировать задачу для разработки.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.

Добрый день,
Направил выаши пожелания разработчикам.
Благодарю за обратную связь!