Skip to content

22D9: Boiler Setpoint

David Bonnes edited this page Feb 18, 2020 · 11 revisions

The target temperature for a boiler.

In the case of an OpenTherm Bridge, an RQ/RP pair occurs every 5 minutes, and is often followed by a 3220 message exchange. However, strictly speaking, this is not part of the OpenTherm protocol.

067 RQ --- 01:187666 10:138822 --:------ 22D9 001 00
059 RP --- 10:138822 01:187666 --:------ 22D9 003 000C1C

Payload Structure

segment size contents
unused [0:2] Unused (always 0)
setpoint [2:6] Target temperature (degrees C / 100)

Sample Code

Using Python, the payload can be decoded as:

def parser_22d9(payload) -> Optional[dict]:
    assert len(payload) / 2 == 3
    assert payload[:2] == "00"

    return {"boiler_setpoint": _temp(payload[2:6])}

See the _temp() function for detail on how to decode temperature/setpoint fields.

Related Packets

Clone this wiki locally