Маршрутизатор данных KNX - маршрутизация телеграмм KNX

WB 8.5.3 + WBE2-I-KNX

Релиз wb-2606

В локальной сети находится шлюз Zennio ZSYKIPI KNX-IP, шлюз “тупенький”, ничего на нём нельзя настроить кроме IP адреса, соответственно, все KNX телеграммы он кидает в сеть и принимает из сети.

Контроллер WB тоже их принимает и ретранслирует в сеть, возникает повторение телеграмм в шине.

Как отключить это в настройках WB, но чтобы всё остальное работало?

Добрый день!

Полагаю, что и Zennio ZSYKIPI, и knxd на WB одновременно работают как KNX-роутеры — оба слушают мультикаст-группу 224.0.23.12 и ретранслируют телеграммы между TP-шиной и IP-сетью. Из-за этого возникает петля: телеграмма с шины уходит в мультикаст от одного роутера, а второй тут же отдаёт её обратно на шину — отсюда дублирование.

Zennio настроить нельзя, он всегда в режиме роутинга. Значит нужно убрать роутинг у knxd, оставив только туннелирование.

Как сделать на WB8 (8.5.3 в том числе):

  1. Открыть конфиг knxd — /etc/knxd.ini, либо раздел Configs → KNXD Configuration в веб-интерфейсе.

  2. Убрать флаг -R (Routing), оставить -T (Tunnelling). Флаг -S (мультикаст-сервер для автообнаружения ETS) можно не трогать — сам по себе он телеграммы не ретранслирует, это делает именно -R.

  3. Перезапустить сервис: service knxd restart.

После этого knxd по-прежнему видит все телеграммы на шине и отдаёт их локальным клиентам (wb-mqtt-knx, wb-rules, ETS через туннель), но перестаёт ретранслировать их в мультикаст и обратно — эту роль оставит за собой только Zennio. Дублирование исчезнет, остальная функциональность сохранится.

Нюанс: если ETS подключается к WB именно через “IP Routing”, после отключения -R это соединение перестанет работать — но раз роутером в сети остаётся Zennio, ETS должна видеть шину через него, а WB достаточно оставить как точку доступа через Tunneling.