Datapoint types (DPT)
A datapoint type (DPT) defines what a value on the bus means and how it is encoded. It is the KNX equivalent of a data type in programming: without it, the bytes in a telegram are just bytes.
If the group address is the mailing list, the DPT is the agreed language everyone on that list must speak. A sender that transmits a 2-byte float to a group address whose listeners expect a 1-bit switch produces garbage — this is the root cause of a large share of "it behaves strangely" faults.
How a DPT is written
DPTs are identified as main.sub:
1.001 → main type 1 (1-bit boolean), sub-type 001 (switch)
9.001 → main type 9 (2-byte float), sub-type 001 (temperature °C)
The main type fixes the format and size. The sub-type fixes the interpretation and unit (the bits are identical; the sub-type tells you they mean °C vs. lux vs. m/s).
The DPTs you will meet most
| DPT | Size | Meaning | Typical use |
|---|---|---|---|
| 1.001 | 1 bit | Switch (0 = Off, 1 = On) | Lighting on/off |
| 1.002 | 1 bit | Boolean (False/True) | Generic logic |
| 1.008 | 1 bit | Up/Down | Blind direction |
| 1.009 | 1 bit | Open/Close | Window/door contact |
| 3.007 | 4 bit | Dimming (relative, with step) | Press-and-hold dimming |
| 5.001 | 1 byte | Percentage 0–100 % | Dim value, valve position |
| 5.010 | 1 byte | Counter 0–255 | Scene number, counts |
| 9.001 | 2 byte | Temperature °C (float) | Room/setpoint temperature |
| 9.004 | 2 byte | Illuminance (lux) | Brightness sensor |
| 13.001 | 4 byte | Signed counter | Energy/pulse counters |
| 14.x | 4 byte | IEEE float (engineering) | Power, energy values |
| 16.000 | 14 byte | Character string (ASCII) | Text to displays |
You do not need to memorise these. The point is the pattern: small things (switch) are tiny; analogue things (temperature, brightness) are 2-byte floats; counters and energy are 4-byte.
Why this matters in practice
- Linking. In ETS you can only sensibly link group objects that share a DPT. ETS will warn when DPTs mismatch — ignoring that warning is how broken links happen.
- Reading the project. When KNX Clarity shows a device's linked
group addresses, the DPT tells you what that link is for — a
9.001on a thermostat is a temperature, a1.001is the heating on/off. You can interpret an inherited project without the original integrator explaining it. - Diagnostics. A value that "looks wrong" (e.g. a temperature
reported as
6553.5) is almost always a DPT mismatch, not a faulty sensor.
Main type 1 covers dozens of sub-types (switch, up/down,
open/close, start/stop, …). They are all one bit on the wire but
mean very different things. Always read the sub-type, not just
"it's a 1.x".
DPT vs. group object size
A device's group object has a fixed size set by its application program (you cannot make a 1-bit object carry a temperature). When you assign a group address, you are implicitly committing every listener on that address to the same DPT. Keeping one group address = one DPT = one logical function is the discipline that keeps a project readable years later — and readable projects are what survive a handover.