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

Навигация

KNX Quick start: различия между версиями

→‎Используемое оборудование: Исправлена опечатка
(→‎Используемое оборудование: Исправлена опечатка)
Метки: правка с мобильного устройства правка из мобильной версии Расширенная мобильная правка
 
(не показано 16 промежуточных версий 2 участников)
Строка 2: Строка 2:


== Используемое оборудование ==
== Используемое оборудование ==
Чтобы на примере показать работу с KNX-устрйоствами мы взяли оборудование:
Чтобы на примере показать работу с KNX-устройствами мы взяли оборудование:
* Контроллер [[Wiren Board | Wiren Board 6.7]].
* Контроллер [[Wiren Board | Wiren Board 6.7]].
* Модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
* Модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
Строка 23: Строка 23:
# Установите ETS5.
# Установите ETS5.
# Настройте связь с контроллером. Контроллер Wirenboard будет работать в качестве шлюза в сеть KNX.
# Настройте связь с контроллером. Контроллер Wirenboard будет работать в качестве шлюза в сеть KNX.
# Добавьте новый интерфейс, для этого перейдите '''Системная шина''' → '''Показать интерфейсы''', выделите '''IP Tunneling''' и укажите имя из файла конфигурации [[Knxd#Работа с ETS5 | knxd]].
# Добавьте новый интерфейс, для этого перейдите '''Системная шина''' → '''Показать интерфейсы''', выделите '''IP Tunneling''' и укажите имя из [[Knxd#Работа с ETS5 | настроек knxd]].
# Нажмите справа внизу кнопку '''Тест'''. Если вы получили ответ '''ОК''' — интерфейс настроен верно.
# Нажмите справа внизу кнопку '''Тест'''. Если вы получили ответ '''ОК''' — интерфейс настроен верно.
# Нажмите кнопку '''Выбрать'''.
# Нажмите кнопку '''Выбрать'''.


<gallery mode="traditional " widths ="400px" heights="250px">
<gallery mode="packed " heights="150px">
Image: ETS_setup_0.png | Установка ETS5 — архив с программой
Image: ETS_setup_0.png | Установка ETS5 — архив с программой
Image: ETS_setup_1.png | Установка ETS5
Image: ETS_setup_1.png | Установка ETS5
Строка 38: Строка 38:
== Теория KNX ==
== Теория KNX ==
=== Адресация ===
=== Адресация ===
KNX-устройства на шине могут иметь адреса от 0.0.1 до 15.15.255, в протоколе под адрес отведено 16 бит. При назначении адресов устройствам обычно использует схему «область-линия-устройство».
Про групповые адреса и телеграммы читайте на странице [[KNX]].


Все устройства на шине равноправны могут передавать телеграммы.
Примеры групповых адресов:
* Выключатели с адресами 0.0.1 и 0.0.2
* Реле с адресом 0.0.5


Протокол KNX предусматривает два режима:
=== Реализация в контроллере Wiren Board ===
* Системный — это режим, в котором устройства передают телеграммы напрямую друг другу. Используется для программирования при настройке системы.
* Основной или рабочий — в этом режиме устройства передают телеграммы на «групповые адреса».


'''Групповые адреса''' — это виртуальные, то есть отсутствующие физически «функции».
Сервис [[MQTT_KNX | wb-mqtt-knx]] получает и отправляет телеграммы через knxd и модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
'''Телеграмма''' — это единица обмена информацией в протоколе KNX.
 
Пример:
Есть выключатели с адресами 0.0.1 и 0.0.2
Реле с адресом 0.0.5
 
