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

В случае если пакетов в системе нет - контроллер не может своим штатным ПО взаимодействовать с zigbee адаптером, никак…

мне это и не нужно. мне нужно, что бы он “отдал” устройства WB (MR6C, MDM3) в топик homeassistant. Почему-то часть устройств (164 172) появилсь в топиках homeassistant, а MDM и один MR6C 174 - нет

Так… Я запутался. Какое отношение имеют zigbee устрйоства к Modbus?

zigbee2mqtt точно отношения не имеет к реле.

Покажите их топики, например. Не картинками, именно текстом.
Они чем-то отличаются?

давай попробую объяснить. Конфиг такой:
wb7 с модулями MR6C (164, 172, 174), MDM3 (126) - на нем крутится встроенный mosquitto (назовем его WB7_MQTT), и настроен мост до другого mosquitto (назовем MQTT_MAIN (контейнер на другом сервере в той же сети).
Так же на сервере крутиться z2m, iobroker, home assistant все в контейнерах, и все БЫЛИ подключены к MQTT_MAIN. Потом я решил, что MQTT_MAIN в принципе не нужен, и хотел перевести все устройства на общение через WB7_MQTT. После этого и начались проблемы.
Топики отличаются, не знаю как текстом их показать, но попробую.
на WB7_MQTT есть топики:

homeassistant/light/wb-mr6c_164
homeassistant/light/wb-mr6c_172
/devices/wb-mr6c_164/controls/Input 0/meta/available

но НЕТ homeassistant/light/wb-mr6c_174 и homeassistant/light/wb-mdm3_126, как и нет /devices/wb-mr6c_174/controls/Input 0/meta/available

на MQTT_MAIN (тут уж извини, без картинки не получится):


тут почему-то вообще нет топика meta.
Мой основной вопрос в том, можно ли использовать WB7_MQTT как ОСНОВНОЙ брокер в сети? Что бы на него приходили топики с других устройств (z2m, термостаты работающие по mqtt), что бы уйти от MQTT_MAIN?

отбой! у меня в скрипте “.” затесалась, вот он и не грузился… а я уже что только не перепробовал (((. Привел скрипт к правильному состоянию - все подгрузилось. Прошу прощения. Но вопрос остается открытым, можно ли использовать mosquitto на WB как основной брокер в системе?

Вообще - да, если в том же z2m указать адрес брокера на контроллере - работать будет.

Доброго.
Использовал ваш скрипт. Все было замечательно до последнего обновления HA. Теперь все устройства недоступны.


Что с этим делать. куда смотреть? Пробовал удалять и настраивать интеграцию MQTT в HA. Устройства и объекты появляются, но все недоступны.
image

Перезапускать wb-rules пробовали?

Перегружал весь WB, не помогает.

Напишите в лс попробую помочь

На всякий случай, чтобы сэкономить время тем, ктол будет повторять - в конфиге mosquitto в полях со значениями не должно быть комментариев!

Т.е. в примере, что привел AlexU:

connection wb_hs #неважно что
address {HOST}:1883 #где HOST - ип адрес HA Сервера
remote_username {логин в HA} # логин, установленный на шаге 2 , можно создать отдельного пользователя
remote_password {пароль в HA} # пароль, установленный на шаге 2

clientid home-assistant #неважно что
try_private false
start_type automatic
topic # both

Нужно удалить все комментарии чтобы стало так:

connection wb_hs
address {HOST}:1883
remote_username {логин в HA}
remote_password {пароль в HA}

clientid home-assistant
try_private false
start_type automatic
topic # both
1 лайк

Если тема актуальна, почему никто не пользуется MQTT Discovery - Home Assistant ?

Я пишу:
publish(‘homeassistant/light/namecontrol1/config’,
‘{“~”:“/devices/wb-gpio/controls”, “name”:“Люстра 1”, “object_id”:“namecontrol1”, “unique_id”:“namecontrol1”,“stat_t”:“~/EXT1_R3A1”,“cmd_t”:“~/EXT1_R3A1/on”, “ic”:“mdi:chandelier”, “payload_on”:1, “payload_off”:0, “expire_after”: 300}’, 0, true);
И контрол сам появляется в НА.

Вот сейчас пишу модуль публикации в НА всех контролов, но есть не задачки:
Вопросы в тех.поддержку:

  1. Как в /devices/wb-gpio/controls/EXT1_R3A1/meta добавить title и свое поле ha_icon для редактирования из веб интерфейса.
    Это же касается /devices/WB-MR6C/controls/K1.

  2. Как избавиться от
    runShellCommand(“mqtt-delete-retained ‘{}/+/{}.{}.{}/#’”.format(…);
    как-то же можно это сделать силами javascript?

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

Добрый день.
ведь есть WB Engine

Спасибо.
Но это не совсем то.
Что там нет:

  1. нет icon.
  2. (и главного) title - не в основном интерфейсе… Я пытаюсь побороть ситуацию когда надо в разных местах. задавать “название”, не хочу WB-MR6C K1 - Хочу “люстра” :grinning:
    И в дашбордах менялось автоматически, ну хоть не через “интерфейс” пусть через wb-rules - НО В ОДНОМ МЕСТЕ!

Двумя путями. Первый, простой - опубликовать его из wb-rules, например.
Второй, более сложный - отредактировать как схему соответствющего сервиса так и добавить публикацию в его код.

Вообще при очистке из интерфейса (нажатие корзины) просто публикуется пустая строка в
/devices/[имя]/meta/driver
/devices/[имя]/meta/name

Первый, простой - опубликовать его из wb-rules, например.

Правильно ли я понял:

publish('/devices/wb-gpio/controls/EXT1_R3A1', 
    '{"order":11,"readonly":false,"type":"switch","type":"switch","title":{"en":"Наименование"}, "icon":"my_icon"}', 0, true);

Не приведет к нарушению логики работы контролера и веб интерфейса?

А,

publish('/devices/wb-gpio/controls/MyConrol', 
    '{"order":11,"readonly":false,"type":"switch","type":"switch","title":{"en":"Наименование"}, "icon":"my_icon"}', 0, true);

Создаст новый “виртуальный выключатель” в устройстве wb-gpio и не нарушет логику работы контролера и веб интерфейса?

Но runShellCommand('mqtt-delete-retained "homeassistant/#"') - стирает не только текущее значения, но и все вложения, что мне и нужно.

Именно так - приведет, так как опубликуете его прямо в само значение контрола.
То есть в этом топике хранится текущее значение.

Так, в принципе, сработает. Но это будет довольно негодным решением, нестабильным. Контролами управляет именно описанный в /devices/wb-gpio/meta драйвер. Если добавить сторонние топики то при (например) перезапуске драйвера поведение может быть непредсказуемым.

Последние уточнение:
Получается из wb-rules, для контрола “/devices/wb-gpio/controls/EXT1_R3A1” нет легитимного способа в веб интерфейсе, в “Устройствах” видеть “Блок освещения” → “Люстра”, а так-же нет возможности расширить список meta данных (пусть не отображаемых веб интерфейсом)?

“Устройства” совсем не для этого. Желаемое делается в виджетах.
Screenshot_20230616_203448
Screenshot_20230616_203503

Но вообще - возможно будет, когда структура топиков будет приводиться к иерархичесой. То есть “отдельных” топиков не будет,

“Устройства” совсем не для этого. Желаемое делается в виджетах.

Про виджеты - это понятно. (100 дашбордов по 100 виджетов и на каждом 100 реле - очень удобно.)

Я спрашивал о другом, Я спрашивал о Единой Системе хранения meta данных.
Например - я могу в настройках serial (modbus) для модуля MR6C v.3 150 сказать name(Название mqtt)= “MyLikeModule”, title(Имя устройства)=“Мой Любимый Модуль” - НО немогу сказать К1=“Любимое реле”. А для wb-gpio я да же этого не могу… не считая дополнительных опциональных свойств. Как то не логично. Ведь в defineVirtualDevice я могу указать и name и title.

В принципе вопрос стал риторический, если на meta из wb-rules (или ещё откуда) влиять нельзя.