Перейти к основному содержимому

Интеграция с умным домом (Home Assistant, ioBroker, Node-RED)

Контроллер публикует состояние и принимает команды по MQTT в конвенции Wirenboard: базовый топик — для чтения, топик с суффиксом /on — для записи команды. Ни одна из систем ниже не требует какой-то особой настройки на самом контроллере, кроме обычного включения MQTT (см. «Сеть и MQTT»).

Топики устройства

Идентификатор устройства в MQTT — это значение поля Client name из настроек MQTT, приведённое к нижнему регистру. Дальше в примерах используется scalior-slc-xxxx — подставьте своё.

/devices/scalior-slc-xxxx/meta → описание устройства (JSON)
/devices/scalior-slc-xxxx/meta/name → "Scalior SLC"
/devices/scalior-slc-xxxx/meta/driver → "scalior"

/devices/scalior-slc-xxxx/controls/<Control><X> → состояние (read-only)
/devices/scalior-slc-xxxx/controls/<Control><X>/on → команда (write)

<X> — буква/цифра пролёта: M (Master) или 14. Что именно публикуется, определяется настройкой Expose topics на панели MQTT контроллера — там же нужно отметить хотя бы один пролёт (или Master), прежде чем настраивать интеграции ниже.

<Control>ЗначенияMaster (M)Примечание
Switch0 / 1естьвкл/выкл подсветки
Standby0 / 1естьдежурный режим
Sensors0 / 1естьвкл/выкл датчиков движения
Brightness0100естьяркость, %
UpperSens0 / 1только если пролёт одинверхний датчик движения
BottomSens0 / 1только если пролёт одиннижний датчик движения
Versionстрока— (общий топик, без <X>)версия прошивки
Uptimeчисло, сек— (общий топик, без <X>)время работы, публикуется раз в 60с

Если пролётов несколько, у UpperSens/BottomSens нет отдельного Master-топика — галочка "M" в Expose topics в этом случае означает "включить датчики всех пролётов", а не общий топик.

В примерах ниже используется пролёт 1 (Switch1, Brightness1, BottomSens1). Если у вас всего один пролёт — везде вместо 1 будет M (SwitchM, BrightnessM, BottomSensM).

Цель каждого раздела — минимальная тестовая панель из трёх элементов: переключатель (Switch1), слайдер яркости (Brightness1) и индикатор датчика (BottomSens1).


Home Assistant

Предварительно

  • В HA настроена интеграция MQTT (Settings → Devices & services → MQTT), подключённая к тому же брокеру, что и контроллер.

Настройка на контроллере

  1. Network → MQTT → включить MQTT, заполнить Host/Port/Client name/Login/Password.
  2. В Expose topics отметить нужные пролёты (в т.ч. 1-й).
  3. Включить тумблер Home Assistant Discovery.
  4. Connect.

Результат

Обнаружение полностью автоматическое. В Home Assistant: Settings → Devices & services → MQTT → Devices — появится устройство Scalior SLC со всеми выбранными сущностями (Switch, Standby, Sensors, Brightness — как switch/number, UpperSens/BottomSens — как binary_sensor).

Минимальная панель

Открыв устройство (клик по нему в списке Devices), HA уже показывает страницу устройства со всеми его сущностями — этого достаточно для теста. Чтобы вынести три нужных элемента (Switch1, Brightness1, BottomSens1) на постоянную панель:

  1. Settings → Dashboards → откройте нужный дашборд → Edit Dashboard+ Add Card.
  2. Выберите карточку Entities (или Area/Tile — на вкус), добавьте туда сущности switch.scalior_slc_switch1, number.scalior_slc_brightness1, binary_sensor.scalior_slc_bottomsens1 (точные ID зависят от имени вашего устройства — начните печатать в поле поиска, HA подскажет).
  3. Сохраните карточку.

Если не работает

  • Проверьте статус MQTT на панели контроллера — должно быть "Connected".
  • Убедитесь, что тумблер Home Assistant Discovery включён.
  • Форсируйте переподключение (тумблер MQTT выкл/вкл на контроллере или перезагрузка) — конфигурация публикуется заново при каждом коннекте.
  • Если устройство раньше было в HA и его удалили — тот же способ (форс-реконнект) заново его обнаружит.

ioBroker

Предварительно

Выберите топологию:

  • A. ioBroker сам как брокер — адаптер mqtt в режиме Server, контроллер подключается напрямую к IP ioBroker.
  • B. Внешний брокер (например Mosquitto) — контроллер и адаптер mqtt (режим Client) оба подключаются к нему.

