Skip to main content

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

DPTSizeMeaningTypical use
1.0011 bitSwitch (0 = Off, 1 = On)Lighting on/off
1.0021 bitBoolean (False/True)Generic logic
1.0081 bitUp/DownBlind direction
1.0091 bitOpen/CloseWindow/door contact
3.0074 bitDimming (relative, with step)Press-and-hold dimming
5.0011 bytePercentage 0–100 %Dim value, valve position
5.0101 byteCounter 0–255Scene number, counts
9.0012 byteTemperature °C (float)Room/setpoint temperature
9.0042 byteIlluminance (lux)Brightness sensor
13.0014 byteSigned counterEnergy/pulse counters
14.x4 byteIEEE float (engineering)Power, energy values
16.00014 byteCharacter 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.001 on a thermostat is a temperature, a 1.001 is 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.
1-bit is not always "switch"

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.