-
Notifications
You must be signed in to change notification settings - Fork 9
1F09: System Synchronization
All devices are synchronized with their controller in a periodic cycle of of about 2-3 minutes in duration. This duration varies between HVAC systems but, by necessity, remains constant for a given system.
For example, an Evohome controller sends three unsolicited packets at the start of every cycle:
06:00:37.246 045 I --- 01:145038 --:------ 01:145038 1F09 003 FF073F
06:00:37.248 045 I --- 01:145038 --:------ 01:145038 2309 021 0005DC010...
06:00:37.250 045 I --- 01:145038 --:------ 01:145038 30C9 021 000776010...
Where 2309
is the setpoints, and 3C09
the temperatures, of the zones known to the controller.
At the last cycle before an hour is up, it sends two packets instead:
19:31:02.765 045 I --- 01:145038 --:------ 01:145038 1F09 003 FF073F
19:31:02.804 045 I --- 01:145038 --:------ 01:145038 000A 042 001001F40...
Where 000A
is the configuration of the zones known to the controller.
Battery-powered devices, which do not normally have their radios powered on, know to wake up and listen at the start of every cycle for new setpoints, temperatures, etc.
Such devices determine the next sync_cycle when they are turned on, they send an RQ for it, and also send an RQ when they haven't heard from the controller for a while (e.g. they are out of sync, or the controller is turned off). Every sync_cycle, they listen for 000A
, 2309
, 3C09
(and the next 1F09
, sync_cycle) packets.
Battery devices will also send packets when events happen (temp changes, window open, button pressed, dial turned), and they may then listen for any expected response (this exchange may not necessarily be an RQ
/RP
pair).
They will not listen otherwise (to conserve battery). If they are listening, that does not necessarily mean they will respond to any packet (say a 10E0
). It is unknown if, during this time, some devices would respond to certain unsolicited packets.
If a device has not heard from the controller for a while, it will periodically send an RQ
to check/correct its has the correct cycle. The controller will respond with the time remaining until the start of the next cycle:
15:17:44.602 078 RQ --- TRV:189076 CTL:145038 --:------ 1F09 001 00
15:17:44.663 045 RP --- CTL:145038 TRV:189076 --:------ 1F09 003 000280
These have been seen in the wild:
16:58:52.002 045 I --- CTL:145038 --:------ CTL:145038 0004 022 010046726...
16:58:52.015 045 W --- CTL:145038 --:------ CTL:145038 1F09 003 F804A6
16:58:52.068 045 I --- CTL:145038 --:------ CTL:145038 2309 003 010708
Note the domain_id of this 1F09
packet is F8
.
Name | Notes | ||
---|---|---|---|
[0:2] |
domain_id |
00 , F8 or FF
|
|
[2:6] |
countdown | tenths of seconds | int(payload[2:6], 16) / 10 |
Non-Evohome systems use the same protocol, such as:
04:48:33.242981 049 I --- 01:102458 --:------ 01:102458 1F09 003 FF04C4
22:04:28.261001 095 I --- 23:100224 --:------ 23:100224 1F09 003 FF0717
05:21:19.887487 095 I --- 30:077132 --:------ 30:077132 1F09 003 00058C
Each of these devices is the controller for a distinct system, each system being fully independent of the other (note the RSSI for the other two controllers is 095
, suggesting a neighbour's system).
0001
RF Check0004
Zone name0008
Relay demand0009
Relay failsafe000A
Zone config000C
Zone actuators0016
RF signal test0100
Localisation0404
Zone schedule0418
System fault1030
Mix zone config1060
Battery state10A0
DHW setpoint10E0
Device info1100
Boiler relay info1260
DHW temperature12B0
Window sensor1F09
System Sync1F41
DHW mode1FC9
RF bind1FD4
Opentherm ticker22C9
UFH setpoint22D9
Boiler setpoint2309
Zone setpoint2349
Setpoint override2E04
Controller mode30C9
Zone temperature313F
System datetime3150
Heat demand3220
Opentherm message3B00
Actuator sync3EF0
Actuator info3EF1
Actuator unknown
0002
External sensor0005
Zone management0006
Schedule sync000E
Unknown01D0
Unknown01E9
Unknown042F
Unknown1280
Outdoor humidity1290
Outdoor temp12A0
Indoor humidity2249
Now/next setpoint22D0
UFH unknown22F1
Ventilation unit command22F3
Ventilation unit temp. high2389
Unknown2D49
Unknown3120
Unknown31D9
HVAC Unknown31DA
HVAC Unknown31E0
HVAC Unknown