Движок правил wb-rules: различия между версиями
Строка 65: | Строка 65: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Детектор движения c таймаутом === | |||
На вход D2 подключен детектор движения с выходом типа "сухой контакт", который замыкает D2 и GND при обнаружении движения. | |||
При этом, на канале "wb-gpio/D2_IN" появляется статус "1". | |||
Правило включает свет при обнаружении движения и выключает свет, спустя 30 секунд после пропадания сигнала с датчика движения. | |||
Освещение подключено через встроенное реле, канал wb-gpio/Relay_1. | |||
<syntaxhighlight lang="ecmascript"> | |||
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"] = 1; | |||
if (motion_timer_1_id) { | |||
clearTimeout(motion_timer_1_id); | |||
} | |||
motion_timer_1_id = setTimeout(function () { | |||
dev["wb-gpio"]["Relay_1"] = 0; | |||
}, motion_timer_1_timeout_ms); | |||
} | |||
} | |||
}); | |||
</syntaxhighlight> | |||
=== Роллеты === | === Роллеты === |