Перейти к содержанию

Навигация

Движок правил wb-rules: различия между версиями

Строка 62: Строка 62:
   }
   }
});
});
</syntaxhighlight>
=== Роллеты ===
Одно реле включает двигатель, поднимающий шторы, второе реле - включает двигатель, опускающий шторы.
Правило следит за тем, чтобы оба реле не были включены одновременно.
Кроме этого, правило отключает двигатели, спустя заданное время после включения.
<syntaxhighlight lang="ecmascript">
(function() {
  defineAlias("relay_up_1", "lc103_4/Relay 1");
  defineAlias("relay_down_1", "lc103_4/Relay 2");
  var timeout_s = 15;
  defineRule("roller_shutter_1_up_on", {
  asSoonAs: function() {
    return relay_up_1;
  },
    then: function () {
      setTimeout(function() {
        relay_up_1 = 0;
      }, timeout_s * 1000);
    }
  });
  defineRule("roller_shutter_1_down_on", {
    asSoonAs: function() {
      return relay_down_1;
    },
    then: function () {
      setTimeout(function() {
        relay_down_1 = 0;
      }, timeout_s * 1000);
    }
  });
  defineRule("roller_shutter_1_both_on", {
    asSoonAs: function() {
      return relay_up_1 && relay_down_1;
    },
    then: function () {
      relay_up_1 = 0;
      relay_down_1 = 0;
      log("Both roller shutter relays on, switching them off");
    }
  });
})();


</syntaxhighlight>
</syntaxhighlight>