Работа с таймерами в правилах

defineRule("heater_control", {
  whenChanged: "wb-ms_190/Illuminance",
  then: function (newValue, devName, cellName) { 
  
    if ((dev["wb-mrm2_78"]["Relay 1"] != "1" ) && ( newValue < 50)) {  // включаем свет если значение освещенности ниже и свет еще не включен
      dev["wb-mrm2_78"]["Relay 1"] = true;
    } 
     if ((dev["wb-mrm2_78"]["Relay 1"] != "0" ) &&  ( newValue > 400)) {  // выключаем свет если значение освещенности выше и свет уже включен
      dev["wb-mrm2_78"]["Relay 1"] = false;
    }

 }
});

Добрый день!
Помогите разобраться с таймерами в правилах.
Вот небольшой код, в зависимости от датчика света включает и выключает лампочку через реле.
Однако на реле есть собственный контакт, и это надо завязать с правилом.
Например при включении и выключении лампочки с кнопки (без фиксации) чтобы правило не работало в течении 30 минут. т.е. переходим как бы на ручной режим.
Я так понимаю нужно добавить условие и обозначение этого ручного режима. Как именно это лучше сделать ?

Если правильно понял вопрос:

var devRelay = "wb-mrm2_78/Relay 1";
var devInCounter = "";//Вписать свой счетчик входа.

var flagManual = false; //Если true - в "ручном режиме".
var buttCounter = dev[devInCounter]; //Начальное значение счетчика

defineRule("RelayButtPressed", {
  whenChanged: devInCounter,
  then: function (newValue, devName, cellName) { 
    if (dev[devRelay]) {  //реле сейчас включено (если не нужно запускать таймер по выключению с кнопки)
      buttCounter = newValue; //обновляем счетчик
      //Запускаем таймер, и поднимаем переменную флаг, которую сбросит закончившийся счетчик
      flagManual = true;
      setTimeout(function() {
      flagManual = false;
      }, 10000); //10 секунд
    } 
 }
});

И используем переменную flagManual в правиле отработки изменения освещенности.