Zigbee2mqtt+ikea lamp + ikea switch howto

Пример ниже. Но он будет работать, если после нажатия на кнопку в канале action появляется значение toggle, а потом пропадает. Если же значение toggle будет присутствовать постоянно, то правило сработает только один раз. Нужно будет найти еще какой-нибудь признак нажатия кнопки или самостоятельно очищать значение в канале action.

//создаем переменную со статусом лампы
var lamp_on = false;
//приводим реальное состояние лампы в соответствии с ее программным статусом (один раз при записи правила)
publish("zigbee2mqtt/0x8cf681fffe2a0b0b/set", JSON.stringify({ state: "OFF" }), 2, false);

defineRule("switch_ligth", {
    whenChanged: "zigbee2mqtt/0x000d6ffffe256597/action",
    then: function (newValue, devName, cellName) {
        if (newValue == "toggle") { //проверяем, что нажата центральная кнопка
            if (!lamp_on) {     //проверяем, что лампа была выключена
                publish("zigbee2mqtt/0x8cf681fffe2a0b0b/set", JSON.stringify({ state: "ON" }), 2, false);  //если лампа была выключена, то включаем ее
                lamp_on = true;     //изменяем текущее состояние лампы
            }
            else {
                publish("zigbee2mqtt/0x8cf681fffe2a0b0b/set", JSON.stringify({ state: "OFF" }), 2, false);  //если лампа была включена, то выключаем ее
                lamp_on = false;    //изменяем текущее состояние лампы
            }
        }
}
});

Рекомендую все-таки ознакомиться с основами JavaScript и движка правил wb-rules, будет очень полезно