Wb-rules

Товарищи, кто может обьяснить, почему правило реле включает, но не выключает

whenChanged: ["Sanuzel/SettingTemperature", "Sanuzel/HeatingStatus"],
then: function (newValue, devName, cellName) {
if (dev["Sanuzel"]["HeatingStatus"] = true) {
dev["wb-gpio"]["EXT2_K1"] = true; log; }
{
if (dev["Sanuzel"]["HeatingStatus"] = false) {
dev["wb-gpio"]["EXT2_K1"] = false; log;
}
}
}
});```

В mqtt mosquitto_sub -v -t /devices/wb-gpio/#
летит только 1 на включение, 0 на выключение не приходит

Здравствуйте.
Пришлите, пожалуйста, еще раз правило или отправьте файлом.

Sanuzel.js (324 байта)

Некорректное условие - “if (dev[“Sanuzel”][“HeatingStatus”] = true)”.
Должно быть с двойным знаком равно : if (dev[“Sanuzel”][“HeatingStatus”] == true).
И во втором условии то же самое.

1 лайк

Делал)) так вообще не отрабатывает

Тогда нужно более подробное описание, что и как конкретно делаете, чего ожидаете получить. По данной информации сложно ответить в чем проблема.
Попробуйте описать проблему таким образом.

Все решилось, приравнял одно к другому

whenChanged: ["Sanuzel/HeatingStatus"],
then: function (newValue, devName, cellName) {
dev["wb-gpio"]["EXT2_K1"] = dev["Sanuzel"]["HeatingStatus"]; log; 
}
});```

Если это полностью устраивает вас по вашей задаче, то отлично. Вы по сути состояние переключателя в виджете напрямую транслируете на выход.
Остались ли у вас еще вопросы по данной теме?

Нет, спасибо

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.