16 877
правок
Ian (обсуждение | вклад) |
|||
(не показано 30 промежуточных версий 4 участников) | |||
Строка 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. | |||
Пакет knxd установлен на всех контроллерах Wiren Board, если у вас его не оказалось, установить можно командой: | |||
<syntaxhighlight lang="bash"> | |||
apt update && apt install knxd | |||
</syntaxhighlight> | |||
== Настройка == | == Настройка == | ||
{{Wbincludes:WebUI Change Access Level}} | |||
Настройка knxd: | |||
# Зайдите в [[Wiren Board Web Interface | веб-интерфейс]] и перейдите '''Settings''' → '''Configs''' → '''KNXD Configuration'''. | |||
# Укажите настройки и нажмите кнопку '''Save''', чтобы их сохранить. | |||
В поле ''Other Options'' вы можете указать дополнительные опции, которые будут добавлены в конец файла настроек knxd. Например, если у вас установлено два модуля расширения [[WBE2-I-KNX KNX Extension Module | WBE2-I-KNX]], то в это поле нужно добавить строку: <code>-b ncn5120:/dev/ttyKNX2</code>. | |||
[[Image: Knxd Confoguration.png |Настройка Knxd ]] | |||
== Параметры запуска knxd == | |||
Это описание не пригодится при типовой настройке knxd, которая делается через веб-интерфейс, но может быть полезно при нестандартных конфигурациях. | |||
Как указывать параметры: | |||
<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 в качестве маршрутизатора, нужно как минимум два вида интерфейсов. | ||
=== Global-section === | |||
Глобальные параметры влияют на поведение knxd и не затрагивают при этом работу интерфейсов. | Глобальные параметры влияют на поведение knxd и не затрагивают при этом работу интерфейсов. | ||
Строка 56: | Строка 46: | ||
-f, --error=LEVEL set error level | -f, --error=LEVEL set error level | ||
=== Address-section === | |||
-e, --eibaddr=EIBADDR Физический KNX-адрес самого knxd (default 0.0.1) | -e, --eibaddr=EIBADDR Физический KNX-адрес самого knxd (default 0.0.1) | ||
-E, --client-addrs=ADDRSTART:n Указывает knxd выдавать KNX-адреса узлам из IP-сети в диапазоне ADDRSTART..ADDRSTART+n | -E, --client-addrs=ADDRSTART:n Указывает knxd выдавать KNX-адреса узлам из IP-сети в диапазоне ADDRSTART..ADDRSTART+n | ||
=== Сache-section === | |||
-c, --GroupCache Включить кэширование групповой сети | -c, --GroupCache Включить кэширование групповой сети | ||
=== Multicast-server-section === | |||
Этот раздел состоит из двух частейː [server modifiers] | Этот раздел состоит из двух частейː [server modifiers] — модификаторы сервера и [server] — сервер. | ||
==== Server modifiers ==== | |||
Модификаторы сервера изменяют поведение мультикаст сервера | Модификаторы сервера изменяют поведение мультикаст-сервера, указываются перед параметром --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) | ||
Строка 79: | Строка 69: | ||
-T, --Tunnelling Включить туннелирование EIBnet/IP на сервере | -T, --Tunnelling Включить туннелирование EIBnet/IP на сервере | ||
==== Server ==== | |||
Параметр --Server | Параметр --Server указывается после модификаторов сервера [server modifiers]. | ||
-S, --Server[=ip[:port]] Запустить EIBnet/IP мультикаст сервер (default address:port 224.0.23.12:3671) | -S, --Server[=ip[:port]] Запустить EIBnet/IP мультикаст сервер (default address:port 224.0.23.12:3671) | ||
=== 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) | ||
-u, --listen-local[=FILE] Слушать Unix сокет файл (default /var/run/knx) | -u, --listen-local[=FILE] Слушать локальный Unix-сокет файл (default /var/run/knx) | ||
=== Interface-sections === | |||
Для каждого интерфейса возможно использование модификаторов и параметров. | Для каждого интерфейса возможно использование модификаторов и параметров. Можно использовать несколько физических интерфейсов. Так же как мультикаст-сервер, параметры интерфейсов состоят из двух частей: модификаторы интерфейса [interface modifiers] и сам interface. | ||
==== Interface modifiers ==== | |||
-N, --no-monitor the next Layer2 interface may not enter monitor mode | -N, --no-monitor the next Layer2 interface may not enter monitor mode | ||
Строка 103: | Строка 93: | ||
--tpuarts-ack-all-group tpuarts backend should generate L2 acks for all group telegrams | --tpuarts-ack-all-group tpuarts backend should generate L2 acks for all group telegrams | ||
--tpuarts-ack-all-individual tpuarts backend should generate L2 acks for all individual telegrams | --tpuarts-ack-all-individual tpuarts backend should generate L2 acks for all individual telegrams | ||
--tpuarts-disch-reset | --tpuarts-disch-reset tpuarts backend should use a full interface reset (for Disch TPUART interfaces) | ||
Опции <code>-t</code> и <code>-f</code> так же могут быть использованы в качестве модификаторов интерфейсов. | |||
==== Interface ==== | |||
-b, --layer2=driver:[arg] | -b, --layer2=driver:[arg] Layer-2 Драйвер (на пример ncn5120:/dev/ttyKNX) | ||
==== Поддерживаемые драйверы интерфейсов ==== | |||
* ft12 — Подключается через Serial порт без какого-либо драйвера по протоколу FT1.2 к BCU 2. | |||
* ip — Подключается по протоколу маршрутизации EIBnet / IP с использованием мультикаст-адреса (на пример к шлюзу EIBnet / IP или другому knxd). Шлюз должен быть настроен на маршрутизацию необходимых адресов. | |||
* ipt — Подключается по протоколу туннелирования EIBnet / IP через IP шлюз. Шлюз должен быть настроен на маршрутизацию необходимых адресов. | |||
* tpuarts — Подключается к KNX через TPUART (через последовательный интерфейс). | |||
* usb — Подключается через USB-интерфейс KNX. | |||
* ncn5120 — Подключается к KNX через NCN5120. | |||
* dummy — Не рабочий драйвер. Используется только для тестирования. | |||
* 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 ]'''. | ||
Строка 117: | Строка 124: | ||
Полезная утилита для работы с KNXD. | Полезная утилита для работы с KNXD. | ||
Примеры работы и описание | Примеры работы и описание тут: [[KnxTool]] | ||
== Работа с ETS5 == | == Работа с ETS5 == | ||
Правильно настроенный knxd позволяет использовать контроллер в качестве KNX-шлюза для настройки физических устройств KNX через программу ETS5. | |||
Настроен как шлюз по умолчанию, редактировать обычно не требуется. | |||
=== Настройка шлюза === | |||
Для связи программы ETS5 с KNX устройствами надо включить у knxd интерфейсы мультикаст-сервера и физической шины KNX (драйвер ncn5120) нужно в веб-интерфейсе включить опции <code>-D -T -R -S</code>. | |||
== | [[Файл:WB-KNXD-CONFIG.png|добавление параметров]] | ||
== Работа с Wiren Board == | |||
Пользователь работает с knxd через сервис [[MQTT_KNX | wb-mqtt-knx]], который преобразовывает KNX-телеграммы в значения MQTT-топиков. | |||
Сценарии автоматизации пишутся с помощью правил [[wb-rules]] или через [[Node-Red]]. |