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

Навигация

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

1143 байта добавлено ,  4 месяца назад
→‎Описание: Исправлена опечатка
(→‎Описание: Исправлена опечатка)
Метки: правка с мобильного устройства правка из мобильной версии Расширенная мобильная правка
 
(не показано 16 промежуточных версий 1 участника)
Строка 3: Строка 3:
[[Image: WB KNX Devices.png.png |300px|thumb|right| KNX-устройства в веб-интерфейсе контроллера Wiren Board ]]
[[Image: WB KNX Devices.png.png |300px|thumb|right| KNX-устройства в веб-интерфейсе контроллера Wiren Board ]]


Если вы не знакомы с KNX, читайте основы на странице [[KNX]].
Здесь описан сервис версии 1.4.x и новее, [[MQTT KNX V.0.1.x | описание устаревшей версии 0.1.x]].
 
О том, что такое KNX и особенности адресации читайте в статье [[KNX]].


За работу с KNX-устройствами в контроллерах Wiren Board отвечает установленный с завода сервис [https://github.com/wirenboard/wb-mqtt-knx wb-mqtt-knx], который может работать в двух режимах:
За работу с KNX-устройствами в контроллерах Wiren Board отвечает установленный с завода сервис [https://github.com/wirenboard/wb-mqtt-knx wb-mqtt-knx], который может работать в двух режимах:
# ''Сетевой мост'', который обрабатывает, передаёт и принимает  KNX телеграммы в MQTT в специальном формате. Оставлен для обратной совместимости, новые функции в этот режим внедрятся не будут.
# ''Сетевой мост'', который обрабатывает, передаёт и принимает  KNX телеграммы в MQTT в специальном формате. Оставлен для обратной совместимости, новые функции в этот режим внедряться не будут.
# ''Контроллер групповых объектов''. Это набор виртуальных устройств для работы с групповыми объектами KNX и предварительной обработкой типов данных.
# ''Контроллер групповых объектов''. Это набор виртуальных устройств для работы с групповыми объектами KNX и предварительной обработкой типов данных.


Строка 14: Строка 16:


== Сетевой мост ==
== Сетевой мост ==
В режиме сетевого моста сервис пересылает телеграммы из MQTT в KNX и обратно.
В режиме сетевого моста сервис пересылает телеграммы из [[MQTT]] в KNX и обратно.
 
Перед началом работы, настройте knxd по [[Knxd#Настройка | инструкции]].


Чтобы отправить групповую телеграмму в KNX необходимо отправить подготовленное сообщение в MQTT топик:
Чтобы отправить групповую телеграмму в KNX необходимо отправить подготовленное сообщение в MQTT топик:
Строка 38: Строка 42:


== Контроллер групповых объектов ==
== Контроллер групповых объектов ==
{{YouTube|link=https://youtu.be/VjpN_-8SA-Q|text=Вебинар про импорт проектов из ETS, типы групповых адресов и настройку FeedBack}}
=== Описание ===
=== Описание ===
Чтобы представить групповой адрес в веб-интерфейсе контроллера Wiren Board, нужно создать контрол виртуального MQTT-устройства с параметрами, заданными объекту в программе ETS: типом данных и групповым адресом. Несколько групповых адресов можно объединять в одно или несколько произвольных MQTT-устройств.
Чтобы представить групповой адрес в веб-интерфейсе контроллера Wiren Board, нужно создать контрол виртуального [[MQTT]]-устройства с параметрами, заданными объекту в программе ETS: типом данных и групповым адресом. Несколько групповых адресов можно объединять в одно или несколько произвольных MQTT-устройств.


Далее вы можете работать с групповым адресом так же, как с обычным контролом: писать и читать из него текст, биты, целые знаковые и беззнаковые числа, числа с плавающей точкой.
Далее вы можете работать с групповым адресом так же, как с обычным контролом: писать и читать из него текст, биты, целые знаковые и беззнаковые числа, числа с плавающей точкой.
Строка 50: Строка 55:


Если нужного вам типа не оказалось, используйте в режиме MQTT специальный тип ''Raw_Value'' — это полученный массив байт, представленный в виде шестнадцатеричного числа, которое вы сможете самостоятельно преобразовать с помощью [[wb-rules]] и руководства [https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf Datapoint-Types-v02.02.01-AS].
Если нужного вам типа не оказалось, используйте в режиме MQTT специальный тип ''Raw_Value'' — это полученный массив байт, представленный в виде шестнадцатеричного числа, которое вы сможете самостоятельно преобразовать с помощью [[wb-rules]] и руководства [https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf Datapoint-Types-v02.02.01-AS].
<gallery mode="traditional" widths="260px" caption="Настройка и работа с KNX-устройством">
Image: ETS Group Object Config.png | Настройка группового объекта в программе ETS
Image: KNX MQTT Control Config.png | Настройка контрола MQTT-устройства в веб-интерфейсе контроллера Wiren Board
Image: KNX Switch WebUI.png  | Представление устройства в веб-интерфейсе контроллера Wiren Board
</gallery>


=== Настройка ===
=== Настройка ===
Для настройки Контроллера групповых адресов вы можете импортировать готовый проект из ETS, или настроить всё мышкой в [[Wiren Board Web Interface | веб-интерфейсе контроллера]] Wiren Board. Инструкцию по импорту смотрите в разделе [[#Импорт из ETS | Импорт из ETS]].
Для настройки Контроллера групповых адресов вы можете импортировать готовый проект из ETS, или настроить всё мышкой в [[Wiren Board Web Interface | веб-интерфейсе контроллера]] Wiren Board. Инструкцию по импорту смотрите ниже на этой странице, в разделе «Импорт из ETS».


{{Wbincludes:WebUI Change Access Level}}
{{Wbincludes:WebUI Change Access Level}}
Строка 123: Строка 134:


=== Структурная схема взаимодействия ===
=== Структурная схема взаимодействия ===
Устройства ''KNX device #1'' и ''KNX device #2'' связаны одним групповым адресом и образуют предварительно заданный логический канал по которому передаются определённый тип данных.
Устройства ''KNX device #1'' и ''KNX device #2'' связаны одним групповым адресом и образуют предварительно заданный логический канал по которому передаётся определённый тип данных.


Подробнее про KNX флаги групповых объектов можно почитать в статье [https://support.knx.org/hc/en-us/articles/115003188089-Flags  Flags на сайте knx.org].
Подробнее про KNX флаги групповых объектов можно почитать в статье [https://support.knx.org/hc/en-us/articles/115003188089-Flags  Flags на сайте knx.org].
Строка 130: Строка 141:


Пояснения к схеме:
Пояснения к схеме:
* '''KNX TP''' — KNX сеть, витая пара
* '''KNX TP''' — KNX сеть, витая пара.
* '''KNX device #1, group object #n''' — Групповой объект n устройства 1, привязанный к групповому адресу GA1,  с флагами на чтение и передачу, и типом датапоинта Dpt1. Пример: датчик.
* '''KNX device #1, group object #n''' — Групповой объект '''n''' устройства 1, привязанный к групповому адресу GA1,  с флагами на чтение и передачу, и типом данных Dpt1, например, датчик.
* '''KNX device #2, group object #m''' — Групповой объект m устройства 2, привязанный к групповому адресу GA1,  с флагами на запись, и типом датапоинта Dpt1. Пример: исполнительное устройство.
* '''KNX device #2, group object #m''' — Групповой объект '''m''' устройства 2, привязанный к групповому адресу GA1,  с флагами на запись, и типом данных Dpt1, например, исполнительное устройство.
* '''knxd''' — knxd сервер в контроллере WB
* '''knxd''' — knxd сервер в контроллере Wiren Board.
* '''wb-mqtt-knx''' — сервис для преобразования групповых объектов в MQTT устройства и контролы
* '''wb-mqtt-knx''' — сервис для преобразования групповых объектов в MQTT устройства и контролы.
* '''representation in terms of MQTT''' — представление групповых объектов терминах MQTT
* '''representation in terms of MQTT''' — представление групповых объектов в терминах MQTT.
* '''Web UI/ wb-rules''' — пользовательский интерфейс или движок правил
* '''Web UI/ wb-rules''' — пользовательский интерфейс или движок правил.
* '''/Device1/control1''' — контрол, связанный с групповым адресом и типом датапоита 1
* '''/Device1/control1''' — контрол, связанный с групповым адресом и типом данных 1.


=== Передача данных исполнительному устройству при изменении состояния датчика ===
=== Передача данных исполнительному устройству при изменении состояния датчика ===
Строка 143: Строка 154:
# Датчик при изменении своего состояния посылает исполнительному устройству KNX телеграмму с групповым адресом и APCI командой GroupValueWrite.
# Датчик при изменении своего состояния посылает исполнительному устройству KNX телеграмму с групповым адресом и APCI командой GroupValueWrite.
# knxd прослушивает телеграммы на шине и пересылает полученную телеграмму своим клиентам, в числе которых wb-mqtt-knx.
# knxd прослушивает телеграммы на шине и пересылает полученную телеграмму своим клиентам, в числе которых wb-mqtt-knx.
# wb-mqtt-knx по таблице соответствия, сформированной из файла конфигурации, находит MQTT контрол связанный с групповым адресом и  конвертирует KNX данные в значение, публикуемое контролом. Преобразование данных зависит от типа датапоинта.
# wb-mqtt-knx по таблице соответствия, сформированной из файла конфигурации, находит MQTT контрол связанный с групповым адресом и  конвертирует KNX данные в значение, публикуемое контролом. Преобразование зависит от типа данных.
# Изменение значения в контроле публикуется в MQTT. Подписчиками, в том числе являются движок правил и пользовательский интерфейс.
# Изменение значения в контроле публикуется в MQTT. Подписчиками, в том числе являются движок правил и пользовательский интерфейс.


Строка 154: Строка 165:
Как это работает:
Как это работает:
# Изменяется значение контрола, посредством публикации значения в топик <code>/devices/Device1/controls/control1/on</code>, что приводит к публикации значения в топик <code>/devices/Device1/controls/control1/</code>.
# Изменяется значение контрола, посредством публикации значения в топик <code>/devices/Device1/controls/control1/on</code>, что приводит к публикации значения в топик <code>/devices/Device1/controls/control1/</code>.
# Значение из топика <code>/on</code> преобразуются в данные для KNX телеграммы в зависимости от типа датапоинта, связанного с контролом. # Формируется KNX телеграмма с KNX данными, адресом получателя GA1 и APCI командой ''GroupWalueWrite''. Адрес получателя равен групповому адресу связанному с контролом.
# Значение из топика <code>/on</code> преобразуются в данные для KNX телеграммы в зависимости от типа данных, связанного с контролом.  
# Формируется KNX телеграмма с KNX данными, адресом получателя GA1 и APCI командой ''GroupWalueWrite''. Адрес получателя равен групповому адресу связанному с контролом.
# KNX телеграмма передаётся всем клиентам knxd и в KNX TP сеть.
# KNX телеграмма передаётся всем клиентам knxd и в KNX TP сеть.
# KNX телеграмму получают устройства 1 и 2. Обработка пакета c командой ''GroupValueWrite'' происходит только в групповом объекте m в устройстве 2, из-за того что в нём выставлен флаг W.
# KNX телеграмму получают устройства 1 и 2. Обработка пакета c командой ''GroupValueWrite'' происходит только в групповом объекте m в устройстве 2, из-за того что в нём выставлен флаг W.
Строка 198: Строка 210:


== Полезные ссылки ==
== Полезные ссылки ==
* [[KNX | О KNX]]
* [https://github.com/wirenboard/wb-mqtt-knx Описание сервиса wb-mqtt-knx на GitHub]
* [https://github.com/wirenboard/wb-mqtt-knx Описание сервиса wb-mqtt-knx на GitHub]
* [[KNX_Quick_start | Инструкция по настройке KNX-устройств]]
* [[KNX_Quick_start | Инструкция по настройке KNX-устройств]]
* [[knxd | Описание и настройка роутера Knxd]]
* [[WBE2-I-KNX_KNX_Extension_Module | Модуль расширения WBE2-I-KNX]]
* [[WBE2-I-KNX_KNX_Extension_Module | Модуль расширения WBE2-I-KNX]]
wb_editors
31

правка