Не работает правило на контроллере

Спасибо за помощь, вот в итоге правило терморегулятора с сервоприводом NO и датчиком w-1.

Работает, если что то есть смысл откорректировать то напишите.

// Термоголовка сервопривод 1 NO 

defineVirtualDevice ("ARA1", { //Виртуальное устройство терморегулятор
  title:"radiator actuator NO 1", 
  cells: {
    "set_temp": { //Температурная настройка
      type:"range",
      value: 22,
      max: 32,
      min: 18,
      order: 3,
    },
    "On": {
      type:"switch", //Вкл/Выкл устройства
      order: 1,
      value: false,
    },
    "current_temp": { //Реальная температура
      type:"temperature",
      value: 0,
      max: 50,
      order: 2,
    },
    "gisteresis": { //Гистерезис
      type:"range",
      value: 1,
      max: 2,
      min: 0,
      order: 4,
    }
  }
});
defineRule ("auto_radiator_actuator_1_auto_enable", { // Правило работы для виртуального устройства от сигнала датчика w-1
  whenChanged: "wb-w1/28-00000d2a3003", // Когда изменились показания датчика
  then: function (newValue, devName, cellName) {
    log("rule executed; " + newValue + " " + typeof(newValue) );
    dev["ARA1"]["current_temp"] = newValue; // обновляем значение текущей температуры в окошке
    if (newValue<(dev["ARA1"]["set_temp"]-dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение датчика меньше установки минус гестерезис и "On" установлено 
      log("enable");
      dev["wb-gpio"]["EXT1_K1"] = false; // Выключаем питание на термоголовке NO (открыли приток теплоносителя температура растет к цели)
    } 
    if (newValue>(dev["ARA1"]["set_temp"]+dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение датчика больше установки плюс гестерезис и "On" установлено
      log("disable");
      dev["wb-gpio"]["EXT1_K1"] = true; // Включаем питание на термоголовке NO (закрыли приток теплоносителя температура падает к цели)
    }
  }
});
defineRule( "auto_radiator_actuator-1_manual_on", { // Правило работы для виртуального устройства при положении кнопки "On"
  whenChanged: ["ARA1/On"],
  then: function (newValue, devName, cellName) {
    if (newValue==false) { //Если переключатель в положении Off
      dev["wb-gpio"]["EXT1_K1"] = false; // Выключаем питание на термоголовке NO (открыли приток теплоносителя)
    }
    if (newValue==true) { //Если переключатель в положении On
      if (dev["wb-w1"]["28-00000d2a3003"]<(dev["ARA1"]["set_temp"]-dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение датчика меньше установки минус гестерезис и "On" установлено 
      log("enable");
      dev["wb-gpio"]["EXT1_K1"] = false; // Выключаем питание на термоголовке NO (открыли приток теплоносителя температура растет к цели)
    } 
    if (dev["wb-w1"]["28-00000d2a3003"]>(dev["ARA1"]["set_temp"]+dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение датчика больше установки плюс гестерезис и "On" установлено
      log("disable");
      dev["wb-gpio"]["EXT1_K1"] = true; // Включаем питание на термоголовке NO (закрыли приток теплоносителя температура падает к цели)
    }
    }
  }
});
defineRule( "set_temp_set_radiator_actuator_1", { // Правило работы для виртуального устройства при изменении установки (set_temp)
  whenChanged: ["ARA1/set_temp"],
  then: function (newValue, devName, cellName) {
    if (newValue>(dev["wb-w1"]["28-00000d2a3003"]+dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение установки больше датчика плюс гестерезиса и "On" установлено 
      log("enable");
      dev["wb-gpio"]["EXT1_K1"] = false; // Выключаем питание на термоголовке NO (открыли приток теплоносителя температура растет к цели)
    } 
    if (newValue<(dev["wb-w1"]["28-00000d2a3003"]-dev["ARA1"]["gisteresis"])&&(dev["ARA1"]["On"]==true)) { // Если значение установки меньше датчика минус гестерезиса и "On" установлено
      log("disable");
      dev["wb-gpio"]["EXT1_K1"] = true; // Включаем питание на термоголовке NO (закрыли приток теплоносителя температура падает к цели)
    }
  } 
});