-
Notifications
You must be signed in to change notification settings - Fork 9
1F41: DHW Operating Mode
David Bonnes edited this page Feb 2, 2020
·
2 revisions
When the DHW operating mode is changed, the controller will broadcast the new mode via a 1F41
packet:
046 I --- 01:145038 --:------ 01:145038 1F41 006 000102FFFFFF
If the change is temporary (until some future point in time), then a datetime will be added to the end of the payload.
047 I --- 01:145038 --:------ 01:145038 1F41 012 000104FFFFFF2816160B07E3
Thus, this packet has two possible lengths, 6 or 12 bytes.
The controller will respond to an RQ
with the current operating mode:
095 RQ --- 18:013393 01:145038 --:------ 1F41 001 00
045 RP --- 01:145038 18:013393 --:------ 1F41 006 000000FFFFFF
The RQ
payload must be 00
.
In addition, the controller should accept an W
with a new operating mode (to be confirmed).
segment | size | contents |
---|---|---|
unused | [0:2] | always 00 |
Using Python, the payload can be decoded as:
from datetime import datetime as dt
def _datetime(seqx) -> str:
return dt(
year=int(seqx[8:12], 16),
month=int(seqx[6:8], 16),
day=int(seqx[4:6], 16),
hour=int(seqx[2:4], 16) & 0b11111, # 1st 3 bits: DayOfWeek
minute=int(seqx[0:2], 16),
).strftime("%Y-%m-%d %H:%M:%S")
def parser_1f41(payload, msg) -> Optional[dict]: # dhw_mode
assert len(payload) / 2 in [6, 12]
assert payload[:2] == "00"
assert payload[2:4] in ["00", "01"]
assert payload[4:6] in list(ZONE_MODE_MAP)
if payload[4:6] == "04":
assert len(payload) / 2 == 12
assert payload[6:12] == "FFFFFF"
return {
"active": {"00": False, "01": True}[payload[2:4]],
"mode": ZONE_MODE_MAP.get(payload[4:6]),
"until": _datetime(payload[12:24]) if payload[4:6] == "04" else None,
}
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