Виджеты в ПО AbromLogic: основа для ускорения настройки
В ПО AbromLogic виджет — это карточка устройства на телефоне интегратора и клиента: выключатель, диммер, датчик, RGB-лента. С виджетов начинается работа с объектом: пока карточек нет, нечего связывать в правилах и не из чего собирать сцены.
Раньше каждый виджет описывали руками: тип устройства, каналы, единицы измерения. Теперь виджеты появляются сами — из мета-информации, которую драйверы Wirenboard публикуют в MQTT. В статье разбираем, что это открывает для интегратора и почему после появления виджетов большая часть настройки уходит с YAML на экран телефона.
Откуда берутся карточки
Драйверы wb-mqtt-serial и wb-rules при старте контроллера публикуют в MQTT описания каждого канала: тип (switch, range, датчик), единицы измерения, минимум и максимум, человеческое имя. Мы подписываемся на эти описания и по ним строим виджеты автоматически.
Правило простое: switch превращается в карточку выключателя, range с минимумом и максимумом — в слайдер, канал типа temperature, humidity, voltage, power, concentration — в карточку датчика с нужной подписью единиц. Служебные каналы драйвера (Serial, Buzzer, светодиоды платы, каналы обучения ИК-ПДУ) в карточки не идут — они не нужны интегратору на экране.
Итог: подключили устройство к шине, дождались, пока драйвер его опросит — карточка появилась в приложении без единой строчки конфига.
Топик-пикер: выбор канала касанием
Каждое правило AbromLogic (термостат, сцена, кнопка, оповещение) в качестве входа или выхода принимает MQTT-топик — путь до конкретного канала конкретного устройства. Раньше этот путь набирали в YAML, сверяясь с описанием железа. Один ошибочный символ — правило молча не работает.
Теперь в приложении при редактировании правила рядом с каждым полем «топик» есть кнопка выбора. Нажали — увидели список виджетов объекта, отфильтрованный по подходящему типу: правилу «Термостат» покажут только виджеты датчиков температуры и выключатели, правилу «Сцена» — то, чем можно управлять.
Интегратор не помнит modbus-адрес щита и не открывает шаблон драйвера. Он открывает объект, тыкает в карточку — топик подставился, правило готово.
Быстрые сцены: одна кнопка — новая сцена
Сцена — это набор состояний устройств, который применяется одним нажатием: «Уход», «Ночь», «Кино». Обычная сборка сцены — перечислить в конфиге каждый топик и его значение. На объекте с сорока каналами это долго.
В AbromLogic сцена собирается так: интегратор выставляет свет, климат и розетки в нужное положение прямо на объекте — руками через приложение или физическими выключателями. Потом в приложении выбирает виджеты, которые должны участвовать в сцене, и жмёт «сохранить». Мы снимаем текущие значения этих виджетов, группируем каналы с одинаковым значением в одну команду и записываем сцену.
Дальше сцену можно повесить на кнопку, расписание или голосовой ассистент. Ни разу не открывали редактор конфига.
Композитные карточки для MSW и MAP3E
Есть устройства, которые публикуют в MQTT десятки каналов. Датчик wb-msw v4 отдаёт температуру, влажность, освещённость, CO2, уровень шума, качество воздуха и движение — семь полезных величин и полтора десятка служебных. Трёхфазный счётчик wb-map3e — больше пятидесяти каналов на одно устройство.
Отдавать это простым списком карточек — забить экран интегратора шумом. Мы склеиваем каналы одного устройства в одну композитную карточку: у датчика в приложении показывается одна карточка «wb-msw v4» с вкладками по величинам, у счётчика — карточка «wb-map3e» с фазами и суммарной мощностью.
Служебные каналы (пиковые значения, углы фаз, каналы обучения) отсеиваются встроенным списком исключений. Если конкретный интегратор их всё-таки хочет видеть — их можно вернуть точечно в настройках приложения.
Комнаты и категории поверх виджетов
Как только виджеты появились, объект становится списком карточек. Мы даём этот список сгруппировать: назначить каждой карточке комнату (кухня, спальня, санузел) и категорию (свет, климат, безопасность). Одна карточка может попасть в несколько категорий — например, датчик протечки живёт и в санузле, и в общей категории «безопасность».
Клиент видит объект глазами жильца: «кухня — свет — верхний ярус». Интегратор видит объект глазами инженера: «все выключатели», «все датчики температуры». Обе картины строятся из одного набора виджетов — разметку комнат и категорий делают в приложении, YAML не трогают.
Что это даёт на объекте
Стандартный сценарий пусконаладки на Wirenboard раньше выглядел так: подключить железо, дождаться опроса, вручную перечислить в YAML каждый нужный канал, привязать виджеты к правилам, снова YAML, прогнать сцены — YAML. Половина рабочего дня уходила в редактор.
С разбором MQTT-меты и надстройками поверх неё — топик-пикер, быстрые сцены, композиты, комнаты — интегратор проходит объект с телефона: подключил железо, дождался карточек, разложил по комнатам, накидал сцены и правила касанием. YAML остаётся как резервная копия конфигурации и способ переноса объекта между контроллерами — но перестаёт быть повседневным инструментом.
Еще никто не написал комментариев.