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