I don't have an OTB, so can't comment with 100% confidence, but I have the benefit of a few people's logs.
I seems to me that all the OTB systems I've seen, the controller periodically (every 300 secs) asks (i.e. issues an RQ) for:
- 05: Fault flags & OEM fault code
- 11: Relative modulation level
- 12: Central heating water pressure
- 13: DHW flow rate (litres/minute)
- 19: Boiler water temperature
- 1A: DHW temperature
In addition, some other controllers regularly (but not periodically, it seems) ask for:
- 1C: Return water temperature
- 73: OEM diagnostic code
I don't know why there is this difference, it could simply be a state thing.
This is an example of such a log (note the msg_id is the 3rd byte in the payload):
Code:
2020-10-21T09:54:41.077915 070 RQ --- 01:123456 63:262143 --:------ 3220 005 0000050000
2020-10-21T09:54:41.723184 049 RP --- 63:262143 01:123456 --:------ 3220 005 00F0050000
2020-10-21T09:54:41.877954 072 RQ --- 01:123456 63:262143 --:------ 3220 005 0000110000
2020-10-21T09:54:42.262205 049 RP --- 63:262143 01:123456 --:------ 3220 005 00C0110000
2020-10-21T09:54:42.278075 072 RQ --- 01:123456 63:262143 --:------ 3220 005 0000120000
2020-10-21T09:54:42.801189 049 RP --- 63:262143 01:123456 --:------ 3220 005 004012014D
2020-10-21T09:54:42.878142 072 RQ --- 01:123456 63:262143 --:------ 3220 005 0080130000
2020-10-21T09:54:43.338214 049 RP --- 63:262143 01:123456 --:------ 3220 005 0070130000
2020-10-21T09:54:43.478221 072 RQ --- 01:123456 63:262143 --:------ 3220 005 0080190000
2020-10-21T09:54:43.880402 048 RP --- 63:262143 01:123456 --:------ 3220 005 00401929E6
2020-10-21T09:54:44.078301 072 RQ --- 01:123456 63:262143 --:------ 3220 005 00801A0000
2020-10-21T09:54:44.421372 049 RP --- 63:262143 01:123456 --:------ 3220 005 00C01A2C33
2020-10-21T09:54:44.478364 073 RQ --- 01:123456 63:262143 --:------ 3220 005 00801C0000
2020-10-21T09:54:44.958543 048 RP --- 63:262143 01:123456 --:------ 3220 005 00401C28CC
2020-10-21T09:54:45.078446 072 RQ --- 01:123456 63:262143 --:------ 3220 005 0080730000
2020-10-21T09:54:45.500504 049 RP --- 63:262143 01:123456 --:------ 3220 005 00407300CA
The controller may ask the OTB for others (or other packet verbs are used), I'd say those would be event-driven. In addition, this one is unique in that it is not using a null ID for the OTB device_id (i.e. 63:262143 instead of (say) 10:234567), and I'm yet to work out why that is the case, but other logs are consistent with what I've said so far.
It is noteable to say that outside weather (which may be known to the OT boiler) is likely of no concern to an evohome controller.
From a quick look, it is the following codes exchanged between the controller and the OTB is which is used for obtaining the necessary information to make things work:
Code:
2020-03-04T13:33:42.850399 065 RQ --- 01:123456 10:787878 --:------ 3EF0 001 00
2020-03-04T13:33:42.881792 063 RP --- 10:787878 01:123456 --:------ 3EF0 006 0000100000FF
2020-09-12T15:05:31.124771 073 RQ --- 01:123456 10:787878 --:------ 22D9 001 00
2020-09-12T15:05:31.186007 070 RP --- 10:787878 01:123456 --:------ 22D9 003 0003E8
2020-09-12T15:10:28.288084 071 I --- 01:123456 --:------ 10:787878 3150 002 FC45
I have not had enough time to explore the above in full, but decoding it may be insightful:
Code:
13:33:42.850 || CTL:123456 | OTB:787878 | RQ | actuator_state | 00 || {}
13:33:42.881 || OTB:787878 | CTL:123456 | RP | actuator_state | 00001... || {'actuator_enabled': False, 'modulation_level': 0.0, '_unknown_0': '10', 'flame_active': False, 'flame_state': '00', '_unknown_1': '00FF'}
15:05:31.124 || CTL:123456 | OTB:787878 | RQ | boiler_setpoint | 00 || {}
15:05:31.186 || OTB:787878 | CTL:123456 | RP | boiler_setpoint | 0003E8 || {'boiler_setpoint': 10.0}
15:10:28.288 || CTL:123456 | OTB:787878 | I | heat_demand | FC45 || {'domain_id': 'FC', 'heat_demand': 0.345}
I do not know if OT faults make it into evohome - if someone is interested, we could set up a test easily enough - PM me (I'd be happy to lend you the necessary HW to eavesdrop this).
What I would really want is a copy of a OTB being bound to a controller - the initial negotiation may be very insightful - PM me for that too, if you'd like.