KNX demo-stand: различия между версиями

Строка 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 диммер
             }
             }
         }
         }
547

правок