Jackpot: KNX by accident ;-)

You should be aware, that KNX sensor and actuators do not only come in REG/DIN housings. There are also a lot of components for in-wall installation. Most of my binary inputs are modules like this, since I did not want to run all the window and sabotage contacts wiring through the whole house to the central distribution. You also need to be aware, that some KNX components do include quite some logic you otherwise use/would need OH for. You’ll only find out what the modules are capable of by downloading the corresponding technical documentation. Just to give one example: My KNX weather station does not only include all the sensors (wind, temperature, light, rain, humidity), but also all the fucntionality of the astro plug-in plus relatively sophistcated control functions for blinds (eight different zones, adapt for nearby structures generating shadows, control amount of light still enterging the room, indipendet lock/unlock of these functions, independent wind/rain/ice alarms (e.g. “if rain pull in sunshade on terrace” etc.) You might also have KNX units for heating control, which are usually also not mounted in your central distribution. Your “switches” might include temperature sensors (mine all do) used for room temperature control.

Bottom line: Get the project file! If this is impossible, get the ETS and pay a KNX expert to get a reconstruction, or at least an identification of the functions, so that he can re-create your set-up. This is probably cheaper that re-engineering. If that’s also not an option: Don’t touch the setup. You can not modify any setting without having a working KNX project file first. (You’ll also need to identify the correct hardware revisions of all KNX modules to find the correct firmware files etc. befor you are able to modify/program anything).

You seem to live in Germany or Austria, so you need to be aware, that you are not entitled to do any work behind the insulation shielding of your distribution cabinet. That said: It depends. Many interfaces do require auxilary power, so you might need need to install a PSU and/or get aux power from your KNX PSU which might or might not support that. You’ll also need to check the manual of your KNX PSU if the aux power port is really an aux power port and not a dedicated secondary KNX power line. If that is done, you need to check the interface’s manual, if you can do any useful with it, without downloading the firmware via ETS first. There are interfaces, which offer at least basic bus connection without downloading configuration data, but other’s won’t even pull an IP lease, because you need to set IP or DHCP in the ETS… In any case, if you want to use multiple tunnels (“connections”) you will need the ETS to download the firmware and assign a PA.

I would go one step further: Normally you do not want a KNX-IP-router (unless you use a GIRA HS or want to connect lines via IP).

If the device sends something.

Without the project file? I never tried reading “device data with group communication” without a project file. However, I just did a read of one of my rollershutter/blinds actors and it looks like this:

Geräteinfo von Gerät 1.1.11
Allgemein
Element Wert Resourcenname Unformatierter Wert 
Maskenversion 0701   1793 
Physikalische Adresse 1.1.11 IndividualAddress 4363 
Bestellnummer $6030383130FFFF010F36 DeviceOrderId 6030383130FFFF010F36 
Seriennummer FFFF:FFFFFFFF DeviceSerialNumber FFFFFFFFFFFF 
Programmiermodus Aus ProgrammingMode false 

Applikationsprogramm
Element Wert Resourcenname Unformatierter Wert 
Applikationsprogramm MDT technologies Jalousie, Rollade 8-fach V1.7 ApplicationId 0083002817 
Ladezustand Geladen ApplicationLoadStatus 1 
Ausführungszustand Aktiv ApplicationRunStatus 1 

Applikationsprogramm 2
Element Wert Resourcenname Unformatierter Wert 
Applikationsprogramm 0 0000 V0.0 PeiprogId 0000000000 
Ladezustand Entladen PeiprogLoadStatus 0 
Ausführungszustand Gestoppt PeiprogRunStatus 0 

Gruppenkommunikation
Element Wert Resourcenname Unformatierter Wert 
Ladezustand Adresstabelle Geladen GroupAddressTableLoadStatus 1 
Ladezustand Assoziationstabelle Geladen GroupAssociationTableLoadStatus 1 
Obj#0 (1 bit, -SK---, Niedrig) 3/0/100     
Obj#13 (1 bit, -SK---, Niedrig) 3/1/0 3/1/21     
Obj#14 (1 bit, -SK---, Niedrig) 3/2/0 3/2/21     
Obj#17 (1 bit, L-KÜ--, Niedrig) 3/5/0     
Obj#18 (1 Byte, -SK---, Niedrig) 3/3/0 3/3/21     
Obj#19 (1 Byte, -SK---, Niedrig) 3/4/0 3/4/21     
Obj#20 (1 Byte, L-KÜ--, Niedrig) 3/6/0     
Obj#21 (1 Byte, L-KÜ--, Niedrig) 3/7/0     
Obj#23 (1 bit, -SK---, Niedrig) 3/0/0     
Obj#32 (1 bit, -SK---, Niedrig) 8/1/9 5/1/0     
Obj#33 (1 bit, -SK---, Niedrig) 3/1/1 3/0/13 3/1/20 8/1/7     
Obj#34 (1 bit, -SK---, Niedrig) 3/2/1 3/0/17 3/2/20     
Obj#37 (1 bit, L-KÜ--, Niedrig) 3/5/1     
Obj#38 (1 Byte, -SK---, Niedrig) 3/3/1 3/3/20     
Obj#39 (1 Byte, -SK---, Niedrig) 3/4/1 3/4/20     
Obj#40 (1 Byte, L-KÜ--, Niedrig) 3/6/1     
Obj#41 (1 Byte, L-KÜ--, Niedrig) 3/7/1     
Obj#43 (1 bit, -SK---, Niedrig) 3/0/1     
Obj#49 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#52 (1 bit, -SK---, Niedrig) 5/1/1 8/1/9     
Obj#53 (1 bit, -SK---, Niedrig) 3/1/2 3/0/13 3/1/21 8/1/7     
Obj#54 (1 bit, -SK---, Niedrig) 3/2/2 3/0/17 3/2/21     
Obj#57 (1 bit, L-KÜ--, Niedrig) 3/5/2     
Obj#58 (1 Byte, -SK---, Niedrig) 3/3/2 3/3/21     
Obj#59 (1 Byte, -SK---, Niedrig) 3/4/2 3/4/21     
Obj#60 (1 Byte, L-KÜ--, Niedrig) 3/6/2     
Obj#61 (1 Byte, L-KÜ--, Niedrig) 3/7/2     
Obj#63 (1 bit, -SK---, Niedrig) 3/0/1     
Obj#69 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#72 (1 bit, -SK---, Niedrig) 5/1/2 8/1/9     
Obj#73 (1 bit, -SK---, Niedrig) 3/1/3 3/0/21 3/1/20 8/1/7     
Obj#74 (1 bit, -SK---, Niedrig) 3/2/3 3/0/22 3/2/20     
Obj#77 (1 bit, L-KÜ--, Niedrig) 3/5/3     
Obj#78 (1 Byte, -SK---, Niedrig) 3/3/3 3/3/20     
Obj#79 (1 Byte, -SK---, Niedrig) 3/4/3 3/4/20     
Obj#80 (1 Byte, L-KÜ--, Niedrig) 3/6/3     
Obj#81 (1 Byte, L-KÜ--, Niedrig) 3/7/3     
Obj#83 (1 bit, -SK---, Niedrig) 3/0/2     
Obj#89 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#92 (1 bit, -SK---, Niedrig) 5/1/3 4/1/40 8/1/9     
Obj#93 (1 bit, -SK---, Niedrig) 3/1/4 3/0/14 3/0/21 3/1/20 8/1/7     
Obj#94 (1 bit, -SK---, Niedrig) 3/2/4 3/0/18 3/0/22 3/2/20     
Obj#96 (1 Byte, -SK---, Niedrig) 8/2/1     
Obj#97 (1 bit, L-KÜ--, Niedrig) 3/5/4 3/2/20     
Obj#98 (1 Byte, -SK---, Niedrig) 3/3/4 3/3/20     
Obj#99 (1 Byte, -SK---, Niedrig) 3/4/4 3/4/20     
Obj#100 (1 Byte, L-KÜ--, Niedrig) 3/6/4     
Obj#101 (1 Byte, L-KÜ--, Niedrig) 3/7/4     
Obj#103 (1 bit, -SK---, Niedrig) 3/0/3     
Obj#109 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#112 (1 bit, -SK---, Niedrig) 5/1/4 4/1/10 8/1/9     
Obj#113 (1 bit, -SK---, Niedrig) 3/1/5 3/0/14 3/0/21 3/1/19 8/1/7     
Obj#114 (1 bit, -SK---, Niedrig) 3/2/5 3/0/18 3/0/22 3/2/19     
Obj#116 (1 Byte, -SK---, Niedrig) 8/2/1     
Obj#117 (1 bit, L-KÜ--, Niedrig) 3/5/5     
Obj#118 (1 Byte, -SK---, Niedrig) 3/3/5 3/3/19     
Obj#119 (1 Byte, -SK---, Niedrig) 3/4/5 3/4/19     
Obj#120 (1 Byte, L-KÜ--, Niedrig) 3/6/5     
Obj#121 (1 Byte, L-KÜ--, Niedrig) 3/7/5     
Obj#123 (1 bit, -SK---, Niedrig) 3/0/3     
Obj#129 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#132 (1 bit, -SK---, Niedrig) 5/1/5 8/1/9     
Obj#133 (1 bit, -SK---, Niedrig) 3/1/6 3/0/14 3/0/21 3/1/19 8/1/7     
Obj#134 (1 bit, -SK---, Niedrig) 3/2/6 3/0/18 3/0/22 3/2/19     
Obj#136 (1 Byte, -SK---, Niedrig) 8/2/1     
Obj#137 (1 bit, L-KÜ--, Niedrig) 3/5/6     
Obj#138 (1 Byte, -SK---, Niedrig) 3/3/6 3/3/19     
Obj#139 (1 Byte, -SK---, Niedrig) 3/4/6 3/4/19     
Obj#140 (1 Byte, L-KÜ--, Niedrig) 3/6/6     
Obj#141 (1 Byte, L-KÜ--, Niedrig) 3/7/6     
Obj#143 (1 bit, -SK---, Niedrig) 3/0/3     
Obj#149 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#152 (1 bit, -SK---, Niedrig) 5/1/6 8/1/9     
Obj#153 (1 bit, -SK---, Niedrig) 3/1/7 3/1/19 8/1/7     
Obj#154 (1 bit, -SK---, Niedrig) 3/2/7 3/2/19     
Obj#156 (1 Byte, -SK---, Niedrig) 8/2/1     
Obj#157 (1 bit, L-KÜ--, Niedrig) 3/5/7     
Obj#158 (1 Byte, -SK---, Niedrig) 3/3/7 3/3/19     
Obj#159 (1 Byte, -SK---, Niedrig) 3/4/7 3/4/19     
Obj#160 (1 Byte, L-KÜ--, Niedrig) 3/6/7     
Obj#161 (1 Byte, L-KÜ--, Niedrig) 3/7/7     
Obj#163 (1 bit, -SK---, Niedrig) 3/0/4     
Obj#169 (1 bit, -SK---, Niedrig) 7/0/7     
Obj#172 (1 bit, -SK---, Niedrig) 5/1/7 4/1/9 8/1/9     

Just that you get an idea of what you are up to :wink:

The header is straightforward (type of module, brand, HW & SW revisions) - but without having any idea on my GA model, I am not sure, how useful this is. The 8/x/y GAs are e.g. central maintainance functions (e.g. move all blinds up and lock them there despite what another logics might want for window cleaning) - these aren’t even triggerd except for special occasions. I’d have no idea on how identify such functionality just from reading out the device data. But I also did not give much thought to this, to be honest :wink:

As this is part of the standard, every device will answer :slight_smile: that’s for sure.

And in question of Device reading, yes, this data is sufficient, as ETS is able to reconstruct basic configuration. That’s a really basic function of ETS. Of course, you won’t get higher configuration data such as a heat controller, levels for switching and so on, but for bus communication the list CO<->GA is sufficient.
You won’t get labels from a project, no metadata, but in a simple project like roller shutters plus a small amount of switching devices and wall switches, it’s simple enough to do this part manually.

Without the Reconstruction App? Now I am curious: How do I do that?

This is part of ETS.

The Reconstruction App is sold for 450€ + VAT. If there is another function “within” the ETS - no extra cost - I am really curious, since I am unanware of it.

Well, that’s the same function I posted a printout from.

In order to make that work, you need to know the PAs of all devices (or test for all PAs on a line, because if they don’t run any cyclic telegrams or you don’t trigger a function, you don’t know that the deivce is even there)) and then get the printout just like mine. In order to make anything useful from this, you then need to check from the manuals the KO/CO IDs and create a matrix. Then you get an idea on the GAs and functionality.

