MQTT KNX V.0.1.x: различия между версиями

Материал из Wiren Board
Метка: visualeditor
Строка 1: Строка 1:
= MQTT KNX Bridge =
Устройства, использующие протокол KNX.
Устройства, использующие протокол KNX.


Строка 6: Строка 5:
wb-mqtt-knx пересылает KNX телеграммы из специализированного MQTT топика в KNX сеть и обратно. Для работы с KNX используется KNXD - https://github.com/knxd/knxd.
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 в 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 можно найти в конфигурационном файле /etc/knxd.conf - https://github.com/knxd/knxd/blob/master/systemd/knxd.conf и в<pre>$ knxd --help</pre>


== Работа с wb-mqtt-knx ==
= Адреса в MQTT =
При инициализации 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:
Строка 29: Строка 23:


/devices/knx/controls/data
/devices/knx/controls/data
Outgoing data:
/devices/knx/controls/data/on


Example:
Example:
Строка 36: Строка 34:
/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 GroupValueWrite 0b110111 0xcf 14 0xff"


/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 GroupValueWrite 0b110111 0xcf 14 0xff
/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 GroupValueWrite 0x37 0xcf 0x0e 0xff


$ 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 GroupValueRead"


/devices/knx/controls/data/on g:9/7/55 4 message
/devices/knx/controls/data/on g:9/7/55 GroupValueRead
/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 GroupValueRead 0x00
</pre>
</pre>


== Формат MQTT сообщений ==
== Формат MQTT сообщений ==
Рассмотрим два примера сообщений, которые можно послать через wb-mqtt-knx:
Рассмотрим два примера сообщений, которые можно послать через 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
1) Индивидуальная телеграмма:
/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: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:" обозначает индивидуальный адрес
* "i:" обозначает индивидуальный адрес
* "0/0/1" адрес источника сообщения (From:)
* "0/0/1" адрес источника сообщения (From:)

Версия 20:26, 17 декабря 2016

Устройства, использующие протокол 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

Адреса в MQTT

Default MQTT topics are:

/devices/knx/meta/name wb-knx
/devices/knx/controls/data/meta/type data

Input data:

/devices/knx/controls/data

Outgoing data:

/devices/knx/controls/data/on

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 GroupValueWrite 0b110111 0xcf 14 0xff"

/devices/knx/controls/data/on i:0/0/1:9/7/55 GroupValueWrite 0b110111 0xcf 14 0xff
/devices/knx/controls/data i:0/0/1 i:9/7/55 GroupValueWrite 0x37 0xcf 0x0e 0xff

$ mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:9/7/55 GroupValueRead"

/devices/knx/controls/data/on g:9/7/55 GroupValueRead
/devices/knx/controls/data i:0/0/0 g:9/7/55 GroupValueRead 0x00

Формат 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) с APCI "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 apci 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 apci message"

где from_addr - индивидуальный адрес источника сообщения, to_addr - групповой или индивидуальный адрес назначения.