Движок правил 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>


=== Роллеты ===
=== Роллеты ===