Knxd: различия между версиями

Материал из Wiren Board
Строка 36: Строка 36:


Порядок параметров Важен. При не правильном расположении KNXD может работать не правильно или не работать вовсе.
Порядок параметров Важен. При не правильном расположении KNXD может работать не правильно или не работать вовсе.
После изменения конфиг файла сохраните изменения и перезапустите knxdː
<pre>$ service knxd restart</pre>


Рекомендуемая структура параметровː
Рекомендуемая структура параметровː
Строка 81: Строка 85:
     -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)


Подробное описание ключей и структуры конфиг файла можно найти на '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#structure-of-parametrization странице github knxd/wiki ]'''. Перед работой с KNXD рекомендуем с ней ознакомится.
==== Local-listener-section ====


Сохраните изменения и перезапустите knxdː
В отличии от мультикаст сервера локальный сокет не имеет широковещательного адреса и не может вещать о себе в сеть. Требуется прямое подключение клиентов. Возможно использование нескольких TCP и/или UNUX сокетов. При установке knxd создает файл /lib/systemd/system/knxd.socket в котором они уже прописаны. Однако при необходимости Вы можете прописать в конфиг файл дополнительно.


<pre>$ service knxd restart</pre>
    -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 should use a full interface reset (for Disch TPUART interfaces)
 
The -t and -f options may also be used as interface modifiers for local listeners.
 
===== Interface =====
 
    -b, --layer2=driver:[arg]  a Layer-2 driver to use (knxd supports more than one)
 
 
Оригинальное описание ключей и структуры конфиг файла можно найти на '''[https://github.com/knxd/knxd/wiki/Command-line-parameters#structure-of-parametrization странице github knxd/wiki ]'''.


== KnxTool ==
== KnxTool ==

Версия 18:13, 26 мая 2020

Описание

KNXD - Роутер KNX данных. Позволяет перенаправлять их из одного источника в другой. На пример из физической шины KNX в KNX IP или, как в нашем случае, в локальный сокет. Поэтому для правильной работы KNXD в настройках необходимо указывать несколько интерфейсов (больше одного). Это может бытьː

Локальный сокет - создается при установке knxd (/lib/systemd/system/knxd.socket). Порт по умолчанию 6720, путь к файлу на контроллере WB по умолчанию /var/run/knx

Физическая шина KNX - драйвер ncn5120 или usb. Требуется физическое подключение шины KNX к контроллеру.

ip - knxd может подключиться к шлюзу EIBnet / IP либо к другому контроллеру с knxd.

Server (-S в настройках) - knxd может выступать в качестве мультикаст сервера, для подключения к нему 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

Рекомендуемая структура параметровː

 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 should use a full interface reset (for Disch TPUART interfaces)

The -t and -f options may also be used as interface modifiers for local listeners.

Interface
   -b, --layer2=driver:[arg]  a Layer-2 driver to use (knxd supports more than one)


Оригинальное описание ключей и структуры конфиг файла можно найти на странице 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 можно причитать Тут