Участник:Y.usishchev: различия между версиями

Материал из Wiren Board
Метка: visualeditor
(не показано 7 промежуточных версий этого же участника)
Строка 7: Строка 7:


=== Установка ===
=== Установка ===
wb-mqtt-knx в wirenboard устанавливается через apt-get:<pre>$ apt-get install wb-mqtt-knx</pre>
wb-mqtt-knx в wirenboard устанавливается через apt-get:<blockquote>$ apt-get install wb-mqtt-knx</blockquote>


=== Настройка ===
=== Настройка ===
На данный момент 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 и в<blockquote>$ knxd --help</blockquote>


=== Работа с wb-mqtt-knx ===
=== Работа с wb-mqtt-knx ===
При инициализации wb-mqtt-knx подписывается на MQTT топик:<pre>/devices/knx/controls/data/on</pre>и открывает Busmonitor connection на стандартный сокет (ip:localhost:6720), создаваемый knxd по умолчанию.
При инициализации wb-mqtt-knx подписывается на MQTT топик:<blockquote>/devices/knx/controls/data/on</blockquote>и открывает Busmonitor connection на стандартный сокет (ip:localhost:6720), создаваемый knxd по умолчанию.


Все полученные из KNX телеграммы будут отправлены в MQTT топик:<pre>/devices/knx/controls/data</pre>
Все полученные из KNX телеграммы будут отправлены в MQTT топик:<blockquote>/devices/knx/controls/data</blockquote>


=== Адреса в MQTT ===
=== Формат MQTT сообщений ===
<pre>
Рассмотрим два примера сообщений, которые можно послать через wb-mqtt-knx:
Default MQTT topics are:
# Индивидуальная телеграмма:  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 в данном примере:  <nowiki>*</nowiki> "i:" обозначает индивидуальный адрес  <nowiki>*</nowiki> "0/0/1" адрес источника сообщения (From:)  <nowiki>*</nowiki> "9/7/55" адрес целевого устройстав (To:)  <nowiki>*</nowiki> "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) Групповая телеграмма:
/devices/knx/meta/name wb-knx
mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:9/7/55 4 message"
/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


в `mosquitto_sub -t '/devices/knx/controls/#'` придут следующие сообщения:
/devices/knx/controls/data/on 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
/devices/knx/controls/data i:0/0/0 g:9/7/55 4 message
</pre>


=== Формат MQTT сообщений ===
Видно что изменились только адреса:
Рассмотрим два примера сообщений, которые можно послать через wb-mqtt-knx:
"g:" обозначает групповой адрес. В случае группового адреса не задается адрес источника, поэтому
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
"9/7/55" групповой целевой адрес (Group To:)
/devices/knx/controls/data i:0/0/1 i:9/7/55 4 message</pre>в данном примере:
тип сообщения и payload задаются также.
* "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: теперь групповой.
Во втором сообщении также только одно изменение - адрес To: теперь групповой.


Групповой адрес может также содержать два элемента: g:5/55.
Групповой адрес может содержать два элемента: g:5/55.


Подробнее про адресацию можно узнать в Serial Data Transmission and KNX Protocol
Подробнее про адресацию можно узнать в 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 - групповой или индивидуальный адрес назначения.
Формально исходящее сообщение имеет формат:
mosquitto_pub -t '/devices/knx/controls/data/on' -m "address acpi message"
где адрес это либо
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 - групповой или индивидуальный адрес назначения.

Версия 17:32, 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 сообщений

Рассмотрим два примера сообщений, которые можно послать через 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" где адрес это либо 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 - групповой или индивидуальный адрес назначения.