Добрый день.
Не могу настроить включение выключение zigbee реле подключенного к Wirenboard через HomeAssistant
HA связан с WB посредством моста - в mosquito.conf прописан топик zigbee устройства следующим образом
topic /devices/ZB-Switch-Master/controls/# both
В HA в configuration.yaml пробовал описать свич следующим образом:
switch:
- unique_id: wbMsvZigbeeSwitch
name: "wb_msv_zigbee_switch"
state_topic: "/devices/ZB-Switch-Master/controls/state"
command_topic: "/devices/ZB-Switch-Master/controls/state/set"
payload_on: 1
payload_off: 0
state_on: "ON"
state_off: "OFF"
value_template: "{{ value_json.state }}"
retain: true
В итоге получаю состояние, но само реле не реагирует на измение в HA.
Помогите, пожалуйста, разобраться.
command_topic set на on попробуйте заменить
Пробовал. Те же яйца. Я так полагаю это справедливо для устройств WB, для zigbee как-то по другому.
Добрый день!
- Посмотрите реальные MQTT-топики с помощью MQTT Explorer — там отобразятся фактически используемые устройства и каналы управления.
- Для проверки работы управления выполните на контроллере команду:
mosquitto_pub -t "/devices/ZB-Switch-Master/controls/K1/on" -m "1"
Если реле сработает — значит, топик корректный и управление через MQTT работает.
- Затем проверьте, чтобы Home Assistant также мог управлять этим же топиком — отправьте команду через интеграцию HA.
- Если публикации работают, для дальнейшей настройки связи между контроллером и HA используйте эту статью.
Также существует альтернативный вариант через wb-engine, позволяющий пробрасывать данные в HA, но имейте в виду:
— появляется дополнительная точка отказа (служба движка);
— за ней придётся следить, чтобы обеспечить стабильную работу проброса.
Уточните, зачем был настроен MQTT-бридж?
Если Home Assistant и контроллер находятся в одной сети и используют один брокер — бридж не требуется и может даже мешать корректной работе.
Подключился к брокеру HA
реле выключено (State=OFF) однако топики set и on равны ON и 1 соответственно. Это нормально?
На стороне WB значения топиков те же.
Мост был создан тк HA и WB находятся в разных местах: HA в квартире, а WB в доме. Сети соединены посредством VPN
Сейчас, понаблюдал, и вижу по истории в MQTT explorer, что данные в топики отправляются. Попробовал отправлять и в set и в on, state при этом не меняется.
Поменял 1 и 0 для payload на ON/OFF - значение пишутся реле не включается. Может в какой другой топик писать надо?
нашел еще один топик, который находится в ветке zigbee2mqtt
Может сюда надо писать?
Добрый день!
Попробуйте данную команду
mosquitto_pub -t “zigbee2mqtt/ZB-Switch-Master/set” -m ‘{“state”:“ON”}’
Я использую подобное правило
defineVirtualDevice(“zb_relay_control”, {
title: “Zigbee реле”,
cells: {
relay: {
type: “switch”,
value: false
}
}
});
defineRule(“zb_relay_toggle”, {
whenChanged: “zb_relay_control/relay”,
then: function(newValue) {
publish(
“zigbee2mqtt/0xa4c138dd3d76d904/set”,
JSON.stringify({ state: newValue ? “ON” : “OFF” }),
2,
false
);
}
});
Получилось!
Подписал HA на топик
topic zigbee2mqtt/ZB-Switch-Master/set both
В настройках объекта в HA тоже сменил командный топик:
- unique_id: wbMsvZigbeeSwitch
name: "wb_msv_zigbee_switch"
state_topic: "/devices/ZB-Switch-Master/controls/state"
command_topic: "zigbee2mqtt/ZB-Switch-Master/set"
payload_on: "ON"
payload_off: "OFF"
state_on: "ON"
state_off: "OFF"
value_template: "{{ value_json.state }}"
retain: true
Теперь все работает.
Спасибо.
ps
state_on: "ON"
state_off: "OFF"
value_template: "{{ value_json.state }}"
Эти строки наверное можно закомментить, тк и без них все прекрасно работает.
1 лайк