Knxd: различия между версиями
Ian (обсуждение | вклад) |
|||
(не показано 27 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
KNXD | KNXD - Роутер KNX данных. Позволяет перенаправлять их из одного источника в другой. На пример из физической шины KNX в KNX IP или, как в нашем случае, в локальный сокет. Поэтому для правильной работы KNXD в настройках необходимо указывать несколько интерфейсов (больше одного). Это может бытьː | ||
'''Локальный сокет''' - создается при установке knxd (/lib/systemd/system/knxd.socket). Порт по умолчанию '''6720''', путь к файлу на контроллере WB по умолчанию '''/var/run/knx''' | |||
'''ip''' - knxd может подключиться к шлюзу EIBnet / IP либо к другому контроллеру с knxd. | |||
'''Server''' (-S в настройках) - knxd может выступать в качестве мультикаст сервера, для подключения к нему KNX клиентов. | |||
'''Драйверы интерфейсов''' (-b) - на пример драйвер ncn5120 или usb для подключения физических шин KNX | |||
Подробнее об интерфейсах на '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#interface странице github knxd/wiki]''' | |||
== Установка == | |||
Запустите консоль и введите командуː | |||
<pre>$ apt update && apt install knxd knxd-tools</pre> | |||
== Настройка == | == Настройка == | ||
Для упрощения настройки KNXD рекомендуем воспользоваться программой WB-KNXD-CONFIG (описание ниже на этой же странице) . Либо произвести настройку в ручнуюː | |||
Для правильной работы программы необходимо добавить пользователя knxd в группу dialoutː | |||
<pre>$ addgroup knxd dialout</pre> | |||
=== knxd.conf === | |||
Далее необходимо отредактировать конфигурационный файл /etc/knxd.conf | |||
Содержимое этого файла необходимо заменить строкой видаː | |||
<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> | |||
Порядок параметров Важен. При не правильном расположении KNXD может работать не правильно или не работать вовсе. | |||
После изменения конфиг файла сохраните изменения и перезапустите knxdː | |||
<pre>$ service knxd restart</pre> | |||
=== Cтруктура параметров === | |||
Рекомендуемая структура параметровː | |||
<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 === | ==== Global-section ==== | ||
Глобальные параметры влияют на поведение knxd и не затрагивают при этом работу интерфейсов. | Глобальные параметры влияют на поведение knxd и не затрагивают при этом работу интерфейсов. | ||
Строка 46: | Строка 58: | ||
-f, --error=LEVEL set error level | -f, --error=LEVEL set error level | ||
=== Address-section === | ==== 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 === | ==== Сache-section ==== | ||
-c, --GroupCache Включить кэширование групповой сети | -c, --GroupCache Включить кэширование групповой сети | ||
=== Multicast-server-section === | ==== Multicast-server-section ==== | ||
Этот раздел состоит из двух частейː [server modifiers] | Этот раздел состоит из двух частейː [server modifiers] - модификаторы сервера и [server] - сервер. | ||
==== Server modifiers ==== | ===== 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) | ||
Строка 69: | Строка 81: | ||
-T, --Tunnelling Включить туннелирование EIBnet/IP на сервере | -T, --Tunnelling Включить туннелирование EIBnet/IP на сервере | ||
==== Server ==== | ===== 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 === | ==== Local-listener-section ==== | ||
В | В отличии от мультикаст сервера локальный слушатель не имеет широковещательного адреса и не может вещать о себе в сеть. Требуется прямое подключение клиентов. Возможно использование нескольких TCP и/или UNUX-сокетов. При установке knxd создает файл /lib/systemd/system/knxd.socket в котором они уже прописаны. Однако при необходимости Вы можете прописать в конфиг файл дополнительно. | ||
-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-sections ==== | ||
Для каждого интерфейса возможно использование модификаторов и параметров. | Для каждого интерфейса возможно использование модификаторов и параметров. Возможно использование нескольких физических интерфейсов. Так же как мультикаст сервер параметры интерфейсов состоят из двух частейː модификаторы интерфейса [interface modifiers] и сам interface. | ||
==== Interface modifiers ==== | ===== 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 | ||
Строка 95: | Строка 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 так же могут быть использованы, как модификаторы интерфейсов. | ||
===== Interface ===== | |||
-b, --layer2=driver:[arg] Layer-2 Драйвер ( на пример ncn5120:/dev/ttyKNX ) | |||
===== Поддерживаемые драйверы интерфейсов ===== | |||
* ft12 - | |||
* ip - | |||
* ipt - | |||
* | * iptn - | ||
* | * bcu1s - | ||
* | * tpuarts - | ||
* | * usb - | ||
* | * ncn5120 - | ||
* | * dummy - | ||
* | * tpuarttcp & ncn5120tcp - | ||
Оригинальное описание ключей и структуры конфиг файла можно найти на '''[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 ]'''. | ||
Строка 124: | Строка 141: | ||
Полезная утилита для работы с KNXD. | Полезная утилита для работы с KNXD. | ||
Примеры работы и описание | Примеры работы и описание на [https://wirenboard.com/wiki/index.php?title=KnxTool странице в вики] | ||
== Работа с ETS5 == | == Работа с ETS5 == | ||
Правильно настроенный knxd позволяет использовать контроллер в качестве KNX | |||
Правильно настроенный 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 Тут]''' | ||
Версия 18:36, 26 мая 2020
Описание
KNXD - Роутер KNX данных. Позволяет перенаправлять их из одного источника в другой. На пример из физической шины KNX в KNX IP или, как в нашем случае, в локальный сокет. Поэтому для правильной работы KNXD в настройках необходимо указывать несколько интерфейсов (больше одного). Это может бытьː
Локальный сокет - создается при установке knxd (/lib/systemd/system/knxd.socket). Порт по умолчанию 6720, путь к файлу на контроллере WB по умолчанию /var/run/knx
ip - knxd может подключиться к шлюзу EIBnet / IP либо к другому контроллеру с knxd.
Server (-S в настройках) - knxd может выступать в качестве мультикаст сервера, для подключения к нему KNX клиентов.
Драйверы интерфейсов (-b) - на пример драйвер ncn5120 или usb для подключения физических шин KNX
Подробнее об интерфейсах на странице github knxd/wiki
Установка
Запустите консоль и введите командуː
$ apt update && apt install knxd knxd-tools
Настройка
Для упрощения настройки KNXD рекомендуем воспользоваться программой WB-KNXD-CONFIG (описание ниже на этой же странице) . Либо произвести настройку в ручнуюː
Для правильной работы программы необходимо добавить пользователя knxd в группу dialoutː
$ addgroup knxd dialout
knxd.conf
Далее необходимо отредактировать конфигурационный файл /etc/knxd.conf
Содержимое этого файла необходимо заменить строкой видаː
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 "
Порядок параметров Важен. При не правильном расположении KNXD может работать не правильно или не работать вовсе.
После изменения конфиг файла сохраните изменения и перезапустите knxdː
$ service knxd restart
Cтруктура параметров
Рекомендуемая структура параметровː
knxd [global-section] [address-section] [cache-section] [multicast-server-section] [local-listener-section] [interface-sections]
Хотя все разделы являются необязательными, для работы knxd в качестве маршрутизатора необходимо иметь как минимум два вида интерфейсов.
Global-section
Глобальные параметры влияют на поведение knxd и не затрагивают при этом работу интерфейсов.
-d, --daemon[=FILE] Запустить программу в виде демона. Вывод будет записан в файл (если указан). Не указывайте этот параметр в knxd.conf, так как knxd.service и так запускает программу в фоновом режиме. -p, --pid-file=FILE Записать PID процесса в файл. Не используйте этот параметр в knxd.conf. Используйте systemctl для работы с knxd. -t, --trace=MASK set trace flags (bitmask) -f, --error=LEVEL set error level
Address-section
-e, --eibaddr=EIBADDR Физический KNX-адрес самого knxd (default 0.0.1) -E, --client-addrs=ADDRSTART:n Указывает knxd выдавать KNX-адреса узлам из IP-сети в диапазоне ADDRSTART..ADDRSTART+n
Сache-section
-c, --GroupCache Включить кэширование групповой сети
Multicast-server-section
Этот раздел состоит из двух частейː [server modifiers] - модификаторы сервера и [server] - сервер.
Server modifiers
Модификаторы сервера изменяют поведение мультикаст сервера и должны указываться перед параметром --Server
--allow-forced-broadcast Treat routing counter 7 as per KNX spec (dangerous) -n, --Name=SERVERNAME Произвольное имя сервера в сети (default is 'knxd') -D, --Discovery Разрешить серверу отвечать на запросы на обнаружение и описание в сети. -R, --Routing Включить маршрутизацию EIBnet/IP на сервере -T, --Tunnelling Включить туннелирование EIBnet/IP на сервере
Server
Параметр --Server должен быть указан после модификаторов сервера [server modifiers].
-S, --Server[=ip[:port]] Запустить EIBnet/IP мультикаст сервер (default address:port 224.0.23.12:3671)
Local-listener-section
В отличии от мультикаст сервера локальный слушатель не имеет широковещательного адреса и не может вещать о себе в сеть. Требуется прямое подключение клиентов. Возможно использование нескольких TCP и/или UNUX-сокетов. При установке knxd создает файл /lib/systemd/system/knxd.socket в котором они уже прописаны. Однако при необходимости Вы можете прописать в конфиг файл дополнительно.
-i, --listen-tcp[=PORT] Слушать TCP порт (default 6720) -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 --no-emi-send-queuing wait for L_Data_ind while sending (for all EMI based backends) --no-tunnel-client-queuing do not assume KNXnet/IP Tunneling bus interface can handle parallel cEMI requests --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-disch-reset tpuarts backend should use a full interface reset (for Disch TPUART interfaces)
Опции -t и -f так же могут быть использованы, как модификаторы интерфейсов.
Interface
-b, --layer2=driver:[arg] Layer-2 Драйвер ( на пример ncn5120:/dev/ttyKNX )
Поддерживаемые драйверы интерфейсов
- ft12 -
- ip -
- ipt -
- iptn -
- bcu1s -
- tpuarts -
- usb -
- ncn5120 -
- dummy -
- tpuarttcp & ncn5120tcp -
Оригинальное описание ключей и структуры конфиг файла можно найти на странице github knxd/wiki .
KnxTool
Полезная утилита для работы с KNXD.
Примеры работы и описание на странице в вики
Работа с ETS5
Правильно настроенный knxd позволяет использовать контроллер в качестве KNX шлюза для настройки физических устройств KNX через программу ETS5.
Настройка шлюза
Для того, что бы программа ETS5 могла связаться с KNX устройствами нужно что бы у knxd были включены интерфейсы мультикаст сервера и физической шины KNX (драйвер ncn5120) . Для этого в конфигурации knxd нужно указать опции -D -T -R -S и интерфейс -b ncn5120:/dev/ttyKNX. Подробнее об опциях -DTRS и -b можно причитать Тут