Skip to content

10A0: DHW Cylinder Setpoint

Dan edited this page Nov 12, 2020 · 11 revisions

The DHW sensor (CS92 Wireless Cylinder Thermostat) will periodically request the DHW setpoint from the controller via a 10A0 packet:

061 RQ --- 07:045960 01:145038 --:------ 10A0 006 0013740003E4
049 RP --- 01:145038 07:045960 --:------ 10A0 006 0013880003E8

These RQ packets are sent every 4 hours.

There is anecdotal evidence that the DHW sensor uses this information to know when send DHW temperature packets more frequently as the DHW temperature approaches the corresponding setpoint.

Other Verbs

The controller will spontaneously broadcast this information when the DHW setpoint is changed via its UI:

049  I --- 01:145038 --:------ 01:145038 10A0 006 0013EC0003E8

These messages also seem to be occasionally sent possibly if the controller has not received an RQ for a period of time.

It is also possible to update the DHW setpoint (note the differential is read-only):

049  W --- 18:013393 01:145038 --:------ 10A0 006 0013EC0003E8

Payload Structure

segment size contents range
unused [0:2] always 00
setpoint [2:6] degrees C * 100 30.0 - 85.0
unused [6:8] always 00
differential [8:12] degrees C * 100 1.0 - 10.0

Where:

  • setpoint is the target temperature in degrees Celsius
  • overrun is a duration in minutes
  • differential is

Sample Code

Using Python, the payload can be decoded as:

def _cent(seqx) -> float:
    return int(seqx, 16) / 100

def parser_10a0(payload) -> dict:
    assert payload[:2] == "00"

    return {
        "setpoint": _cent(payload[2:6]),
        "overrun": _cent(payload[6:8]),
        "differential": _cent(payload[8:12]),
    }

Related Packets

  • 0x10A0: DHW Cylinder Setpoint
  • 0x1260: DHW Cylinder Temperature
  • 0x1F41: DHW Operating Mode
Clone this wiki locally