Protocols and data types
The bus protocol code lives under internal/falcon, the datapoint code under internal/dpt.
KNXnet/IP
| Part | Status |
|---|---|
| Search (multicast) and description of a gateway | Implemented, used by the application and knxprobe -discover, -describe |
| Tunnelling over UDP | Implemented, with unit tests, and used against real gateways in development |
| Tunnelling over TCP (KNXnet/IP v2) | Implemented, with unit tests. A gateway closes a tunnel that stays silent for about two minutes, so the connection state request is sent every 60 seconds on TCP as on UDP, and the tunnel is closed when the gateway does not answer |
| Device management connection | Implemented (reading and writing the gateway’s own interface objects). The tools use it to open and close a connection only |
Routing (multicast, default 224.0.23.12:3671) | Implemented in the library (at most 50 frames per second, busy handling). Not used by the application or the tools. Not tested on hardware |
| IP Secure (secure sessions, secure routing) | Not implemented. It would need the specification or a secure gateway to test against, and nothing is guessed |
cEMI and application layer
Frames are decoded and built as cEMI L_Data requests, confirmations and indications. The application layer covers group value read, response and write, and the management services the programming code uses:
- device descriptor and device object property reads,
- memory reads and writes, including extended memory services,
- extended property services and function property commands,
- individual address read and write, programming-mode query,
- authorization with an access key,
- restart.
Writing services are refused by the bus client unless writes were enabled for a specific device. See safety.
KNX USB
The library can enumerate KNX USB interfaces and open one on Linux through hidraw. On other platforms it reports
“unsupported”. The application does not use USB. knxprobe -usb-list lists interfaces. USB has not been tested on
hardware.
Datapoint types
Datapoint type layouts come from the KNX master data (knx_master.xml), not from a built-in table. The master data is
taken from the open project, or downloaded once into the catalog folder on request (or automatically, if you switched that on in the catalog). Values that cannot be decoded are
shown as raw octets.
- Decoding shows values with their unit, for example
21.5 °C. Special formats exist for time (DPST-10-1) and date (DPST-11-1). Fields that use constructs the decoder does not model are skipped. - Encoding accepts the text a user types and produces the wire octets: single-field types take
21.5,50 %,onor an enumeration name; date and time take2026-10-12andMon 14:05:09; other multi-field types take the fields in order, optionally named, separated by commas (Increase, StepCode: 3). Text types accept printable ASCII. A value shown by the decoder is accepted again as input. - The group address editor offers the data types by identifier (
DPST-9-1).
A group address without a data type can be read but not written from the application.