Интеграция WirenBoard с HomeAssistant

да, совершенно верно, если у вас wb и ha в одной сети, бридж не нужен, просто подключаетесь из ha к внутреннему ип адресу wb.
Клон mqtt удобен, когда сеть за NATом , тогда у вас получается зеркальная , синхронная копия всех значений mqtt из wb на другом сервере с которой можно взаимодействовать так же , как и с локальной.

2 лайка

Вы бы указали, что это набор инструкций для отдельностоящего сервера (причём с процессором с архитектурой amd64), а не для вайренборда. На вайренборде не нужно ставить mosquitto, он уже и так стоит. А ещё, чтобы эти инструкции подошли для выполнения на вайренборде, нужно убрать arch=amd64 из второй строки первого блока кода, убрать sudo из команд (ну или поставить его на вайренборд) и вместо libseccomp ставить libseccomp-dev

А, всё ещё прикольнее, docker поставить можно, вот только места под контейнер ha на вайрене не хватит :slight_smile: Так что если ставить HA на вайрен, то нужно следовать core варианту установки

В /mnt/data - хватит.
Или он, контейнер, сейчас сильно больше 2 ГБ?

я ставил докер родным скриптом, потом переносил его каталоги в /mnt/data и делал симлинки
работает
но как тоже писал, если НА активно сохраняет в свою бд данные и в ненужный момент пропадёт питание, может порушиться файловая система
у меня потом НА не стартовал и приводил WB к ребуту

А вот это странно. Если сторонний сервис никак не описать в watchdog - то он перезагрузку вызывать не должен.

так повредилась файловая система, при старте НА пытался прочитать файлы, что приводило к ошибкам и панике, потом к ребуту

проблема ушла когда с горем пополам в сингл моде отмонтировал 6 раздел, исправил ошибки + удалил файлы журнала файловой системы, т.к. они тоже повредились и при их проверке были неустранимые ошибки
после этого снова всё работает… на долго ли - покажет время

А, именно сам раздел /dev/mmcblk0p6 имел ошибки, монтировался RO?

У меня тоже через симлинк данные на второй раздел перетащить получилось (хотя вроде в конфиге докера можно поправить путь), но ha контейнер превышает имеющееся свободное место и вылетает с ошибкой при распаковке очередного слоя. Я попробовал поставить в варианте core, но там место заканчивается при компиляции свежего питона, не хватает места на все сорцы и промежуточные файлы, а готового билда под armv7 я не нашёл. Если tmp переместить на /mnt/data то может и прокатит. Ну или через кросс компиляцию уже готовый пакетик кинуть. Но мне с этим ковыряться надоело и я остановился на установке nodered и z2m. Последние ставил без контейнера, там только js и так по 300-400 метров отжирает у каждого из них, в контейнере получилось бы также, как с ha, я думаю. В итоге место сейчас забито под завязку, а HA я пошёл на WAGO PFC200 поднимать )

На днях тестировал установку dockerа на флешку и последующий запуск с флешки.
Все прошло успешно.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       979M  511M  401M  57% /
/dev/mmcblk0p6  4.7G  591M  3.9G  14% /mnt/data
/dev/mmcblk1p1   49G  1.8G   45G   4% /mnt/ext

docker version:
Version:           19.03.15
 API version:       1.40
 Go version:        go1.13.15

Также разрабатываю модуль для автоматического добавления устройств ВБ в ХА.

 var config = {
    topic: 'homeassistant',
    ignore: ['Serial'],
    devices: [
        {name: 'wb-w1'},
        {name: 'wb-msw-v3_66', ignore: ['ROM', 'RAM']},
        {name: 'wb-mr6c_79'},
        {name: 'wb-m1w2_243'}
    ]
};
var hass = require("hass");
hass.init(config);

3 лайка

Где-то оно уже было, на github ЕМНИП, но недоделанное.

