Управление лампой zigbee

Доброго времени суток. Имеется лампа 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 устройствами можно:

  1. Либо публикацией из скрипта или из терминала:
publish("zigbee2mqtt/friendly_name/set", JSON.stringify({ control_name: "OFF" }), 2, false);
  1. Либо через 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. На мой взгляд, это самый простой и удобный способ.

Здравствуйте. У вас остались какие-либо вопросы?