Добрый день,
есть датчик движения zigbee
нужно чтобы он включал свет по движению и выключал по таймеру
что интереcно, на сайте есть пример идеально подходящий вот:
var motion_timer_1_timeout_ms = 30 * 1000;
var motion_timer_1_id = null;
defineRule("motion_detector_1", {
whenChanged: "wb-gpio/D2_IN",
then: function (newValue, devName, cellName) {
if (newValue) {
dev["wb-gpio/Relay_1"] = true;
if (motion_timer_1_id) {
clearTimeout(motion_timer_1_id);
}
motion_timer_1_id = setTimeout(function () {
dev["wb-gpio/Relay_1"] = false;
motion_timer_1_id = null;
}, motion_timer_1_timeout_ms);
}
},
});
поменял только имя датчика и реле.
но как выяснилось правило не работает, точнее оно срабатывает как на движение так и на отсуствие движения
т.е. при появлении движения все ОК, и если таймер отключается раньше чем датчик переходит в false то при следующем переходе датчика в false опять реле включается на заданное время.
как только не пробовал - не работает
подскажите как поправить скрипт из примера чтоб он отрабатывал только когда датчик меняет статус false на true не срабатывал при переходе c true на false
заранее спасибо
PS: датчик меняет true на false через 90 сек после последнего зафиксированного движения, и если в скрипте стоит отключение через, например час, то вроде как все работает исправно. просто не замечается переход обратно на false, но нужно раньше чем через 90 секунд свет выключить
т.е. свет выключить до того как датчик движения сменит свое состояние на false.