Доброго времени суток. Имеется лампа Aqara CL-L02D control via MQTT | Zigbee2MQTT.
Необходимо включать ии выключать ее с кнопки SONOFF SNZB-01P control via MQTT | Zigbee2MQTT
Написал правило.
defineRule(“123”, {
whenChanged: “кнопка”,
then: function (newValue, devName, cellName) {
switch (newValue) {
case “single”:
dev[“лампа”][“state_white”] = “ON”;
dev[“0x84ba20fffedc2bb4”][“action”] = “null”
break;
case “double”:
dev[“лампа”][“state_white”] = “OFF”;
dev[“0x84ba20fffedc2bb4”][“action”] = “null”
break;
}
}
});
При этом статус меняется, но лампа не реагирует.
Подскажите пожалуйста чем проблема?
Здравствуйте.
Проверьте, пожалуйста способ управления согласно инструкции.
Простите пожалуйста, подскажите что не так я делаю?
defineRule(“222”, {
whenChanged: [“кнопка/action”, “лампа/state_white”],
then: function (newValue, devName, cellName,state_white) {
if (newValue == single,state_white==“OFF”){
publish(“zigbee2mqtt/лампа/set”, JSON.stringify({ state_white: “ON” }), 2, false);
dev[“кнопка/action”] = “null”}
if (newValue == single, state_white==“ON”){
publish(“zigbee2mqtt/лампа/set”, JSON.stringify({ state_white: “OFF” }), 2, false);
dev[“кнопка/action”] = “null”}
}
});
Попробуйте friendly_name
писать латинскими буквами
Ну и проверьте выполнение включения/выключения через командную строку, например:
mosquitto_pub -t 'zigbee2mqtt/0x0fffffffffffffff/set' -m '{ "state": "ON" }'
Данное правило работает:
mosquitto_pub -t ‘zigbee2mqtt/0x54ef441000d85c57/set’ -m ‘{ “state_white”: “ON” }’
Так же написал правило, которое работает:
defineRule(“Включение с кнопки”, {
whenChanged: “0x84ba20fffedc2bb4/action”,
then: function (newValue, devName, cellName) {
switch (newValue) {
case “single”:
publish(“zigbee2mqtt/0x54ef441000d85c57/set”, JSON.stringify({ state_white: “ON” }), 2, false);
dev[“0x84ba20fffedc2bb4/action”] = “null”
break;
case “double”:
publish(“zigbee2mqtt/0x54ef441000d85c57/set”, JSON.stringify({ state_rgb: “OFF” }), 2, false);
dev[“0x84ba20fffedc2bb4/action”] = “null”
break;
}
}
});
НО !!!
Я не понимаю почему если я в MQTT Explorer устанавливаю “state_white”: “ON” лампа не включается.
Скорее всего по той же причине она не включается из Home Assistant по данному коду:
light:
- unique_id: Lamp_kabinet
name: “Lamp_kabinet”
state_topic: “/devices/0x54ef441000d85c57/controls/state_white”
command_topic: “/devices/0x54ef441000d85c57/controls/state_white”
brightness_state_topic: ‘/devices/0x54ef441000d85c57/controls/color_temp_white’
brightness_command_topic: ‘/devices/0x54ef441000d85c57/controls/color_temp_white’
brightness_scale: 254
payload_on: “ON”
payload_off: “OFF”
optimistic: false
Добрый день!
Рекомендую подписаться на топики в Home Assistant и проверить, какие данные приходят.
Также попробуйте отправить данные в топик и посмотреть, как система на них реагирует.
1 лайк
Данные из Home Assistant приходят и изменяют топик, но лампа не включается и не выключается.
Если я вношу ON вручную в топик, то она тоже не реагирует
Добрый день!
Также попробуйте воспользоваться данной статьей для добавления устройств в Home Assistant. На мой взгляд, это самый простой и удобный способ.
В ссылке про управление ZigBee устройствами, которую прислал выше, написано:
Управление через конвертер wb-zigbee2mqtt пока не реализовано, но вы можете управлять устройствами стандартными инструментами zigbee2mqtt через wb-rules, отправляя команды с помощью функции publish .
Что означает:
Управлять Zigbee устройствами можно:
- Либо публикацией из скрипта или из терминала:
publish("zigbee2mqtt/friendly_name/set", JSON.stringify({ control_name: "OFF" }), 2, false);
- Либо через Node-RED.
Для работы HA с утройствами Zigbee следует установить контейнер и использовать интеграцию zigbee2mqtt напрямую из НА.
Для работы HA с утройствами Zigbee следует установить контейнер и использовать интеграцию zigbee2mqtt напрямую из НА.
Где почитать как установить контейнер?
Я все делал по данной инструкции:Установка Home Assistant на контроллер Wiren Board — Wiren Board
Home Assistant у меня установлен и работает.
Вот этот код взят из configuration.yaml:
mqtt:
light:
- unique_id: Lamp_kabinet
name: “Lamp_kabinet”
state_topic: “/devices/0x54ef441000d85c57/controls/state_white”
command_topic: “/devices/0x54ef441000d85c57/controls/state_white”
brightness_state_topic: ‘/devices/0x54ef441000d85c57/controls/color_temp_white’
brightness_command_topic: ‘/devices/0x54ef441000d85c57/controls/color_temp_white’
brightness_scale: 254
payload_on: “ON”
payload_off: “OFF”
optimistic: false
Но при этом лампа не включается, хотя в топик значение “ON” и “OFF” приходят.
Да, потому что через MQTT управление устройствами ZigBee не реализовано, о чем я писал выше.
Для интеграции HA - Zigbee2MQTT обратитесь к первоисточнику.
Устройства добавились сами, но они все недоступны:
Добрый день!
Также попробуйте воспользоваться данной статьей для добавления устройств в Home Assistant. На мой взгляд, это самый простой и удобный способ.
Здравствуйте. У вас остались какие-либо вопросы?