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

Навигация

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

Нет описания правки
 
(не показано 10 промежуточных версий 4 участников)
Строка 1: Строка 1:
Статья в процессе наполнения. Информация может быть не полной или содержать не точности.
{{DISPLAYTITLE: Демонстрационный стенд KNX }}
 
==Описание ==
{{note|info|Информация в статье устарела}}
Выставочный демо-стенд WB-KNX. Создан, как пример использования контроллера Wiren Board с модулем KNX. Стенд оснащен оборудованием с разными шинами и протоколами, объединяя их в одну систему через контроллер WB6.  
Выставочный демо-стенд WB-KNX. Создан, как пример использования контроллера Wiren Board с модулем KNX. Стенд оснащен оборудованием с разными шинами и протоколами, объединяя их в одну систему через контроллер WB6.  
[[File:Knx_stand_2.png|250px|thumb|right|Демо-cтенд WB-KNX]]
[[File:Knx_stand_1.png|250px|thumb|right|Демо-cтенд WB-KNX]]


[[File:Knx_stand_3.png|250px|thumb|right|Диммер HDL M/D06.1, Релейный модуль  GIRA 2152 00/I01 ]]
<gallery mode="packed" heights="200px">
[[File:Knx_stand_4.png|250px|thumb|right|Панельки HDL P03.2-A и MPT14.1]]
Image: Knx_stand_2.png | Демо-cтенд WB-KNX
[[File:Knx_stand_5.png|250px|thumb|right|Контроллер WB6, релейный модуль WBIO-DO-R10A-8, модули входов WBIO-DI-DR-8 и WBIO-DI-HVD-8, датчик температуры DS18B20]]
Image: Knx_stand_1.png | Демо-cтенд WB-KNX
[[File:Knx_stand_6.png|250px|thumb|right|Modbus устройства WB-MDM2, WB-MR3LV/S, WB-MRGB]]
Image: Knx_stand_3.png | Диммер HDL M/D06.1, Релейный модуль  GIRA 2152 00/I01
[[File:Knx_stand_7.png|250px|thumb|right|Блок питания KNX Berker]]
Image: Knx_stand_4.png | Панельки HDL P03.2-A и MPT14.1
Image: Knx_stand_5.png | Контроллер WB6, релейный модуль WBIO-DO-R10A-8, модули входов WBIO-DI-DR-8 и WBIO-DI-HVD-8, датчик температуры DS18B20
Image: Knx_stand_6.png | Modbus устройства WB-MDM2, WB-MR3LV/S, WB-MRGB
Image: Knx_stand_7.png | Блок питания KNX Berker
</gallery>
== Состав ==
== Состав ==


Строка 63: Строка 66:


Основная идея стенда - показать взаимодействие между устройствами с разными протоколами. И то, что контроллер [[Wiren Board 6]] может расширить уже существующую автоматизацию на KNX другими более дешевыми устройствами.  
Основная идея стенда - показать взаимодействие между устройствами с разными протоколами. И то, что контроллер [[Wiren Board 6]] может расширить уже существующую автоматизацию на KNX другими более дешевыми устройствами.  
Либо наоборот, если Вам захотелось добавить в проект красивую KNX панельку, при этом остальное оборудование работает по modbus. Основную информацию по сетям KNX можно найти '''[https://www.ixbt.com/home/knx-intro.shtml в этой статье]'''.  Далее подробно рассмотрим настройку стенда и написание правил.
Либо наоборот, если Вам захотелось добавить в проект красивую KNX панельку, при этом остальное оборудование работает по modbus. Далее подробно рассмотрим настройку стенда и написание правил.
[[File:Knx_stand_sch.png|450px|thumb|center|Схема Демо-Стенда WB-KNX]]
[[File:Knx_stand_sch.png|450px|thumb|center|Схема Демо-Стенда WB-KNX]]


== Настройка контроллера ==
== Настройка контроллера ==


Для начала настроим модули Wirenboard. Для этого в web-интерфейсе переходим в раздел Configs =>'''Hardware Modules Configuration''' И выбираем установленные модули. В нашем случаеː
Для начала настроим модули Wirenboard. Для этого в web-интерфейсе переходим в раздел '''Configs → Hardware Modules Configuration''' И выбираем установленные модули. В нашем случаеː


Internal slot 1 - Вставлен [[KNX Module for WB6 (WBE2-I-KNX)]], выбираем "WBE2-I-KNX: KNX/EIB TP-UART"
Internal slot 1 - Вставлен [[KNX Module for WB6 (WBE2-I-KNX)]], выбираем "WBE2-I-KNX: KNX/EIB TP-UART"
Строка 81: Строка 84:
[[File:Hwconf-knx1.PNG|250px|thumb|center|Настройка модуля WBE2-I-KNX]]  
[[File:Hwconf-knx1.PNG|250px|thumb|center|Настройка модуля WBE2-I-KNX]]  


Настраиваем modbus устройства. Для этого в web-интерфейсе переходим в раздел Configs =>'''Serial Device Driver Configuration''' и задаем нужные параметры. Как это сделать можно посмотреть в документации к устройствам, здесь подробно об этом писать не буду.
Настраиваем modbus устройства. Для этого в web-интерфейсе переходим в раздел '''Configs → Serial Device Driver Configuration''' и задаем нужные параметры. Как это сделать можно посмотреть в документации к устройствам, здесь подробно об этом писать не буду.
[[File:Mqtt-serial-knxStand.PNG|250px|thumb|center|Настройка modbus устройств]]
[[File:Mqtt-serial-knxStand.PNG|250px|thumb|center|Настройка modbus устройств]]


