Debounce (антидребезг)

Добрый день.
Надеюсь - я правильно понял задачу, вот код:

//01_08_test_1.js

//Идея в том, чтобы определить переключение только после того как знчение в течении заданного
// времени находится БОЛЬШЕ уставки.

var devInput = "01_08_Test0/test0"; // устройство-источник значений.
var compValue = 10; //Значение, превышение которого отслеживаем
var debounceTime = 2000; //Время "дребезга" в миллисекундах

var timerId = null; //тут будем сохранять идентификатор таймера

log.info("start")

defineRule( "debounceTime" ,{
  whenChanged: "01_08_Test0/test0",
  then: function (newValue, devName, cellName){
    log.info("I’m here!", newValue)
    if(newValue > compValue) { //Если значение БОЛЬШЕ
      log.info("Compare BIGGER", newValue)
      if (timerId){ //Если таймер УЖЕ есть
        log.info("Timer started BEFORE", newValue)
      }
      else{ //Запускаем таймер
        log.info("Timer NEED started", newValue)
        timerId = setTimeout(function () { //Начинаем описывать таймер
          log.info("VALUE BIGGER over", debounceTime, " ms") //тут можно описать требуемое действие
          timerId = null; //Сбрасываем идентификатор отработавшего таймера
        }, debounceTime);
      }
    }
    else{ //Если значение МЕНЬШЕ уставки
      if (timerId){ //Если таймер УЖЕ есть
        log.info("Kill timer", timerId);
        clearTimeout(timerId); //останавливем таймер
        timerId = null; //Сбрасываем идентификатор таймера
      }
    }
  }
})

“log.info” можно удалить или закомментировать