Установка и настройка адаптера

  1. Admin → Adapters → найти mqtt → установить.
  2. Admin → Instances → открыть mqtt.0 (иконка настроек) → указать режим/Host/Port/логин-пароль → Save and close.
  3. Убедиться, что инстанс включён и рядом зелёный индикатор соединения.

Настройка на контроллере

Как в разделе Home Assistant, пункты 1–2, 4 — тумблер Home Assistant Discovery здесь не нужен, на ioBroker не влияет.

Где искать объекты

Objectsmqtt.0devicesscalior-slc-xxxxcontrols. Каждый контрол — отдельный объект с текущим значением; у писабельных (Switch1, Brightness1 и т.п.) рядом будет дочерний объект on (команда) и meta (описание) — в большинстве версий адаптера они не объединяются автоматически в одно read/write-состояние.

Минимальная панель

Шаг 1 — сделать Switch1 и Brightness1 полноценными read/write объектами через Alias:

  1. Правой кнопкой по объекту Switch1Create alias (если пункта нет — создайте пустой State вручную в папке alias.0).
  2. В настройках нового alias-объекта: Read id оставить на Switch1, Write id переключить на дочерний Switch1.on (выбрать через браузер объектов, не вписывать руками).
  3. Повторить то же самое для Brightness1Brightness1.on.

BottomSens1 трогать не нужно — он изначально read-only, ничего писать в него не требуется.

Шаг 2 — собрать панель:

  1. Установите адаптер vis-2 (или классический vis), если ещё не установлен.
  2. Создайте новый View, перетащите на него три виджета: switch (привязать к alias-объекту Switch1), slider (к alias-объекту Brightness1), индикатор/текст (к сырому объекту BottomSens1).
  3. Сохраните и откройте панель по ссылке адаптера vis.

Если не работает

  • Проверьте статус MQTT на панели контроллера.
  • Убедитесь, что в настройках инстанса mqtt нет фильтра, отсекающего /devices/#.
  • Форсируйте переподключение контроллера — все топики публикуются заново с retain=true.
  • Если хочется, чтобы объекты собирались в структуру автоматически (без Alias) — поищите в списке адаптеров ioBroker специализированный адаптер под конвенцию Wirenboard, она у контроллера именно такая; насколько он актуален в вашей версии ioBroker — нужно проверять на месте.

Node-RED

Автообнаружения тут нет в принципе — каждый топик прописывается в узле вручную, зато никакой возни со слиянием read/write не требуется.

Настройка на контроллере

Как в разделе Home Assistant, пункты 1–2, 4 — Discovery-тумблер не нужен.

Сборка минимальной панели

  1. Установите пакет node-red-dashboard (Menu → Manage palette → Install → node-red-dashboard), если ещё не установлен.
  2. Добавьте узел mqtt-broker (через настройки любого mqtt-узла → Add new mqtt-broker) — впишите Host/Port/логин-пароль брокера.
  3. Чтение — 3 узла mqtt in, каждый подписан на свой топик, выход подключите к соответствующему dashboard-виджету:
    • /devices/scalior-slc-xxxx/controls/Switch1 → виджет switch
    • /devices/scalior-slc-xxxx/controls/Brightness1 → виджет slider (или gauge, если только смотреть)
    • /devices/scalior-slc-xxxx/controls/BottomSens1 → виджет text/led (индикатор)
  4. Запись — 2 узла mqtt out, вход от тех же dashboard-виджетов (switch и slider умеют отправлять msg.payload при взаимодействии):
    • виджет switch → mqtt out → топик /devices/scalior-slc-xxxx/controls/Switch1/on
    • виджет slider → mqtt out → топик /devices/scalior-slc-xxxx/controls/Brightness1/on
  5. Deploy. Панель доступна по адресу http://<node-red-host>:1880/ui (или /dashboard, в зависимости от версии пакета).

Быстрая разведка топиков

Один узел mqtt in с топиком /devices/scalior-slc-xxxx/controls/# покажет вообще все контролы устройства сразу — удобно для проверки до того, как разводить по отдельным узлам.

Если не работает

  • Проверьте, что broker-нода в статусе "connected" (индикатор под узлом на канвасе).
  • Сверьте топик посимвольно — опечатка в /on или в номере пролёта самая частая причина тишины.
  • Через debug-узел, подключённый к любому mqtt in, удобно смотреть, что реально приходит.