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

Нет описания правки
(Поменял в соответствии с синтаксисом)
Строка 70: Строка 70:
*Затем идёт условие - "если значение температуры больше порогового, то ...". Значение параметра записывается в виде ''dev[Device][Control]'' - заметьте, оно отличается от вида записи параметра, при изменении которого запускается правило, потому что там речь идёт о ''параметре'', а здесь - о ''значении'' того же параметра.
*Затем идёт условие - "если значение температуры больше порогового, то ...". Значение параметра записывается в виде ''dev[Device][Control]'' - заметьте, оно отличается от вида записи параметра, при изменении которого запускается правило, потому что там речь идёт о ''параметре'', а здесь - о ''значении'' того же параметра.
*Затем мы выставляем значения для реле в каждом случае - ''false'' - "выключено", ''true'' - "включено". Названия ''Device'' и ''Control'' для реле смотрим всё в той же таблице ''MQTT Channels'', на странице ''Settings'' веб-интерфейса.
*Затем мы выставляем значения для реле в каждом случае - ''false'' - "выключено", ''true'' - "включено". Названия ''Device'' и ''Control'' для реле смотрим всё в той же таблице ''MQTT Channels'', на странице ''Settings'' веб-интерфейса.
=== Первое правило с виртуальным устройством === <!--T:13-->
<!--T:14-->
Создаём виртуальный переключатель, при нажатии на который переключаются сразу два реле.
<!--T:15-->
<syntaxhighlight lang="ecmascript">
defineVirtualDevice("switch_both", {
    title: "Switch both relays",
    cells: {
enabled: {
    type: "switch",
    value: false
},
    }
});
<!--T:16-->
defineRule("control_both", {
  whenChanged: "switch_both/enabled",
  then: function (newValue, devName, cellName)  {
dev["wb-mrm2_130"]["Relay 1"] = newValue;
    dev["wb-mrm2_130"]["Relay 2"] = newValue;
  }
});
</syntaxhighlight>


== Новые возможности последних версий == <!--T:193-->
== Новые возможности последних версий == <!--T:193-->