|
|
(не показано 80 промежуточных версий 4 участников) |
Строка 1: |
Строка 1: |
| {{DISPLAYTITLE: Быстрый старт работы с KNX на контроллере Wiren Board}}
| | '''Цель статьи''' - быстрый старт работы KNX для тех, кто сталкивается с технологией впервые. |
| | =Используемое оборудования= |
| | * контроллер WB6 |
| | * Модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]] |
| | * Термостат KNX [[http://jung-sale.ru/catalog/knx/J_A2178/ Jung A2178]] |
| | * Блок питания KNX [[http://www.mean-well.ru/store/KNX-20E-640/ | Mean Well KNX-20E-640]] |
| | * компьютер с ОС Windows |
|
| |
|
| == Используемое оборудование == | | =подготовка= |
| Чтобы на примере показать работу с KNX-устройствами мы взяли оборудование:
| | Предполагаем что модуль расширения KNX уже [[https://wirenboard.com/wiki/WBE2-I-KNX_KNX_Extension_Module#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0 установлен]] и [[https://wirenboard.com/wiki/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 настроен]] в контроллере. |
| * Контроллер [[Wiren Board | Wiren Board 6.7]].
| | Подключаем шину на правильные клеммы, положительный |
| * Модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
| |
| * Термостат KNX Albrecht Jung [https://www.jung.de/en/online-catalogue/69798918/ A2178].
| |
| * Выключатель двухканальный ABB [https://new.abb.com/products/de/GHQ6310074R0111/us-u2-2 US/U2.2 Universal-Schnittstelle, 2fach].
| |
| * Блок питания KNX [http://www.mean-well.ru/store/KNX-20E-640/ Mean Well KNX-20E-640].
| |
| * Компьютер с ОС Windows.
| |
| | |
| == Подготовка ==
| |
| === Контроллер ===
| |
| [[Image: KNX_connect_controller.png|300px|thumb|right| Подключение контроллера Wiren Board к шине [[KNX]] с помощью модуля [[WBE2-I-KNX KNX Extension Module | WBE2-I-KNX]], установленного в разъём '''MOD1''']]
| |
| # Установите и настройте модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
| |
| # Подключите контроллер к сети используя Ethernet (Wi-Fi или Debug Network работать не будет)
| |
| # Подключите шину KNX на клеммы модуля. Например, модуль установлен в разъем '''MOD1''', значит шину нужно подключить к разъёму '''mod_out_1''' по схеме: положительный провод на клемму O1, отрицательный — клемма O3.
| |
| # Подключите на шину блок питания KNX и термостат. | |
| # Включите питание — светодиоды на термостате начнут мигать примерно раз в секунду (1Гц).
| |
| | |
| === Компьютер ===
| |
| # Скачайте программу ETS5 с [https://my.knx.org/en/shop/ets официального сайта].
| |
| # Проверьте, чтобы в системе был Microsoft NET framework 4.8. Если его нет — установите. В комплекте с программой идёт Microsoft NET framework 4.6, но с ним программа работает плохо.
| |
| # Установите ETS5.
| |
| # Настройте связь с контроллером. Контроллер Wirenboard будет работать в качестве шлюза в сеть KNX.
| |
| # Добавьте новый интерфейс, для этого перейдите '''Системная шина''' → '''Показать интерфейсы''', выделите '''IP Tunneling''' и укажите имя из [[Knxd#Работа с ETS5 | настроек knxd]].
| |
| # Нажмите справа внизу кнопку '''Тест'''. Если вы получили ответ '''ОК''' — интерфейс настроен верно.
| |
| # Нажмите кнопку '''Выбрать'''.
| |
| | |
| <gallery mode="packed " heights="150px">
| |
| Image: ETS_setup_0.png | Установка ETS5 — архив с программой
| |
| Image: ETS_setup_1.png | Установка ETS5
| |
| Image: ETS_setup_2.png | Установка ETS5
| |
| Image: ETS_start_0.png | Первый запуск
| |
| Image: ETS_config_0.png | Добавление интерфейса
| |
| Image: ETS_config_1.png | Тест интерфейса
| |
| </gallery>
| |
| | |
| == Теория KNX ==
| |
| === Адресация ===
| |
| Про групповые адреса и телеграммы читайте на странице [[KNX]].
| |
| | |
| Примеры групповых адресов:
| |
| * Выключатели с адресами 0.0.1 и 0.0.2
| |
| * Реле с адресом 0.0.5
| |
| | |
| === Реализация в контроллере Wiren Board ===
| |
| | |
| Сервис [[MQTT_KNX | wb-mqtt-knx]] получает и отправляет телеграммы через knxd и модуль расширения [[WBE2-I-KNX_KNX_Extension_Module|WBE2-I-KNX]].
| |
| | |
| == Обнаружение KNX-устройства ==
| |
| Обычно адрес нового устройства на шине неизвестен.
| |
| | |
| Но его легко обнаружить:
| |
| # Из документации на термостат видно, что есть кнопка '''L''' и светодиод '''K''', в нормальном режиме скрытые под регулятором.
| |
| # Нажимаем отвёрткой кнопку — светодиод начнёт мигать, сигнализируя от том, что устройство перешло в режим программирования.
| |
| # В программе ETS5 переходим '''Системная шина''' → '''Диагностирование''' → '''Индивидуальные адреса''' → '''Режим программирования''' и нажимаем кнопку '''Старт'''.
| |
| # После того, как устройство будет найдено — нажмите кнопку Стоп, чтобы не занимать шину.
| |
| | |
| <gallery mode="traditional" widths ="250px" heights="195px">
| |
| Image: Program_button_KNX_A_2178.png | Фрагмент инструкции на термостат KNX Albrecht Jung
| |
| Image: ETS_search_program.png | Окно поиска устройств в режиме программирования
| |
| Image: ETS_search_program_1.png | Найдено устройство с адресом 15.15.255
| |
| </gallery>
| |
| | |
| === Диагностика неисправностей ===
| |
| [[Image: ETS_search_check.png |400px|thumb|right| Управление светодиодом на устройстве из программы ETS5]]
| |
| В процессе обнаружения устройств, ETS5 отправляет в KNX-шину телеграммы, которые можно отследить. Для этого нужно [[MQTT#Слежение за состоянием устройства / подписка на топик|подписаться]] на топик <code>/devices/knx/controls/data</code>:
| |
| <syntaxhighlight lang="bash">
| |
| mosquitto_sub -v -t /devices/knx/#
| |
| /devices/knx/controls/data/meta/type data
| |
| /devices/knx/meta/name wb-knx
| |
| /devices/knx/controls/data i:0/0/36 g:0/0/0 IndividualAddrRequest 0x00
| |
| /devices/knx/controls/data i:15/15/255 g:0/0/0 IndividualAddrResponse 0x00
| |
| /devices/knx/controls/data i:0/0/36 g:0/0/0 IndividualAddrRequest 0x00
| |
| /devices/knx/controls/data i:15/15/255 g:0/0/0 IndividualAddrResponse 0x00
| |
| /devices/knx/controls/data i:0/0/36 g:0/0/0 IndividualAddrRequest 0x00
| |
| /devices/knx/controls/data i:15/15/255 g:0/0/0 IndividualAddrResponse 0x00
| |
| /devices/knx/controls/data i:0/0/36 g:0/0/0 IndividualAddrRequest 0x00
| |
| /devices/knx/controls/data i:15/15/255 g:0/0/0 IndividualAddrResponse 0x00
| |
| </syntaxhighlight>
| |
| | |
| Также для диагностики можно вывести телеграммы из шины с помощью [[KnxTool|knxtool]]:
| |
| <syntaxhighlight lang="bash">
| |
| knxtool vbusmonitor1 local:/var/run/knx
| |
| L_Busmon: B0 00 18 00 00 E1 01 00 B7 :L_Data system from 0.0.24 to 0/0/0 hops: 06 T_Data_Broadcast A_IndividualAddress_Read
| |
| L_Busmon: B0 FF FF 00 00 E1 01 40 EF :L_Data system from 15.15.255 to 0/0/0 hops: 06 T_Data_Broadcast A_IndividualAddress_Response
| |
| </syntaxhighlight>
| |
| | |
| Ещё можно управлять светодиодом '''K''' из ETS5, для этого перейдите в меню '''Системная шина''' → '''Диагностирование''' → '''Индивидуальные адреса''' → '''Проверка индивидуального адреса'''
| |
| | |
| == Создание проекта ==
| |
| === Новый проект ===
| |
| Создадим в программе ETS5 проект.
| |
| | |
| Если это первый проект на этом компьютере, то нужно скачать и импортировать базу устройств:
| |
| # Скачайте базу устройств по с [https://www.jung.de/en/750/downloads/general-downloads/?%7E%5B3112%5D%5Bselection%5D%5B0%5D=11 сайта производителя].
| |
| # Распакуйте архив и импортируйте нужные устройства. | |
| | |
| После установки базы устройств:
| |
| # Создайте новый проект, для этого нажмите кнопку с зелёным плюсом «+».
| |
| # Укажите произвольное имя проекта.
| |
| # В разделе '''Топология''' оставьте '''TP''' (Twisted Pair).
| |
| | |
| Всё, у нас есть автоматически созданное «здание», которе называется так же как проект.
| |
| | |
| <gallery mode="traditional" widths ="180px">
| |
| Image: ETS_Jung_database.png | Файл базы устройств
| |
| Image: ETS_Jung_database_import.png | Импорт устройств
| |
| Image: ETS_createProject_01.png | Кнопка создания нового проекта
| |
| Image: ETS_createProject_02.png | Форма создания нового проекта
| |
| </gallery>
| |
| | |
| === Устройство ===
| |
| Физическое размещение — это этаж, комната или строение.
| |
| | |
| Добавим новую комнату:
| |
| # В окне '''Задания''', нажмите на стрелку рядом с названием функции.
| |
| # Из открывшегося списка выберем пункт '''Комнаты'''.
| |
| # Далее нажмите на кнопку '''Добавить''' комнату и введите наименование.
| |
| | |
| Теперь, когда у нас есть физическое размещения для устройства (комната), мы можем добавить само устройство:
| |
| # В окне '''Задания''', в списке комнат выберите ту, где стоит устройство.
| |
| # Нажмите кнопку '''Добавить устройство'''. Откроется каталог устройств.
| |
| # В каталоге устройств выберите '''Производитель''' → '''Тип устройства''' и найдите наш термостат '''2178TS'''. Здесь важно не ошибиться и выбрать устройство с полностью совпадающим наименованием — все буквы и цифры важны.
| |
| # Нажимаем кнопку '''Добавить'''.
| |
| # Смените адрес устройства. Зайдите в свойства устройства и в правой части экрана измените адрес. В нашем примере мы установили 1.1.4.
| |
| | |
| <gallery mode="traditional " widths ="250px" heights="200px">
| |
| Image: ETS_createProject_03.png | Добавление комнаты
| |
| Image: ETS_createProject_04.png | Добавление устройств
| |
| Image: ETS_createProject_05.png | Выбор устройства
| |
| Image: ETS_createProject_06.png | Свойства устройств
| |
| Image: ETS_createProject_07.png | Установка адреса
| |
| </gallery>
| |
| | |
| По алгоритму выше, добавьте второе устройство — выключатель. Он сразу есть в каталоге ETS5 и скачивать базу не нужно. Ему назначим адрес 1.1.5
| |
| | |
| Теперь в проекте есть два устройства.
| |
| | |
| == Взаимодействие контроллера Wiren Board с 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 в Вики]]
| |
| * [[WBE2-I-KNX_KNX_Extension_Module | Модуль расширения WBE2-I-KNX]]
| |