-
Notifications
You must be signed in to change notification settings - Fork 213
Description
Background
I have minimal KNX experience. My electrician installed the KNX infrastructure - I inherited a working system without understanding much of how it was set up.
Setup:
- KNX bus with various devices (switches, dimmers, etc.)
- MDT SCN-USBR.02 USB interface connected to a debian
- knxd exposing the bus via KNXnet/IP tunnel
- ETS on a separate machine connecting via tunnel
Group communication worked fine. The problem started when I tried to program devices via ETS.
Problem
ETS device programming via knxd tunnel failed. Individual addressing (T_Connect, device management) didn't work - no responses from devices.
Root cause
After debugging I found: USB interfaces have their own individual address. When knxd sends frames from e.g. 1.1.100, devices respond to that address. My USB interface wasn't configured with 1.1.100, so it filtered out the responses at the hardware level. knxd never saw them.
I tried to configure the USB interface via ETS, but:
- The device wasn't in my ETS project (not sure if it should be?)
- When I added it, ETS wanted me to press the programming button
- I couldn't find the button on the MDT device
Solution
The attached PR reads the USB interface's address during init and:
- If unconfigured (0.0.0 or 15.15.255): programs it from config
- If matches config: all good
- If differs: warns but doesn't overwrite
- If no addr in config: warns that individual addressing may fail
This fixed my setup - ETS programming works now.
Not sure if...
- USB interfaces are supposed to be configured in ETS by the installer?
- There's a simpler solution I'm missing?
If I'm completely off track, feel free to close with a snarky comment - at least I'll have learned something :-)