Добрый день! Подскажите, пожалуйста, можно ли в правилах в качестве условия вместо оператора whenChanged использовать условие, когда состояние входа только в низком или только в высоком уровне? Если возможно, не могли бы подсказать, как написать такое правило? Спасибо!
Добрый день.
Естественно можно как проверить состояние контрола так и сравнить его с каким-то значением.
Пример
if (dev["foo/bar"]){
//Выполнится если true
}
Да, пример для false:
if (!dev["foo/bar"]){
//Выполнится если false
}
Не совсем понятно как оператор if использовать в блоке defineRule? Мне нужно, чтобы правило срабатывало каждый раз, когда на входе низкий уровень.
Не понимаю. Какое событие планируете обрабатывать?
У меня есть нормально замкнутая кнопка. Нужно чтобы при ее нажатие срабатывало правило. Сейчас в правиле использую условие whenChanged. В принципе при нажатии кнопки все срабатывает. Но весь смысл в том, что систему делали нормально замкнутой, чтобы видеть разрыв цепи. А вот с этим уже начинаются проблемы при использовании условия whenChanged, т.к. при разрыве правило не срабатывает. В общем складывается впечатление, что условие whenChanged выполняется только при кратковременном изменении состоянии.
Получилось отслеживать уровень входа используя trackMqtt:
trackMqtt("/devices/wb-gpio/controls/EXT1_IN13", function (message) {
if (!dev["wb-gpio/EXT1_IN13"]) {
dev["nurse_call/state"] = 1;
}
Совершенно непонятно что не так делали с whenChanged. У меня не получилось вопроизвести отсутствие вызова при изменении топика.