По хорошему надо получить пакет “wb-mqtt-homeassistant”, чтобы оно умело все модули обслуживать или актуальное большинство. Я свою потребность закрою, кодом планирую поделиться … есть вообще чтото на подобии репозитория модулей для wb-rules?

2 лайка

Вот если код выложите - будет просто отлично. А общего репозитория под скрипты - нету, в основном все тут на форуму в соответствующем разделе.

Можно небольшую инструкцию пожалуйста - так же нужно описывать все модули реле? Если прямое подключение по локальной сети.
Спасибо

[у меня на на WB7 поднят SH, думал автоматизацию сделать на homekit, оказалось это игрушкой и работает через раз, дополнительно на jet home поднял HA. На HA автоматизация локально хранится и ее проще сделать, так кажется. Вроде и на wb что-то ставят но я не дошёл ещё до этого уровня]

Для полноценной интеграции с HomeAssistant необходимо внести одно изменение в модуль wb-mqtt-serial.

Проблема в том, что невозможно полноценно отследить когда устройство стало недоступным.

В wb-mqtt-serial при отсутствии связи с устройством появляется топик /controls/*/meta/error = r, если связь есть то топик удаляется. К сожалению в HomeAssistant и его интеграции mqtt необходимо чтобы топик с доступностью устройства всегда был в наличии. (MQTT Sensor - Home Assistant)

Отсюда просьба:

  1. (предпочтительно) сделать, новый топик /meta/available с значением ‘online’ когда устройство доступно и значением ‘offline’, если устройство пропало (error = r)
  2. или чтобы топик /meta/error не исчезал, присваивать любое другое значение (например error = n)
  3. или можно в значение /controls/*/meta (обычно там такое: { “order”: 13, “readonly”: false, “type”: “switch”}) добавлять параметр error = r , т.к. топик /meta всегда доступен, то можно будет через availability_template написать условие определения доступности устройства.

Подойдет любое решение, но 1) предпочтительней, тогда будет достаточно указать только availability_topic и все остальное HomeAssistant сделает сам, согласно настройкам по умолчанию.

Так, пока можно подставить костыль - вот такое (одно) правило:

публикующее желаемый /meta/avalible при изменении /meta/error
а для начального задания (создания) /meta/avalible - исользовать такой перебор: Получение полного списка устройств - #6 от пользователя AncientAsgard
Вообще - обсудим насчет топика.

За костыль спасибо, пока его добавлю. Но лучше топик сделать.

Бета версия модуля интеграции с HA.
На данный момент умеет корректно отображать и управлять : wb-mr6cu, wb-mr6c, wb-mdm3, wb-mrgbw-d (не все режимы), wb-msw-v3, wb-mwac, wb-m1w2, а также виртуальные устройства.

Важный нюанс, устройства должны иметь имена по умолчанию (топики должны содержать название устройства: wb-mr6c_203/K1)

Установка:

  • Файл hass.js положить в папку /etc/wb-rules-modules.
  • Файл homeassistant.js (назвать можно как угодно) положить в папку /etc/wb-rules (в этом файле описываются настройки и какие устройства интегрировать)
  • Перезапустить wb-rules (systemctl restart wb-rules)

wb-mqtt-homeassistant.zip (4.3 КБ)

5 лайков

Добрый день, @alexey_a большое вам спасибо за ваш труд.
протестировал, работает с вашими модулями.

Обнаружил проблему с яркостью белого светодиода, нужно добавить в конфиг строку
brightness_scale: 100
тк по дефолту там 255 ( и возникают сложности)

так же не работает rgb яркость и смена цвета…
при этом в MQTT Explorer я вижу что сообщения ходят и передается яркость и RGB палитра, но модуль WB на эти изменения не реагирует.
возможно надо идти по шаблону “HS”

возможно инфа будет полезной, спасибо еще раз

2 лайка

Спасибо за отзыв. Действительно wb-mrgbw-d модуль в режиме RGB полноценно еще не тестировал. Но решил поделится, может кому то будет полезно и в таком виде.