547
правок
Ian (обсуждение | вклад) |
Ian (обсуждение | вклад) |
||
Строка 187: | Строка 187: | ||
title: "Zigbee Devices", | title: "Zigbee Devices", | ||
cells: { | cells: { | ||
'0x00158d0002729348': { // | '0x00158d0002729348': { // zigbee кнопка | ||
type: "text", | type: "text", | ||
value: "" | value: "" | ||
}, | }, | ||
'0x00158d0002389b55': {// | '0x00158d0002389b55': { // zigbee датчик температуры и влажности | ||
type: "text", | |||
value: "" | |||
}, | |||
'0x00158d0001f3fc34': { // zigbee выключатель в подрозетник | |||
type: "text", | type: "text", | ||
value: "" | value: "" | ||
Строка 199: | Строка 203: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
После сохранения все данные приходящие от указанных в правиле zigbee устройств будут видны в веб интерфейсе. Данные приходят в формате JSON и с ними уже можно работать в движке правил | После сохранения все данные приходящие от указанных в правиле zigbee устройств будут видны в веб интерфейсе. Данные приходят в формате JSON и с ними уже можно работать в движке правил. | ||
<syntaxhighlight lang="js"> | <syntaxhighlight lang="js"> | ||
// Правило: При двойном нажатии на zigbee кнопку переключаем левую кнопку zigbee выключателя в подрозетник | |||
defineRule("button_control", { | defineRule("button_control", { | ||
whenChanged: "zigbee2mqtt/0x00158d0002729348", | whenChanged: "zigbee2mqtt/0x00158d0002729348", | ||
Строка 207: | Строка 212: | ||
JSON.parse(newValue, function(k, v) { // Парсим Json. Переменная "k" - ключ, переменная "v" - значение. | JSON.parse(newValue, function(k, v) { // Парсим Json. Переменная "k" - ключ, переменная "v" - значение. | ||
if (k == 'click') { | if (k == 'click') { | ||
if (v == 'double') { // если значение ключа "click" равно "double" | if (v == 'double') { // если значение ключа "click" равно "double" | ||
publish("/devices/zigbee2mqtt/controls/0x00158d0001f3fc34/set", JSON.stringify({ state_left: "TOGGLE" }), 2, false); // переключаем левую кнопку выключателя. | |||
} | |||
} | |||
}) | |||
} | |||
}); | |||
// Правило: Если влажность выше 50% - включаем правую кнопку zigbee выключателя (канальный вентилятор). Если ниже - выключаем. | |||
defineRule("temp_control", { | |||
whenChanged: "zigbee2mqtt/0x00158d0002389b55", | |||
then: function(newValue, devName, cellName) { | |||
JSON.parse(newValue, function(k, v) { | |||
if (k == 'humidity') { | |||
if (parseFloat(v) >= 50.0) { | |||
publish("/devices/zigbee2mqtt/controls/0x00158d0001f3fc34/set", JSON.stringify({ state_right: "ON" }), 2, false); | |||
} else { | |||
publish("/devices/zigbee2mqtt/controls/0x00158d0001f3fc34/set", JSON.stringify({ state_right: "OFF" }), 2, false); | |||
} | } | ||
} | } |
правок