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

Навигация

Rule Examples: различия между версиями

Строка 675: Строка 675:
</syntaxhighlight>
</syntaxhighlight>


== Термостат ==
Пример простого термостата из [https://support.wirenboard.com/t/novaya-versiya-dvizhka-pravil/4196/158 темы на портале поддержки].
<syntaxhighlight lang="js">
defineVirtualDevice("Termostat", {
    title: "Termostat",
    cells: {
      // =============== Прихожая теплый пол
      "R01-TS16-1-mode": {//режим 0-ручной 1-по расписанию
    type: "switch",
    value: false,
    },
      "R01-TS16-1-setpoint": {//уставка
    type: "range",
    value: 25,
        max: 30,
        readonly: false
    },
      "R01-TS16-1-lock": {//блокировка в визуализации 0-снята 1-заблокирована
    type: "switch",
    value: false,
    },.......
var hysteresis = 0.5;
function Termostat(name, temp, setpoint, TS, TS_onoff) {
defineRule(name, {
  whenChanged: temp, //при изменении состояния датчика
  then: function (newValue, devName, cellName) { //выполняй следующие действия
    if (dev[TS_onoff]) {
    if ( newValue < dev[setpoint] - hysteresis) { //если температура датчика меньше уставки - гистерезис
      dev[TS] = true;
    }
    if ( newValue > dev[setpoint] + hysteresis) { //если температура датчика больше виртуальной уставки + гистерезис
      dev[TS] = false;
    }
    }
    else dev[TS] = false;
  }
});
}
Termostat("R01-TS16-1", "A60-M1W3/External Sensor 1", "Termostat/R01-TS16-1-setpoint", "wb-gpio/EXT4_R3A1", "Termostat/R01-TS16-1-onoff"); // Прихожая теплый пол
</syntaxhighlight>
== Отправка команд по RS-485 == <!--T:99-->
== Отправка команд по RS-485 == <!--T:99-->