Настройка правильной реакции на Zigbeee2MQTT в Rules

Работающее правило:

var devTopick="0x54ef441000ee5ba5/action";

defineRule("Switch_action", {
  whenChanged: devTopick,
  then: function (newValue, devName, cellName) {
    if (newValue !== "wb_support") {
      log("1 switch button pressed");
      if (newValue == "single_left"){
        log("1 switch single_left pressed");
        if (dev["buzzer/enabled"] == true){
          dev["buzzer/enabled"] = false
        } else if (dev["buzzer/enabled"] == false){
          dev["buzzer/enabled"] = true
        }
      } else if (newValue == "single_right"){
        log("1 switch single_right pressed");
        if (dev["buzzer/enabled"] == true){
          dev["buzzer/enabled"] = false
        } else if (dev["buzzer/enabled"] == false){
          dev["buzzer/enabled"] = true
        }
      }
      log.info("cleaning", newValue);
      dev[devTopick] = "wb_support";
    }
  }
});

Сейчас уже не хочу переделывать на trackMqtt, и так жутко затянулась проблема. Помимо “костыльности” вариант с whenChanged чем-то чреват?

1 лайк

Нет, не вижу потенциальных проблем.

1 лайк