Реле Tuya

Добрый день.
Посмотрите в веб-интерфейсе, в вкладке MQTT - устройство есть?

Да, есть

Подскажите, как написать правило кнопки, что бы при нажатии кнопки реле включалось и сразу выключалось, как бы импульсное

Реле уже управляется из правил? С этим проблем нет? Сейчас наброваю, там 5 строчек.

Нет, у меня ни одно из старых правил не работает, и реле не управляется, все уже перепробовал кажется(

может в новом движке поменялость что то?
правила выглядят так
defineVirtualDevice(“Tp10”, {
title:“Гостиная”,
cells: {
“temperature”: {
type:“range”,
value: 20,
max: 32
},“Zima10”: {
type:“switch”,
value: 0,
}
}
});
defineRule(“Tpf10”, {
whenChanged: “0x00158d0003f47de9/temperature”,
then: function (newValue, devName, cellName) {
if (newValue>dev[“Tp10/temperature”]-[1]) {
dev[“wb-mio-gpio_84:1”][“K4”] = 1;log;
} else
dev[“wb-mio-gpio_84:1”][“K4”] = 0;log;
}
});

А события возникают? Добавить лог, подписаться на топик и посмотреть? Удалить топик? Очень мало информации.

реле появилось в девайсах, показывает сигнал, и ее статус, если на реле замкнуть выключатель, статус так же меняется и в wb, но функции управления из топиков не вылезло(

Так как?)

  defineRule("ИмяПравила", {
      whenChanged: "ИмяКнопки",                        
      then: function(newValue, devName, cellName) {
          if (newValue) {
            dev[devName][devRelay] = true;
            setInterval(function offrelay() {
              dev[devName][devRelay] = false;
            },  400);
          }
     }
});

для zigbee - через publish^ https://wirenboard.com/wiki/ZigBee_Support#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0.D0.BC.D0.B8

defineRule(“Ворота”, {
whenChanged: “VorotaOnOff”,
then: function(newValue, devName, cellName) {
if (newValue) {
publish(“zigbee2mqtt/0x842e14fffee3858a/set”, JSON.stringify({ state: “ON” }), 2, false);
setInterval(function offrelay() {
publish(“zigbee2mqtt/0x842e14fffee3858a/set”, JSON.stringify({ state: “OFF” }), 2, false);
}, 400);
}
}
});

я наверное не правильно понял

defineRule("Ворота", {
whenChanged: "VorotaOnOff",
then: function(newValue, devName, cellName) {
  if (newValue) {
    publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "ON" }), 2, false);
    setInterval(function offrelay() {
      publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "OFF" }), 2, false);
    }, 400);
  }
}
});
title: "VorotaOnOff",
cells: {
"pushbutton": {
type: "pushbutton",
value: 0,
}
}
});
defineRule("Ворота", {
whenChanged: "VorotaOnOff",
then: function(newValue, devName, cellName) {
  if (newValue) {
    publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "ON" }), 2, false);
    setInterval(function offrelay() {
      publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "OFF" }), 2, false);
    }, 400);
  }
}
});

Отредактировал.

defineVirtualDevice("VorotaOnOff", {
title: "VorotaOnOff",
  cells: {
    pushbutton: {
    type: "pushbutton",
    value: 0,
  }
}
});
defineRule("Ворота", {
whenChanged: "VorotaOnOff/pushbutton",
then: function(newValue, devName, cellName) {
  if (newValue) {
    publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "ON" }), 2, false);
    setTimeout(function offrelay() {
      publish("/zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "OFF" }), 2, false);
    }, 400);
  }
}
});

Ну синтаксис же…

Не, так и не заработало…

Ну судя по

payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/set"

из статьи - делаем правильно…

title: "VorotaOnOff",
  cells: {
    pushbutton: {
    type: "pushbutton",
    value: 0,
  }
}
});
defineRule("Ворота", {
whenChanged: "VorotaOnOff/pushbutton",
then: function(newValue, devName, cellName) {
  if (newValue) {
    publish("zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "ON" }), 2, false);
    setTimeout(function offrelay() {
      publish("zigbee2mqtt/0x842e14fffee3858a/set", JSON.stringify({ state: "OFF" }), 2, false);
    }, 200);
  }
}
});

Поправил, все работает

1 лайк