-
Notifications
You must be signed in to change notification settings - Fork 10
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).
- 07/CS92: DHW Sensor
- 13/BDR91: Relay
- [04/HR92: TRV][HR92]
0001RF Check0004Zone name0008Relay demand0009Relay failsafe000AZone config000CZone actuators0016RF signal test0100Localisation0404Zone schedule0418System fault1030Mix zone config1060Battery state10A0DHW setpoint10E0Device info1100Boiler relay info1260DHW temperature12B0Window sensor1F09System Sync1F41DHW mode1FC9RF bind1FD4Opentherm ticker22C9UFH setpoint22D9Boiler setpoint2309Zone setpoint2349Setpoint override2E04Controller mode30C9Zone temperature313FSystem datetime3150Heat demand3220Opentherm message3B00Actuator sync3EF0Actuator info3EF1Actuator unknown
0002External sensor0005Zone management0006Schedule sync000EUnknown01D0Unknown01E9Unknown042FUnknown1280Outdoor humidity1290Outdoor temp12A0Indoor humidity2249Now/next setpoint22D0UFH unknown22F1Ventilation unit command22F3Ventilation unit temp. high2389Unknown2D49Unknown3120Unknown31D9HVAC Unknown31DAHVAC Unknown31E0HVAC Unknown