Не срабатывает вложенное условие else

Добрый день,

Подскажите, почему может не срабатывать вложенное условие 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

log(initial, newValue); в самом начале функции что выводит?

Вместо первого else используйте else if(initial == false && newValue == true)

Спасибо!