Модуль расширения KNX (WBE-I-KNX): различия между версиями
Ian (обсуждение | вклад) |
Ian (обсуждение | вклад) м |
||
(не показано 14 промежуточных версий 2 участников) | |||
Строка 27: | Строка 27: | ||
[[Файл:Knx conector.png|300px|Модуль расширения KNX]] | [[Файл:Knx conector.png|300px|Модуль расширения KNX]] | ||
== | == Конфигурирование == <!--T:11--> | ||
1) В веб-интерфейсе в разделе '''Configs => Hardware Modules Configuration''' необходимо выставить тип модуля для Internal slot 1 (MOD1), Либо для Internal slot 2 (MOD2) в зависимости от положения самого модуля KNX. | |||
<!--T:12--> | |||
[[Файл:Int1.PNG|300px|настройка типа модуля]] | |||
<!--T:13--> | |||
2) Далее необходимо зайти в консоль и установить пакеты [https://contactless.ru/wiki/index.php/MQTT_KNX_Bridge wb-mqtt-knx (MQTT KNX Bridge)], knxd, knxd-tools: | |||
<!--T:14--> | |||
'''apt-get update''' | |||
<!--T:15--> | |||
'''apt-get install knxd knxd-tools wb-mqtt-knx''' | |||
<!--T:16--> | |||
3) Отредактировать конфигурационные файлыː | |||
<!--T:17--> | |||
'''Если у Вас версия прошивки debian wheezy (версия без systemd)ː''' | |||
В файле '''/etc/default/knxd'''- Замените строку '''DAEMON_ARGS="-u /tmp/eib -u /var/run/knx -i -b ip:"''' | |||
На : | |||
= | '''DAEMON_ARGS="-d /var/log/knxd.log -t 0xffe -f 9 -e 1.2.255 -E 1.1.10:30 -u /var/run/knx -i -b ncn5120:/dev/ttyAPP2 -D -T -R -S"''' | ||
<!--T:18--> | |||
'''Если у Вас версия прошивки debian stretch (версия с systemd)ː''' | |||
<!--T:19--> | |||
В файле '''/etc/knxd.conf''' - вторую строчку замените на: | |||
'''KNXD_OPTS="-t 0xffe -f 9 -e 1.1.255 -E 1.1.10:30 -b ncn5120:/dev/ttyAPP2 -D -T -R -S"''' | |||
В файле '''/lib/systemd/system/knxd.service''' - удалите следующие строки: | |||
'''User=knxd''' | |||
'''Group=knxd''' | |||
<!--T:20--> | |||
После этого желательно перезагрузить контроллер. | |||
<!--T:21--> | |||
Расшифровка ключей: | |||
{| class="wikitable" | |||
!Ключ | |||
!Функция | |||
|- | |||
| -d /var/log/knxd.log | |||
| уйти в фон и писать в лог. | |||
|- | |||
| -e 1.1.255 | |||
|назначает KNX-адрес knxd равным 1.1.255, как IP-шлюзу. | |||
|- | |||
| -E 1.1.10:30 | |||
|указывает knxd выдавать KNX-адреса узлам из IP-сети в диапазоне 1.1.10..1.1.30 | |||
|- | |||
| -u /var/run/knx | |||
|открываем локальный Unix-сокет | |||
|- | |||
| -t 0xffe | |||
|задаём маску вывода отладочных сообщений. | |||
|- | |||
| -f 9 | |||
|задать макс. verbosity level | |||
|- | |||
| -i | |||
|указываем слушать TCP-порт (по умолчанию 6720). Можно прописывать -i 6721 или другой порт. Не исключающая альтернатива -u | |||
|- | |||
| -b ncn5120:/dev/ttyAPP2 | |||
|активируем ncn5120-драйвер на порту для MOD1 (при установке модуля в слот расширения MOD 2 следует указать ttyAPP3) | |||
|- | |||
| -T -R | |||
|активируем режим шлюза, туннеля (нужно для работы с ETS) | |||
|- | |||
| -D | |||
|говорит knxd оповещать о себе (Discovery) в сети | |||
|- | |||
| -S | |||
|запускаем сервер (который отвечает на мультикасты) | |||
|} | |||
<!--T:22--> | |||
Подробнее: | |||
<!--T:23--> | |||
knxd --help | |||
== Работа == <!--T:5--> | |||
<!--T:6--> | |||
Для запуска KNX daemon, необходимо прописать строку в консоль: | |||
'''service knxd start''' | |||
<!--T:24--> | |||
При необходимости перезапуска: | |||
'''service knxd restart''' | |||
<!--T:25--> | |||
Для проверки статуса: | |||
'''service knxd status''' | |||
<!--T:7--> | |||
Все логи хранятся в файле '''/var/log/knxd.log''' | |||
<!--T:26--> | |||
При получении сообщения от KNX устройства данные публикуются в MQTT топик '''/devices/knx/controls/data''' на WirenBoard. | |||
<!--T:27--> | |||
Для управления устройствами KNX необходимо отправлять команды в MQTT топик '''/devices/knx/controls/data/on''' . | |||
<!--T:28--> | |||
Пример команды: | |||
<!--T:29--> | |||
mosquitto_pub -h 192.168.0.10 -p 1883 -t /devices/knx/controls/data/on -m "g:0/0/1 GroupValueWrite 0x01" | |||
<!--T:30--> | |||
Где: | |||
<!--T:31--> | |||
-h 192.168.0.10 - IP-адрес контроллера с KNX | |||
<!--T:32--> | |||
-p 1883 - порт MQTT | |||
<!--T:33--> | |||
-t /devices/knx/controls/data/on - MQTT топик для выгрузки информации | |||
<!--T:34--> | |||
-m "g:0/0/1 GroupValueWrite 0x01" - сообщение для KNX устройства | |||
<!--T:35--> | |||
Подробнее о работе с данными KNX: [https://contactless.ru/wiki/index.php/MQTT_KNX_Bridge wb-mqtt-knx (MQTT KNX Bridge)] | |||
<!--T:8--> | |||
Скрипт для [https://contactless.ru/wiki/index.php/%D0%94%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_wb-rules wb-rules] упрощающий обработку телеграмм: [https://gist.github.com/Yanni66/bc7604bb8646d52c9c864b4ca40c63b6 knx_group_addresses.js] | |||
<!--T:36--> | |||
При работе с ETS '''Важно''': в “interfaces” ETS надо выбирать сам интерфейс ПК, через который происходит общение. Обращение с knxd в по юникасту (ip-адресу хоста с демоном) не даёт запрограммировать устройства. На иллюстрации стрелкой отмечено, какой способ взаимодействия с ETS работает: | |||
<!--T:37--> | |||
[[Файл:EtsInterface.png|500px|Интерфейсы]] | |||
</translate> | </translate> |
Версия 17:56, 14 апреля 2020
Распиновка
При заказе модуля расширения совместно с контроллером устанавливаются другие клеммники (на фото).
Клемма | Функция |
---|---|
O1 (Red) | KNX (+) |
O2 (n/a) | n/a |
O3 (Gray) | KNX (-) |
Конфигурирование
1) В веб-интерфейсе в разделе Configs => Hardware Modules Configuration необходимо выставить тип модуля для Internal slot 1 (MOD1), Либо для Internal slot 2 (MOD2) в зависимости от положения самого модуля KNX.
2) Далее необходимо зайти в консоль и установить пакеты wb-mqtt-knx (MQTT KNX Bridge), knxd, knxd-tools:
apt-get update
apt-get install knxd knxd-tools wb-mqtt-knx
3) Отредактировать конфигурационные файлыː
Если у Вас версия прошивки debian wheezy (версия без systemd)ː
В файле /etc/default/knxd- Замените строку DAEMON_ARGS="-u /tmp/eib -u /var/run/knx -i -b ip:"
На :
DAEMON_ARGS="-d /var/log/knxd.log -t 0xffe -f 9 -e 1.2.255 -E 1.1.10:30 -u /var/run/knx -i -b ncn5120:/dev/ttyAPP2 -D -T -R -S"
Если у Вас версия прошивки debian stretch (версия с systemd)ː
В файле /etc/knxd.conf - вторую строчку замените на:
KNXD_OPTS="-t 0xffe -f 9 -e 1.1.255 -E 1.1.10:30 -b ncn5120:/dev/ttyAPP2 -D -T -R -S"
В файле /lib/systemd/system/knxd.service - удалите следующие строки:
User=knxd
Group=knxd
После этого желательно перезагрузить контроллер.
Расшифровка ключей:
Ключ | Функция |
---|---|
-d /var/log/knxd.log | уйти в фон и писать в лог. |
-e 1.1.255 | назначает KNX-адрес knxd равным 1.1.255, как IP-шлюзу. |
-E 1.1.10:30 | указывает knxd выдавать KNX-адреса узлам из IP-сети в диапазоне 1.1.10..1.1.30 |
-u /var/run/knx | открываем локальный Unix-сокет |
-t 0xffe | задаём маску вывода отладочных сообщений. |
-f 9 | задать макс. verbosity level |
-i | указываем слушать TCP-порт (по умолчанию 6720). Можно прописывать -i 6721 или другой порт. Не исключающая альтернатива -u |
-b ncn5120:/dev/ttyAPP2 | активируем ncn5120-драйвер на порту для MOD1 (при установке модуля в слот расширения MOD 2 следует указать ttyAPP3) |
-T -R | активируем режим шлюза, туннеля (нужно для работы с ETS) |
-D | говорит knxd оповещать о себе (Discovery) в сети |
-S | запускаем сервер (который отвечает на мультикасты) |
Подробнее:
knxd --help
Работа
Для запуска KNX daemon, необходимо прописать строку в консоль: service knxd start
При необходимости перезапуска: service knxd restart
Для проверки статуса: service knxd status
Все логи хранятся в файле /var/log/knxd.log
При получении сообщения от KNX устройства данные публикуются в MQTT топик /devices/knx/controls/data на WirenBoard.
Для управления устройствами KNX необходимо отправлять команды в MQTT топик /devices/knx/controls/data/on .
Пример команды:
mosquitto_pub -h 192.168.0.10 -p 1883 -t /devices/knx/controls/data/on -m "g:0/0/1 GroupValueWrite 0x01"
Где:
-h 192.168.0.10 - IP-адрес контроллера с KNX
-p 1883 - порт MQTT
-t /devices/knx/controls/data/on - MQTT топик для выгрузки информации
-m "g:0/0/1 GroupValueWrite 0x01" - сообщение для KNX устройства
Подробнее о работе с данными KNX: wb-mqtt-knx (MQTT KNX Bridge)
Скрипт для wb-rules упрощающий обработку телеграмм: knx_group_addresses.js
При работе с ETS Важно: в “interfaces” ETS надо выбирать сам интерфейс ПК, через который происходит общение. Обращение с knxd в по юникасту (ip-адресу хоста с демоном) не даёт запрограммировать устройства. На иллюстрации стрелкой отмечено, какой способ взаимодействия с ETS работает: