How does the KNXnet/IP driver write to a KNX 'Compound Structure' DPT?
The KNX standard specifies that some Datapoint Types (DPT) have Compound Structures where several data fields are contained within one DPT.
Datapoint Type 222.100 for example, is a DPT with 3 sets of Room Temperature Setpoints, each of which is a 16 bit-Float Value.
The room temperature setpoint comfort (TempSetpComf), room temperature setpoint standby (TempSetpStdby) and room temperature
setpoint economy (TempSetpEco) are all encoded within the same DPT.
From the standpoint of the
Niagara driver data model, each of these fields is a separate proxy point but on the wire, KNX compounds them into one Group Address.
When it writes to the group address the KNXnet/IP driver must therefore, first know the current value of every field before overwriting the DPT. To do this, the driver reads the whole Group Address before individually overwriting a data field. This behavior can be seen in the following ETS Group Monitor diagnostic of Group Address 7/1/0 which is a 222.100 DPT:
- Line 1: Read Group Address
- Line 2: Response Data 00 00 00 00 00 00
- Line 3: Write TempSetpComf Data 0C 1A 00 00 00 00 (Decimal 3098)
- Line 4: Read Group Address
- Line 5: Response Data 0C 1A 00 00 00 00
- Line 6: Write TempSetpStdby Data 0C 1A 06 A4 00 00 (Decimal 1700)
- Line 7: Read Group Address
- Line 8: Response Data 0C 1A 06 A4 00 00
- Line 9: Write TempSetpEco Data 0C 1A 06 A4 05 DC (Decimal 1500)
- Line 10: Read Group Address
- Line 11: Response Data 0C 1A 06 A4 05 DC