This certainly can be done, but this is IMHO far away from

That’s what I’d call reverse engineering.

Guys, I am overwhelmed from your feedback and will need time to digest :slightly_smiling_face:
Much appreciated!

This actually concerns me and might keep me from touching it (I guess :wink:
First I will try to reach out to the original owner and hope he can provide the config - even if I need to pay for it.

Next step would then be getting a RS-232 to USB Adapter and just listen

If this works out well (without changing something), I will try to trigger things from OH.

Again, thanks for your great input!

As I had already stated, you have to scan the bus for devices. This is another basic function in ETS, scan for free Individual Addresses (Physikalische Adresse in German).
So either “reverse engineer” by doing two simple steps in ETS (bus scan + read configuration of each device) or “reverse engineer” by scan communication (but be aware that this won’t reveal all GA which are programmed) - or pay a certain amount of money to let someone else do the job.

Please be aware that this is a very basic installation with only three active devices in the electrical cabinet.
There may be up to 50 GAs, more or less, not hundreds of them.

To rebuild a basic version of the project, scan for devices, read the device configuration, import the programs for the devices, create the GA found in the list, link the CO given in the configuration to the GA.
The only essential part missing is flag settings, which should be fine in most cases.

I will do this - thank you, Udo.
Personally I agree, that the configuration will possibly not be very complex from what I see in the cabinet and know from the few “ununsual” switches across the house.

I might (or better will) come back with additional questions :wink:

Always welcome :slight_smile:

1 Like