В случае если пакетов в системе нет - контроллер не может своим штатным ПО взаимодействовать с 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. Устройства и объекты появляются, но все недоступны.
Перезапускать 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
Если тема актуальна, почему никто не пользуется 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);
И контрол сам появляется в НА.
Вот сейчас пишу модуль публикации в НА всех контролов, но есть не задачки:
Вопросы в тех.поддержку:
-
Как в /devices/wb-gpio/controls/EXT1_R3A1/meta добавить title и свое поле ha_icon для редактирования из веб интерфейса.
Это же касается /devices/WB-MR6C/controls/K1. -
Как избавиться от
runShellCommand(“mqtt-delete-retained ‘{}/+/{}.{}.{}/#’”.format(…);
как-то же можно это сделать силами javascript?
Заранее спасибо.
Добрый день.
ведь есть WB Engine
Спасибо.
Но это не совсем то.
Что там нет:
- нет icon.
- (и главного) title - не в основном интерфейсе… Я пытаюсь побороть ситуацию когда надо в разных местах. задавать “название”, не хочу WB-MR6C K1 - Хочу “люстра”
И в дашбордах менялось автоматически, ну хоть не через “интерфейс” пусть через 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 данных (пусть не отображаемых веб интерфейсом)?
“Устройства” совсем не для этого. Желаемое делается в виджетах.
Но вообще - возможно будет, когда структура топиков будет приводиться к иерархичесой. То есть “отдельных” топиков не будет,
“Устройства” совсем не для этого. Желаемое делается в виджетах.
Про виджеты - это понятно. (100 дашбордов по 100 виджетов и на каждом 100 реле - очень удобно.)
Я спрашивал о другом, Я спрашивал о Единой Системе хранения meta данных.
Например - я могу в настройках serial (modbus) для модуля MR6C v.3 150 сказать name(Название mqtt)= “MyLikeModule”, title(Имя устройства)=“Мой Любимый Модуль” - НО немогу сказать К1=“Любимое реле”. А для wb-gpio я да же этого не могу… не считая дополнительных опциональных свойств. Как то не логично. Ведь в defineVirtualDevice я могу указать и name и title.
В принципе вопрос стал риторический, если на meta из wb-rules (или ещё откуда) влиять нельзя.