Добрый день,
Подскажите, почему может не срабатывать вложенное условие ELSE:
var initial = true; defineRule("Master-onoff", { whenChanged: "wb-gpio/EXT1_IN8", //при изменении состояния Мастер-выключателя then: function (newValue, devName, cellName) { //выполняй следующие действия if (initial == true) { // если выполнение тела произошло по причине первоначальной загрузки сбрасываем флаг initial = false; } else { // если выполнение тела произошло НЕ по причине первоначальной загрузки выполняем скрипт if ( newValue == true ) { //если Мастер-выключатель включен log("мастер вкл"); } else { //если Мастер-выключатель выключен log("мастер выкл"); } } } });
При включении-выключении выключателя в отладочный лог попадает только мастер вкл.
Но в тоже время если поставить неработающее не вложенным, а просто вот так:
defineRule("Master-onoff", { whenChanged: "wb-gpio/EXT1_IN8", //при изменении состояния Мастер-выключателя then: function (newValue, devName, cellName) { //выполняй следующие действия if ( newValue == true ) { //если Мастер-выключатель включен log("мастер вкл"); } else { //если Мастер-выключатель выключен log("мастер выкл"); } } });
То все работает корректно и в лог попадают мастер вкл и мастер выкл.
Уже всю голову сломал, не могу понять, почему в первом случае не срабатывает ELSE во вложенном условии.
Версия wb-rules: 1.7.1