|
|
(не показано 9 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
| == MQTT KNX Bridge ==
| | test page |
| Устройства, использующие протокол KNX.
| |
| | |
| Пакет: wb-mqtt-knx. Исходный код: https://github.com/contactless/wb-mqtt-knx
| |
| | |
| wb-mqtt-knx пересылает KNX телеграммы из специализированного MQTT топика в KNX сеть и обратно. Для работы с KNX используется KNXD - https://github.com/knxd/knxd.
| |
| | |
| === Установка ===
| |
| wb-mqtt-knx в wirenboard устанавливается через apt-get:<pre>$ apt-get install wb-mqtt-knx</pre>
| |
| | |
| === Настройка ===
| |
| На данный момент wb-mqtt-knx не имеет конфигурационного файла.
| |
| | |
| Информацию по настройке knxd можно найти в конфигурационном файле /etc/knxd.conf - https://github.com/knxd/knxd/blob/master/systemd/knxd.conf и в<pre>$ knxd --help</pre>
| |
| | |
| === Работа с wb-mqtt-knx ===
| |
| При инициализации wb-mqtt-knx подписывается на MQTT топик:<pre>/devices/knx/controls/data/on</pre>и открывает Busmonitor connection на стандартный сокет (ip:localhost:6720), создаваемый knxd по умолчанию.
| |
| | |
| Все полученные из KNX телеграммы будут отправлены в MQTT топик:<pre>/devices/knx/controls/data</pre>
| |
| | |
| === Адреса в MQTT ===
| |
| <pre>
| |
| Default MQTT topics are:
| |
| | |
| /devices/knx/meta/name wb-knx
| |
| /devices/knx/controls/data/meta/type data
| |
| | |
| Input data:
| |
| | |
| /devices/knx/controls/data
| |
| | |
| Example:
| |
| | |
| $ mosquitto_sub -t '/devices/knx/#' -v
| |
| /devices/knx/controls/data/meta/type data
| |
| /devices/knx/meta/name wb-knx
| |
| | |
| $ mosquitto_pub -t '/devices/knx/controls/data/on' -m "i:0/0/1:9/7/55 4 message
| |
| | |
| /devices/knx/controls/data/on i:0/0/1:9/7/55 4 message
| |
| /devices/knx/controls/data i:0/0/1 i:9/7/55 4 message
| |
| | |
| $ mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:9/7/55 4 message
| |
| | |
| /devices/knx/controls/data/on g:9/7/55 4 message
| |
| /devices/knx/controls/data i:0/0/0 g:9/7/55 4 message
| |
| </pre>
| |
| | |
| === Формат MQTT сообщений ===
| |
| Рассмотрим два примера сообщений, которые можно послать через wb-mqtt-knx:
| |
| 1) Индивидуальная телеграмма:<pre>mosquitto_pub -t '/devices/knx/controls/data/on' -m "i:0/0/1:9/7/55 4 message"</pre>в `mosquitto_sub -t '/devices/knx/controls/#'` придут следующие сообщения:<pre>/devices/knx/controls/data/on i:0/0/1:9/7/55 4 message
| |
| /devices/knx/controls/data i:0/0/1 i:9/7/55 4 message</pre>в данном примере:
| |
| * "i:" обозначает индивидуальный адрес
| |
| * "0/0/1" адрес источника сообщения (From:)
| |
| * "9/7/55" адрес целевого устройстав (To:)
| |
| * "4" тип KNX сообщения (ACPI)
| |
| * "message" - полезная информация (payload)
| |
| во втором сообщении мы видим что из сети KNX пришло сообщение(которое мы только что отправили). Оно было отправлено от устройства с индивидуальным адресом 0/0/1 (i:0/0/1) к устройству с индивидуальным адресом 9/7/55 (i:9/7/55) с ACPI "4" и payload "message"
| |
| 2) Групповая телеграмма:<pre>mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:9/7/55 4 message"</pre>в `mosquitto_sub -t '/devices/knx/controls/#'` придут следующие сообщения:<pre>/devices/knx/controls/data/on g:9/7/55 4 message
| |
| /devices/knx/controls/data i:0/0/0 g:9/7/55 4 message</pre>Видно что изменились только адреса:
| |
| * "g:" обозначает групповой адрес. В случае группового адреса не задается адрес источника, поэтому
| |
| * "9/7/55" групповой целевой адрес (Group To:)
| |
| * тип сообщения и payload задаются также как и в индивидуальной телеграмме
| |
| | |
| Во втором сообщении также только одно изменение - адрес To: теперь групповой.
| |
| | |
| Групповой адрес может также содержать два элемента: g:5/55.
| |
| | |
| Подробнее про адресацию можно узнать в Serial Data Transmission and KNX Protocol
| |
| | |
| Формально исходящее сообщение имеет формат:<pre>mosquitto_pub -t '/devices/knx/controls/data/on' -m "address acpi message"</pre>где address это либо<pre>i:from_addr:to_addr</pre>либо<pre>g:to_group_addr</pre>где from_addr и to_addr это индивидуальные KNX адреса, а to_group_addr это групповой адрес.
| |
| | |
| Входящее сообщение имеет формат:<pre>/devices/knx/controls/data "from_addr to_addr acpi message"</pre>где from_addr - индивидуальный адрес источника сообщения, to_addr - групповой или индивидуальный адрес назначения.
| |