MQTT KNX V2: различия между версиями
(Добавил предварительную информацию из документации по коду, и страниц вики) |
(Добавил раздел управление сервисом и просмотр системного журнала) |
||
Строка 21: | Строка 21: | ||
<pre>i:${SrcAddr} g:${DstAddr} ${APCI} ${Data}</pre> | <pre>i:${SrcAddr} g:${DstAddr} ${APCI} ${Data}</pre> | ||
* ''SrcAddr'' | * ''SrcAddr'' - Индивидуальный адрес KNX устройства отправителя в формате "n/n/n" или "n/n". | ||
* ''DstAddr'' - Групповой адрес KNX в формате "n/n/n" или "n/n". | |||
* ''APCI'' - Тип сообщения: строка или 4х-битное число. | * ''APCI'' - Тип сообщения: строка или 4х-битное число. | ||
* ''Data'' - Сообщение в виде байт, разделенных пробелами. Первый байт сообщения должен иметь длину не более 6 бит. | * ''Data'' - Сообщение в виде байт, разделенных пробелами. Первый байт сообщения должен иметь длину не более 6 бит. | ||
При отправке сообщений для полей ''Data'' допускаются форматы: <code>0xAA</code>, <code>0XAA</code>, <code>0b10101010</code>, <code>0B10101010</code>, <code>170</code> | |||
Поддерживаемые типы сообщений(APCI): | Поддерживаемые типы сообщений(APCI): | ||
Строка 55: | Строка 58: | ||
== Настройка == | == Настройка == | ||
{{note|warn| Нужно описать как настроить сервис}} | {{note|warn| Нужно описать как настроить сервис}} | ||
== Управление сервисом и просмотр журнала == | |||
Обычно сервис запускается автоматически при загрузке контроллера и перезапускается при сохранении файла конфигурации в веб-интерфейсе. | |||
Также можно управлять сервисом в ручном режиме. Для выполнения команд подключитесь к контроллеру по [[SSH]]. Доступны команды: | |||
<syntaxhighlight lang="bash"> | |||
$ systemctl stop wb-mqtt-knx # остановить | |||
$ systemctl start wb-mqtt-knx # запустить | |||
$ systemctl restart wb-mqtt-knx # перезапустить | |||
</syntaxhighlight> | |||
Для просмотра [[Journalctl|служебного журнала]] службы: | |||
<syntaxhighlight lang="bash"> | |||
$ journalctl -u wb-mqtt-knx | |||
</syntaxhighlight> | |||
== Экспорт из ETS == | == Экспорт из ETS == |
Версия 17:35, 14 декабря 2021
Это черновик страницы. Последняя правка сделана 14.12.2021 пользователем RomanKochkin.
Сервис предназначен для работы с KNX и MQTT в двух режимах.
- Как сетевой мост, который обрабатывает, передаёт и принимает KNX телеграммы в MQTT в специальном формате.
- Как набор виртуальных устройств для работы с групповыми объектами и предварительной обработкой типов данных.
Для работы сервиса необходима его установка и настройка.
Режимы работы
Сетевой мост MQTT <=> KNX
Чтобы отправить групповую телеграмму в KNX необходимо отправить подготовленное сообщение в MQTT топик:
mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:${DstAddr} ${APCI} ${Data}"
Все сообщения из KNX будут доставлены в MQTT топик /devices/knx/controls/data
в виде:
i:${SrcAddr} g:${DstAddr} ${APCI} ${Data}
- SrcAddr - Индивидуальный адрес KNX устройства отправителя в формате "n/n/n" или "n/n".
- DstAddr - Групповой адрес KNX в формате "n/n/n" или "n/n".
- APCI - Тип сообщения: строка или 4х-битное число.
- Data - Сообщение в виде байт, разделенных пробелами. Первый байт сообщения должен иметь длину не более 6 бит.
При отправке сообщений для полей Data допускаются форматы: 0xAA
, 0XAA
, 0b10101010
, 0B10101010
, 170
Поддерживаемые типы сообщений(APCI):
GroupValueRead
GroupValueResponse
GroupValueWrite
Контроллер групповых объектов
Для группового адреса KNX создаётся индивидуально настраиваемый MQTT контрол. Это означает, что можно работать с групповым адресом как с MQTT контролом: отправлять в него и принимать из него значения, например: битов, целых знаковых и беззнаковых чисел, чисел с плавающей точкой.
Тип контрола связан типом данных для группового адреса. Тип данных для конкретного группового адреса можно настроить в веб редакторе конфигурационных файлов.
Несколько групповых адресов группируются в одно или несколько произвольных логических MQTT устройств.
На данный момент поддерживаются пять типов данных групповых адресов и один с возможностью обработки сырых данных:
Raw_Value
- обработка сырых данных: массив данных в виде строки (APDU payload);1.xxx_B1
- 1-битовое значение;2.xxx_B2
- 2-битовое значение;5.xxx_8-Bit_Unsigned_Value
- 8-битовое целое без знака;6.xxx_V8
- 8-битовое целое со знаком;9.xxx_2-Octet_Float_Value
- 2-байтовое значение с плавающей точкой.
Установка
Запустите консоль и введите командуː
$ apt-get update && apt-get install wb-mqtt-knx
Настройка
Нужно описать как настроить сервис
Управление сервисом и просмотр журнала
Обычно сервис запускается автоматически при загрузке контроллера и перезапускается при сохранении файла конфигурации в веб-интерфейсе.
Также можно управлять сервисом в ручном режиме. Для выполнения команд подключитесь к контроллеру по SSH. Доступны команды:
$ systemctl stop wb-mqtt-knx # остановить
$ systemctl start wb-mqtt-knx # запустить
$ systemctl restart wb-mqtt-knx # перезапустить
Для просмотра служебного журнала службы:
$ journalctl -u wb-mqtt-knx
Экспорт из ETS
Для импорта из инструмента ETS в файл конфигурации для работы с групповыми объектами wb-mqtt-knx.conf
,
можно воспользоваться консольной утилитой wb-knx-ets-tool
.
Утилита принимает на вход XML файлы экспорта из инструмента ETS версии 5 и 6.
Использование:
$ wb-knx-ets-tool ETS_CONFIG WB_MQTT_KNX_CONFIG
- ETS_CONFIG - путь к XML файлу экспорта групповых объектов
- WB_MQTT_KNX_CONFIG - путь к файлу конфигурации для работы с групповыми объектами
wb-mqtt-knx.conf