16 470
правок
Brainroot (обсуждение | вклад) |
м (Поправил форматирование) |
||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
KNXD | KNXD — роутер KNX данных. Перенаправляет их из одного источника в другой. Например, из физической шины KNX в KNX IP или, как в нашем случае, в локальный сокет. Поэтому для правильной работы KNXD в настройках надо указывать больше одного интерфейса. | ||
Это может быть: | |||
''' | * ''Локальный Unix-сокет и/или локальный TCP порт'' — создаются при установке knxd (/lib/systemd/system/knxd.socket). Порт по умолчанию '''6720''', путь к UNIX-сокет файлу на контроллере WB по умолчанию <code>/var/run/knx</code>. | ||
''' | * ''ip'' — knxd может подключиться к шлюзу EIBnet/IP, либо к другому контроллеру с knxd. | ||
'''Драйверы интерфейсов | * ''Server'' (-S в настройках) — knxd может выступать в качестве мультикаст-сервера, для подключения к нему EIBnet/IP-клиентов. | ||
* ''Драйверы интерфейсов'' (-b) — например, драйвер ncn5120 или usb для подключения физических шин KNX. | |||
== Установка == | == Установка == | ||
Запустите консоль и введите | Запустите консоль и введите команду: | ||
<syntaxhighlight lang="bash"> | |||
< | apt update && apt install knxd | ||
</syntaxhighlight> | |||
== Настройка == | == Настройка == | ||
Для упрощения настройки KNXD на контроллере Wiren Board рекомендуем воспользоваться программой [[WB-KNXD-CONFIG]] . Либо произвести настройку | Для упрощения настройки KNXD на контроллере Wiren Board, рекомендуем воспользоваться программой [[WB-KNXD-CONFIG]]. Либо произвести настройку вручную. | ||
Для правильной работы программы необходимо добавить пользователя knxd в группу | Для правильной работы программы необходимо добавить пользователя knxd в группу <code>dialout</code>ː | ||
<syntaxhighlight lang="bash"> | |||
< | addgroup knxd dialout | ||
</syntaxhighlight> | |||
=== knxd.conf === | === knxd.conf === | ||
Далее отредактируйте файл /etc/knxd.conf | Далее отредактируйте файл <code>/etc/knxd.conf</code>, содержимое этого файла нужно заменить строкой вида: | ||
<pre> KNXD_OPTS=" -e 1.1.255 -E 1.1.5:50 -D -T -R -n WirenboardKNX -S 224.0.23.12:3671 -b ncn5120:/dev/ttyKNX " </pre> | <pre> KNXD_OPTS=" -e 1.1.255 -E 1.1.5:50 -D -T -R -n WirenboardKNX -S 224.0.23.12:3671 -b ncn5120:/dev/ttyKNX " </pre> | ||
{{note|info| Важен порядок параметров, иначе, KNXD может работать не правильно или не работать вовсе.}} | |||
После изменения конфигурационного файла сохраните изменения и перезапустите knxdː | |||
После изменения | <syntaxhighlight lang="bash"> | ||
service knxd restart | |||
< | </syntaxhighlight> | ||
== Структура параметров == | == Структура параметров == | ||
Рекомендуемая структура | Рекомендуемая структура параметров: | ||
<pre> knxd [global-section] [address-section] [cache-section] [multicast-server-section] [local-listener-section] [interface-sections]</pre> | <pre> knxd [global-section] [address-section] [cache-section] [multicast-server-section] [local-listener-section] [interface-sections]</pre> | ||
Хотя эти разделы необязательные, для работы knxd в качестве маршрутизатора нужно как минимум два вида интерфейсов. | Хотя эти разделы необязательные, для работы knxd в качестве маршрутизатора, нужно как минимум два вида интерфейсов. | ||
=== Global-section === | === Global-section === | ||
Строка 67: | Строка 69: | ||
=== Multicast-server-section === | === Multicast-server-section === | ||
Этот раздел состоит из двух частейː [server modifiers] | Этот раздел состоит из двух частейː [server modifiers] — модификаторы сервера и [server] — сервер. | ||
==== Server modifiers ==== | ==== Server modifiers ==== | ||
Модификаторы сервера изменяют поведение мультикаст сервера, указываются перед параметром --Server | Модификаторы сервера изменяют поведение мультикаст-сервера, указываются перед параметром --Server | ||
--allow-forced-broadcast Treat routing counter 7 as per KNX spec (dangerous) | --allow-forced-broadcast Treat routing counter 7 as per KNX spec (dangerous) | ||
Строка 87: | Строка 89: | ||
=== Local-listener-section === | === Local-listener-section === | ||
В | В отличие от мультикаст-сервера, локальный слушатель не имеет широковещательного адреса и не вещает о себе в сеть. Требуется прямое подключение клиентов. Возможно использование нескольких TCP и/или UNUX-сокетов. При установке knxd создает файл <code>/lib/systemd/system/knxd.socket</code>, в котором они уже прописаны. Однако, при необходимости, можно прописать их в файл конфигурации дополнительно. | ||
-i, --listen-tcp[=PORT] Слушать TCP порт (default 6720) | -i, --listen-tcp[=PORT] Слушать TCP порт (default 6720) | ||
Строка 94: | Строка 96: | ||
=== Interface-sections === | === Interface-sections === | ||
Для каждого интерфейса возможно использование модификаторов и параметров. | Для каждого интерфейса возможно использование модификаторов и параметров. Можно использовать несколько физических интерфейсов. Так же как мультикаст-сервер, параметры интерфейсов состоят из двух частей: модификаторы интерфейса [interface modifiers] и сам interface. | ||
==== Interface modifiers ==== | ==== Interface modifiers ==== | ||
Строка 105: | Строка 107: | ||
--tpuarts-disch-reset tpuarts backend should use a full interface reset (for Disch TPUART interfaces) | --tpuarts-disch-reset tpuarts backend should use a full interface reset (for Disch TPUART interfaces) | ||
Опции -t и -f так же могут быть использованы | Опции <code>-t</code> и <code>-f</code> так же могут быть использованы в качестве модификаторов интерфейсов. | ||
==== Interface ==== | ==== Interface ==== | ||
-b, --layer2=driver:[arg] Layer-2 Драйвер ( на пример ncn5120:/dev/ttyKNX ) | -b, --layer2=driver:[arg] Layer-2 Драйвер (на пример ncn5120:/dev/ttyKNX) | ||
==== Поддерживаемые драйверы интерфейсов ==== | ==== Поддерживаемые драйверы интерфейсов ==== | ||
* ft12 | * ft12 — Подключается через Serial порт без какого-либо драйвера по протоколу FT1.2 к BCU 2. | ||
* ip | * ip — Подключается по протоколу маршрутизации EIBnet / IP с использованием мультикаст-адреса (на пример к шлюзу EIBnet / IP или другому knxd). Шлюз должен быть настроен на маршрутизацию необходимых адресов. | ||
* ipt | * ipt — Подключается по протоколу туннелирования EIBnet / IP через IP шлюз. Шлюз должен быть настроен на маршрутизацию необходимых адресов. | ||
* tpuarts | * tpuarts — Подключается к KNX через TPUART (через последовательный интерфейс). | ||
* usb | * usb — Подключается через USB-интерфейс KNX. | ||
* ncn5120 | * ncn5120 — Подключается к KNX через NCN5120. | ||
* dummy | * dummy — Не рабочий драйвер. Используется только для тестирования. | ||
* tpuarttcp & ncn5120tcp | * tpuarttcp & ncn5120tcp — Используются тот же драйвера, что и их не-TCP-аналоги, но подключается к удаленному хосту (где socat или аналогичная программа подключает их к последовательному порту). | ||
Оригинальное описание ключей и структуры конфиг файла можно найти на '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#structure-of-parametrization странице github knxd/wiki ]'''. | Оригинальное описание ключей и структуры конфиг файла можно найти на '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#structure-of-parametrization странице github knxd/wiki ]'''. | ||
Строка 134: | Строка 136: | ||
Полезная утилита для работы с KNXD. | Полезная утилита для работы с KNXD. | ||
Примеры работы и описание | Примеры работы и описание тут: [[KnxTool]] | ||
== Работа с ETS5 == | == Работа с ETS5 == | ||
Правильно настроенный knxd позволяет использовать контроллер в качестве KNX шлюза для настройки физических устройств KNX через программу ETS5. | Правильно настроенный knxd позволяет использовать контроллер в качестве KNX-шлюза для настройки физических устройств KNX через программу ETS5. | ||
Настроен как шлюз по | Настроен как шлюз по умолчанию, редактировать обычно не требуется. | ||
=== Настройка шлюза === | === Настройка шлюза === | ||
Для связи программы ETS5 с KNX устройствами надо включить у knxd интерфейсы мультикаст сервера и физической шины KNX (драйвер ncn5120). Укажите в конфигурации knxd опции -D -T -R -S и интерфейс -b ncn5120:/dev/ttyKNX. Подробнее об опциях '''-DTRS''' и '''-b''' '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#server-modifiers | Для связи программы ETS5 с KNX устройствами надо включить у knxd интерфейсы мультикаст-сервера и физической шины KNX (драйвер ncn5120). Укажите в конфигурации knxd опции <code>-D -T -R -S</code> и интерфейс <code>-b ncn5120:/dev/ttyKNX</code>. Подробнее об опциях '''-DTRS''' и '''-b''' '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#server-modifiers тут]''' | ||
Сделать можно двумя способами: | Сделать можно двумя способами: | ||
* с использованием [[WB-KNXD-CONFIG]]: | * с использованием [[WB-KNXD-CONFIG]]: | ||
[[Файл:WB-KNXD-CONFIG.png| | *:[[Файл:WB-KNXD-CONFIG.png|500px|center|добавление параметров]] | ||
* редактированием файла конфигурации [[Knxd#knxd.conf|knxd.conf]] | * редактированием файла конфигурации [[Knxd#knxd.conf|knxd.conf]] | ||
== Работа с Wiren Board == | == Работа с Wiren Board == | ||
KNXD полноценно работает на контроллере Wiren Board. | |||
Для взаимодействия контроллера с физической шиной KNX, рекомендуем приобрести модуль [[KNX Module for WB6 (WBE2-I-KNX)]]. | |||
Для взаимодействия KNXD с [[MQTT]], рекомендуем использовать мост [[MQTT_KNX]] (wb-mqtt-knx). | |||
А для написания сценариев автоматизации KNX устройств — [[Движок правил wb-rules]]. |