Следующим шагом будет установка и настройка программ для работы с KNX. А именноː '''[[Knxd]]''' - Для взаимодействия с шиной KNX, '''[[KnxTool]]''' - для отладки, '''[[WB-KNXD-CONFIG]]''' - для удобной настройки KNXD через веб-интерфейс контроллера, '''[[MQTT_KNX]]''' - для взаимодействия движка правил ('''[[Движок_правил_wb-rules]]''') c '''[[Knxd]]'''. Для установки всех программ разом введите команду в консольː
Следующим шагом будет установка и настройка программ для работы с KNX. А именноː '''[[Knxd]]''' - Для взаимодействия с шиной KNX, '''[[KnxTool]]''' - для отладки, '''[[WB-KNXD-CONFIG]]''' - для удобной настройки KNXD через веб-интерфейс контроллера, '''[[MQTT_KNX]]''' - для взаимодействия движка правил '''([[Движок правил wb-rules]])''' c '''[[Knxd]]'''. Для установки всех программ разом введите команду в консольː


<pre>$ apt-get update && apt-get install knxd knxd-tools wb-knxd-config wb-mqtt-knx</pre>
<pre>$ apt-get update && apt-get install knxd knxd-tools wb-knxd-config wb-mqtt-knx</pre>


После установки программ в web-интерфейсе переходим в раздел Configs =>'''KNXD Configuration''' для настройки KNXD.
После установки программ в web-интерфейсе переходим в раздел '''Configs → KNXD Configuration''' для настройки KNXD.


"'''Driver (-b, --layer2)'''" - В этом поле нужно указать драйвер и путь к устройству. В нашем случае указываем '''ncn5120:/dev/ttyKNX1'''
"'''Driver (-b, --layer2)'''" - В этом поле нужно указать драйвер и путь к устройству. В нашем случае указываем '''ncn5120:/dev/ttyKNX1'''
Строка 129: Строка 132:


После того как проект успешно загружен можно переходить к написанию правил на контроллере WB6.
После того как проект успешно загружен можно переходить к написанию правил на контроллере WB6.
Скачать готовый ETS5 проект стенда можно [https://wirenboard.com/wiki/images/d/d1/Wb-knx.zip по ссылке]


== Правила wb-rules ==
== Правила wb-rules ==
Строка 144: Строка 149:
         title: "KNX Group Addresses",
         title: "KNX Group Addresses",
         cells: {
         cells: {
          "1-1-1": {
            "1-1-1": {
                 type: "value",
                 type: "value",
                 value: "0"
                 value: "0"
             },
             },
          "1-1-2": {
            "1-1-2": {
                 type: "switch",
                 type: "switch",
                 value: false
                 value: false
             },
             },
          "1-1-3": {
            "1-1-3": {
                 type: "range",
                 type: "range",
                 max: 255,
                 max: 255,
Строка 162: Строка 167:
                 value: false
                 value: false
             },
             },
          "1-1-7": {
            "1-1-7": {
                 type: "value",
                 type: "value",
                 value: "0"
                 value: "0"
             },
             },
          "1-1-8": {
            "1-1-8": {
                 type: "value",
                 type: "value",
                 value: "0"
                 value: "0"
             },
             },
          "1-1-9": {
            "1-1-9": {
                 type: "value",
                 type: "value",
                 value: "0"
                 value: "0"
Строка 182: Строка 187:
                 value: false
                 value: false
             },
             },
          "1-1-12": {
            "1-1-12": {
                 type: "value",
                 type: "value",
                 value: "0"
                 value: "0"
Строка 242: Строка 247:
                 return;
                 return;
             }
             }
             dev[vdev_devid][groupAddr[1].split("/").join("-")] = parseInt(value, 16);
             dev[vdev_devid][groupAddr[1].split("/").join("-")] = !!parseInt(value, 16);
         }
         }
     });
     });
 
 
})()
})()


Строка 309: Строка 314:
         whenChanged: "knx_group_addrs/1-1-7",
         whenChanged: "knx_group_addrs/1-1-7",
         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); // Если зажать KNX кнопку - увеличиваем яркость modbus диммера на 10 % единиц.
                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);
          }
            }
         }
         }
     });
     });
Строка 331: Строка 336:
         then: function(newValue, devName, cellName) {
         then: function(newValue, devName, cellName) {
             if (newValue) {
             if (newValue) {
              dev["knx_group_addrs/1-1-6"] = !dev["knx_group_addrs/1-1-6"]
                dev["knx_group_addrs/1-1-6"] = !dev["knx_group_addrs/1-1-6"]
             }
             }
         }
         }
     });
     });
  defineRule("dimmer_chan1_on_off_knx", {
    defineRule("dimmer_chan1_on_off_knx", {
         whenChanged: "knx_group_addrs/1-1-6",
         whenChanged: "knx_group_addrs/1-1-6",
         then: function(newValue, devName, cellName) {
         then: function(newValue, devName, cellName) {
             if(newValue){
             if (newValue) {
              dev["wb-mdm2_1/Channel 1"] = 70;
                dev["wb-mdm2_1/Channel 1"] = 70;
             } else {
             } else {
              dev["wb-mdm2_1/Channel 1"] = 0;
                dev["wb-mdm2_1/Channel 1"] = 0;
             }
             }
         }
         }