MQTT KNX V2: различия между версиями

Материал из Wiren Board
(Создал страницу для описания новой функциональности сервиса MQTT KNX)
 
(Добавил предварительную информацию из документации по коду, и страниц вики)
Строка 1: Строка 1:
{{Draft}}
{{Draft}}
{{DISPLAYTITLE: Новый MQTT KNX}}
{{DISPLAYTITLE: Новый MQTT KNX}}
Сервис предназначен для работы с KNX и MQTT в двух режимах.
# Как сетевой мост, который обрабатывает, передаёт и принимает  KNX телеграммы в MQTT в специальном формате.
# Как набор виртуальных устройств для работы с групповыми объектами и предварительной обработкой типов данных.
Для работы сервиса необходима его установка и настройка.
== Режимы работы ==
=== Сетевой мост MQTT <=> KNX ===
Чтобы отправить групповую телеграмму в KNX необходимо отправить подготовленное сообщение в MQTT топик:
<pre>mosquitto_pub -t '/devices/knx/controls/data/on' -m "g:${DstAddr} ${APCI} ${Data}"</pre>
Все сообщения из KNX будут доставлены в MQTT топик <code>/devices/knx/controls/data</code> в виде:
<pre>i:${SrcAddr} g:${DstAddr} ${APCI} ${Data}</pre>
* ''SrcAddr'', ''DstAddr'' - Адреса KNX устройств в формате "n/n/n" или "n/n".
* ''APCI'' - Тип сообщения: строка или 4х-битное число.
* ''Data'' - Сообщение в виде байт, разделенных пробелами. Первый байт сообщения должен иметь длину не более 6 бит.
Поддерживаемые типы сообщений(APCI):
* <code>GroupValueRead</code>
* <code>GroupValueResponse</code>
* <code>GroupValueWrite</code>
=== Контроллер групповых объектов ===
Для группового адреса KNX создаётся индивидуально настраиваемый MQTT контрол. Это означает, что можно работать с групповым адресом как с MQTT контролом: отправлять в него и принимать из него значения, например: битов, целых знаковых и беззнаковых чисел, чисел с плавающей точкой.
Тип контрола связан типом данных для группового адреса. Тип данных для конкретного группового адреса можно настроить в веб редакторе конфигурационных файлов.
Несколько групповых адресов группируются в одно или несколько произвольных логических MQTT устройств.
На данный момент поддерживаются пять типов данных групповых адресов и один с возможностью обработки сырых данных:
* <code>Raw_Value</code> - обработка сырых данных: массив данных в виде строки (APDU payload);
* <code>1.xxx_B1</code> - 1-битовое значение;
* <code>2.xxx_B2</code> - 2-битовое значение;
* <code>5.xxx_8-Bit_Unsigned_Value</code> - 8-битовое целое без знака;
* <code>6.xxx_V8</code> - 8-битовое целое со знаком;
* <code>9.xxx_2-Octet_Float_Value</code> - 2-байтовое значение с плавающей точкой.
== Установка ==
Запустите консоль и введите командуː
<pre>$ apt-get update && apt-get install wb-mqtt-knx</pre>
== Настройка ==
{{note|warn| Нужно описать как настроить сервис}}
== Экспорт из ETS ==
Для импорта из инструмента ETS в файл конфигурации для работы с групповыми объектами <code>wb-mqtt-knx.conf</code>,
можно воспользоваться консольной утилитой <code>wb-knx-ets-tool</code>.
Утилита принимает на вход XML файлы экспорта из инструмента ETS версии 5 и 6.
Использование:
<pre>$ wb-knx-ets-tool ETS_CONFIG WB_MQTT_KNX_CONFIG</pre>
* ''ETS_CONFIG'' - путь к XML файлу экспорта групповых объектов
* ''WB_MQTT_KNX_CONFIG'' - путь к файлу конфигурации для работы с групповыми объектами <code>wb-mqtt-knx.conf</code>

Версия 16:56, 14 декабря 2021

Это черновик страницы. Последняя правка сделана 14.12.2021 пользователем RomanKochkin.


Сервис предназначен для работы с KNX и MQTT в двух режимах.

  1. Как сетевой мост, который обрабатывает, передаёт и принимает KNX телеграммы в MQTT в специальном формате.
  2. Как набор виртуальных устройств для работы с групповыми объектами и предварительной обработкой типов данных.

Для работы сервиса необходима его установка и настройка.

Режимы работы

Сетевой мост 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, DstAddr - Адреса KNX устройств в формате "n/n/n" или "n/n".
  • APCI - Тип сообщения: строка или 4х-битное число.
  • Data - Сообщение в виде байт, разделенных пробелами. Первый байт сообщения должен иметь длину не более 6 бит.

Поддерживаемые типы сообщений(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

Настройка

Нужно описать как настроить сервис

Экспорт из 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