=== Реализация в контроллере Wiren Board ===
Аппаратный уровень:
* Адаптер шины KNX на специализированной м/с '''NCN5121'''.
* После [[WBE2-I-KNX_KNX_Extension_Module#%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 | конфигурирования]] доступен последовательный порт <code>/dev/ttyKNX</code>, который является симлинком на ''/dev/ttyMOD'''X''''', где '''X''' - номер разъема расширения. В свою очередь ''/dev/ttyMOD'''X''''' - симлинк на аппаратный UART SOC.
Программный свитч [[Knxd |Knxd]], который объединяет разные шины:
* Физическую двухпроводную, доступную через [[WBE2-I-KNX_KNX_Extension_Module | плату расширения]]
* IP-клиентов, работающих через Ethernet, например, ETS.
* Сервис [[MQTT_KNX | wb-mqtt-knx]], который транслирует KNX-телеграммы в топики MQTT и наоборот.


== Обнаружение KNX-устройства ==
== Обнаружение KNX-устройства ==
Строка 118: Строка 104:
Всё, у нас есть автоматически созданное «здание», которе называется так же как проект.
Всё, у нас есть автоматически созданное «здание», которе называется так же как проект.


<gallery mode="traditional" widths ="300px" heights="219px">
<gallery mode="traditional" widths ="180px">
Image: ETS_Jung_database.png | Файл базы устройств
Image: ETS_Jung_database.png | Файл базы устройств
Image: ETS_Jung_database_import.png | Импорт устройств
Image: ETS_Jung_database_import.png | Импорт устройств
Строка 152: Строка 138:
Теперь в проекте есть два устройства.
Теперь в проекте есть два устройства.


== Взаимодействие KNX устройств с Wirenboard ==
== Взаимодействие контроллера Wiren Board с KNX устройствами==
Настройку на стороне контроллера Wiren Board смотрите в [[MQTT_KNX_V2 | описании сервиса wb-mqtt-knx]].
=== Настройка в ETS ===
В нотации KNX принято индивидуальные адреса записывать через точки, а групповые — через слеши, поэтому:
# Добавьте для '''канала A''' устройства '''US/U2.2''' индивидуальный адрес <code>1.1.5</code>.
# Создайте новый групповой адрес <code>1/1/55</code>.
 
<gallery mode="packed" heights="150px" caption="Настройка адресов">
Image: ETS sampleProject_config_A.png | Конфигурирование '''канала А''' как кнопки
Image: ETS sampleProject_create_group_address.png | Создание группового адреса
</gallery>
 
После настройки загрузите модуль в прикладную программу и проверьте, что при замыкании '''входа A''' отправляются телеграммы на указанный выше групповой адрес:
<syntaxhighlight lang="console">
# knxtool vbusmonitor1 local:/var/run/knx
L_Busmon: BC 11 05 09 37 E1 00 81 09 :L_Data low from 1.1.5 to 1/1/55 hops: 06 T_Data_Group A_GroupValue_Write (small) 01
L_Busmon: BC 11 05 09 37 E1 00 80 08 :L_Data low from 1.1.5 to 1/1/55 hops: 06 T_Data_Group A_GroupValue_Write (small) 00
L_Busmon: BC 11 05 09 37 E1 00 81 09 :L_Data low from 1.1.5 to 1/1/55 hops: 06 T_Data_Group A_GroupValue_Write (small) 01
</syntaxhighlight>
То же самое вы сможете наблюдать при мониторинге шины в ETS.
 
[[Image: ETS sampleProject_bus monitor.png |900px|Мониторинг шины в ETS]]
=== Настройка в контроллере Wiren Board ===
[[Image: ETS sampleProject_wb-mqtt-knx.conf_01.png.png |400px|thumb|right| Создание контрола с группововым адресом]]
[[Image: ETS sampleProject_devices switch.png.png |400px|thumb|right| Групповой адрес в Devices]]
 
Здесь мы рассмотрим пример, дополнительную информацию смотрите в [[MQTT_KNX_V2 | описании сервиса wb-mqtt-knx]].
 
Настраиваем устройство в веб интерфейсе:
* '''Device ID''' будет именем '''устройства''', то есть частью пути к MQTT топику
* '''Title''' - именем окна в Devices, произвольное
* '''Control ID''' - именем канала устройства
* '''Title''' именем канала в Devices, произвольное
 
В '''Devices''' групповой адрес контрола можно узнать, если навести курсор мыши на его название.
 
=== Взаимодействие с правилами ===
[[Image: ETS sampleProject devices rule.png |300px|thumb|right| Вывод сообщений в лог]]
 
Изменение состояния контрола '''1.1.5/SwitchA''' можно использовать для управления любыми устройствами, подключенными к контроллеру, в том числе и другими KNX устройствами.
 
Допустим, нужно включать и выключать выход [[Wiren_Board#Универсальные входы/выходы A1-A4|A1]] контроллера Wiren Board в зависимости от состояние контрола '''1.1.5/SwitchA''', тогда правило на [[wb-rules | wb-rules]] будет примерно таким:
<syntaxhighlight lang="bash">
//KNX_integration_01.js
var KNXdev = "1.1.5/SwitchA"
var WBdev ="wb-gpio/A1_OUT"
 
defineRule("SwitchKNX_01", {
  whenChanged: KNXdev, //при изменении переключателя
  then: function (newValue, devName, cellName) { //выполняй следующие действия
    log.info("Устройство", devName, "контрол", cellName, "новое значение", newValue)
    dev[WBdev] = newValue;
  }
});
</syntaxhighlight>
 
Правило будет вызываться при любом изменении контрола (при приходе телеграммы) и устанавливать устройство '''wb-gpio/A1_OUT''' (выход A1) в состояние, указанное в телерамме.


== Полезные ссылки ==
== Полезные ссылки ==
* [[MQTT_KNX_V2 | Описание сервиса wb-mqtt-knx в Вики]]
* [[MQTT_KNX_V2 | Описание сервиса wb-mqtt-knx в Вики]]
* [[WBE2-I-KNX_KNX_Extension_Module | Модуль расширения WBE2-I-KNX]]
* [[WBE2-I-KNX_KNX_Extension_Module | Модуль расширения WBE2-I-KNX]]
wb_editors
31

правка