A few months ago I started working on Auto-Discovery for KNX as part of my Work on the Apache PLC4X Project. Currently all of this work is being done in the PLC4Go (Golang version) of the KNX driver, but I’m planning on bringing these changes to the Java version as well (90% of our code is generated anyway)
What I have working so far, is to auto-detect any KNX gateways in your home network. It then is able to connect to these and do an active scan of your KNX networks and hereby finds the KNX addresses of any KNX device in your network. It also reads the manufacturer id and application version which helps to identify the type of device.
Today I finished a first working POC of something that connects to a given KNX device and extracts the group addresses as well as the communication objects these Group addresses are bound to. (Everything without needing an ETS project file or secondary export)
Still trying to find a way to also get the datatype of the communication object/group address but generally making good progress here.
So I think if you folks are interested in this, I could need some help with testing this stuff with real world hardware (Most of my installation is Gira, with a bunch of Merten touchscreens … so not a very extensive sample). Also coming up with a PLC4X Open-Hab binding might be something we could work on together.
What do you think?