KNX demo-stand: различия между версиями
Ian (обсуждение | вклад) |
Ian (обсуждение | вклад) |
||
Строка 269: | Строка 269: | ||
=== Основное правило === | === Основное правило === | ||
Если предыдущее правило универсальное и может быть использовано почти в каждом проекте, то это правило написано специально для нашего стенда. Здесь уже нет сложных преобразований, мы просто следим за необходимыми нам топиками и реагируем на их изменения. | |||
<syntaxhighlight lang="ecmascript"> | <syntaxhighlight lang="ecmascript"> | ||
Строка 275: | Строка 277: | ||
var channel_pairs = [ | var channel_pairs = [ | ||
["knx_group_addrs/1-1-10", "wb-gpio/EXT1_R3A1"], | ["knx_group_addrs/1-1-10", "wb-gpio/EXT1_R3A1"], // По нажатию на KNX кнопку, к которой привязан групповой адрес 1/1/10 включать или выключать индикатор 2 | ||
["knx_group_addrs/1-1-11", "wb-mr3_139/K1"] | ["knx_group_addrs/1-1-11", "wb-mr3_139/K1"] | ||
]; | ]; | ||
Строка 300: | Строка 302: | ||
whenChanged: "wb-w1/28-041643cee6ff", | whenChanged: "wb-w1/28-041643cee6ff", | ||
then: function(newValue, devName, cellName) { | then: function(newValue, devName, cellName) { | ||
dev["knx_group_addrs/1-1-13"] = knxConvertToFloat16(newValue + 2); | dev["knx_group_addrs/1-1-13"] = knxConvertToFloat16(newValue + 2); // Передаем на KNX панельку температуру с датчика DS18B20 | ||
} | } | ||
}); | }); | ||
Строка 308: | Строка 310: | ||
then: function(newValue, devName, cellName) { | then: function(newValue, devName, cellName) { | ||
if(newValue == 11){ | if(newValue == 11){ | ||
dev["wb-mdm2_1/Channel 1"] = Math.min(dev["wb-mdm2_1/Channel 1"] + 10, 100); | dev["wb-mdm2_1/Channel 1"] = Math.min(dev["wb-mdm2_1/Channel 1"] + 10, 100); // Если зажать KNX кнопку - увеличиваем яркость modbus диммера на 10 % единиц. | ||
} else if(newValue == 3) { | } else if(newValue == 3) { | ||
dev["wb-mdm2_1/Channel 1"] = Math.max(dev["wb-mdm2_1/Channel 1"] - 10, 0); | dev["wb-mdm2_1/Channel 1"] = Math.max(dev["wb-mdm2_1/Channel 1"] - 10, 0); | ||
Строка 319: | Строка 321: | ||
then: function(newValue, devName, cellName) { | then: function(newValue, devName, cellName) { | ||
if (newValue) { | if (newValue) { | ||
dev["knx_group_addrs/1-1-2"] = !dev["knx_group_addrs/1-1-2"]; | dev["knx_group_addrs/1-1-2"] = !dev["knx_group_addrs/1-1-2"]; // По нажатию на обычный выключатель звонкового типа переключаем KNX диммер | ||
} | } | ||
} | } |