Hassio аддон для интеграции с Wirenboard

Всем привет,

Хотел бы сделать небольшой анонс: я реализовал addon для Hass.io (Home Assistant) для работы с устройствами Wirenboard и скоро планирую сделать его доступным публично. Доступен будет тут: https://github.com/egor-romanko/hassio-addons/

Внутри аддона крутится сервис wb-mqtt-serial, который общается с устройствами по Modbus и отправляет MQTT сообщения в брокер, указанный в конфигурации. Например Mosquitto.

Альфа-версия проработала у меня около месяца - полет нормальный. Если у кого-то есть желание помочь в тестировании - пишите.
UPD от модератора: использование wb-mqtt-serial не на оборудовании WB запрещено лицензией

2 Likes

Привет, что нужно сделать?

Готов тестировать . HASSIO крутится на 4- ой малинке.

@SAA, @anatoshka, спасибо за отклик!

  1. Нужно добавить репозиторий https://github.com/egor-romanko/hassio-addons в Hassio Addon Store и установить аддон hassio-wb-mqtt.
  2. Нужно указать настройки MQTT-брокера в опциях аддона (параметры mqtt_)
  3. Запустить аддон
  4. Отредактировать файл /config/wb-mqtt-serial.conf, сохранив туда свою конфигурацию для wb-mqtt-serial
  5. Перезапустить аддон

А можно попросить инструкцию с копиями экранов? Не понятно к какому брокеру стыковать- к локальному с бриджем с wb?

Данный аддон позволяет работать с устройствами WB без контроллера от Wiren Board. Например: Hassio установлен на Raspberry Pi, к малинке подключен USB to RS485 конвертер, которому напрямую подключаются устройства от WB (проводами к RS485 порту).
Такая схема подразумевает, что MQTT брокер у вас только один, внутри Hassio. Если у вас есть контроллер от Wirenboard, то аддон вам и не нужен, достаточно настроить бридж между ним и Hassio.

Понятно! Спасибо! Буду пробовать

Попробовал- не получилось;) бридж создал, он подключился к локальному брокеру на машине с hass.io и все;) дальше пока не прнятно;(

Спасибо, навскидку удобная штука.
Не хватает MQTT discovery. Было бы удобнее.

Как раз сейчас ищу что-то что позволит прикрутить HA MQTT discobery к Wirenboard…

1 Like

Нашел:
https://www.pvsm.ru/umny-j-dom/352170

И репо: https://github.com/phoenix-mstu/janus-mqtt-proxy

Спасибо! По поводу Discovery: как я вижу на данный момент, “общее” решение возможно только путем добавление логики в wb-mqtt-serial. Но это, в свою очередь, сломает возможность обновлять wb-mqtt-serial и использовать его последнюю версию. Также сомнительно отразится на стабильности решения в целом :slight_smile:
Использование прокси возможно, но в общей схеме пока выглядит сложнее, чем ручная настройка. Если что-то получится - поделитесь!

janus-mqtt-proxy вроде как решает проблему discovery.
Сейчас тестирую.

А как выглядит его конфигурация у вас? По докам кажется, что вам придется описать столько же конфигов, сколько бы написали для прямой интеграции сущностей в hassio, только лежать они будут в janus-mqtt-proxy. :thinking:

В итоге пришлось написать свой бридж, с полной поддержкой MQTT Discovery.
Работают все типы кроме range, т.к. в HA нет такого типа entity из коробки.

Выглядит интересно!
Судя по коду, я думаю у вас уже есть контроллер от Wirenboard, а ваш бридж обрабатывает MQTT сообщения от него и пересылает их в Home Assistant. Это так?
Если да, то выходит мы с вами решаем немного разные задачи: у меня нет контроллера Wirenboard, поэтому устройства опрашиваются обычной Raspberry Pi с Hass.io на борту. Мой аддон общается с устройствами через Modbus, а на выход публикует MQTT сообщения, как это бы делал контроллер.

Да, у меня есть контроллер.
Но вы также можете использовать просто mqtt2serial демон с моим бриджем, он также будет работать.

1 Like

Хорошая идея создать такой бридж. Я по вашему GitHub несколько раз пытался повторить описанное, не получилось. Не хватает знаний. На сколько вам сложно сделать более подробную инструкцию? или вообще сделать addon для hass-io?

Доброго дня!

Присоединяюсь к Vladimir_v.
Если есть возможность, подскажите, как установить данный бридж в случае с HassOS?!

Заранее спасибо!!!

Поставил для теста Аддон, вроде работает.

Вопрос: считывание вход. портов WBIO-DI-WD-14 происходит путем запроса каждого из 14 регистров последовательно? или сразу за один раз запрашивается 14 регистров?

уточню:если WD-14 подключено через MIO то состояния входов читаются из coil:
https://wirenboard.com/wiki/WB-MIO-Modbus-Registers#.D0.9A.D0.B0.D1.80.D1.82.D0.B0_.D1.80.D0.B5.D0.B3.D0.B8.D1.81.D1.82.D1.80.D0.BE.D0.B2_.D1.84.D0.BB.D0.B0.D0.B3.D0.BE.D0.B2_.28coil.29_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D0.B9_.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D0.B5.D0.B9_.D0.B2.D0.B2.D0.BE.D0.B4.D0.B0.2F.D0.B2.D1.8B.D0.B2.D0.BE.D0.B4.D0.B0
И да, логично все 14 coil считать одним запросом, двумя байтами.