Results 1 to 3 of 3

Thread: Analyzing evohome RF protocol - actuator / relay demand

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Automated Home Sr Member
    Join Date
    Jan 2018
    Posts
    64

    Default Analyzing evohome RF protocol - actuator / relay demand

    Using evohome_rf (https://github.com/zxdavb/evohome_rf) can give deep insights into the behavior of your system. I though I would show an example here.

    Using a HGI80, or evofw3 running on a nanoCUL, you can eavesdrop RF traffic, and see packets such as (with added timestamps):
    Code:
    16:43:35.979 045  I --- 01:145038 --:------ 01:145038 1F09 003 FF073F
    16:43:36.003 045  I --- 01:145038 --:------ 01:145038 2309 021 00079E01079E02079E03079E04079E05079E06079E
    16:43:36.022 045  I --- 01:145038 --:------ 01:145038 30C9 021 0008250108790208540307B20407ED050801060854
    ...translated, this is (payloads truncated for readability):
    Code:
    16:43:35.979 || CTL:123456 |            |  I | system_sync      | FF073F   || {'remaining_seconds': 185.5, '_next_sync': '16:46:41'}
    16:43:36.003 || CTL:123456 |            |  I | setpoint         | 00079... || [{'zone_idx': '00', 'setpoint': 19.5}, {'zone_idx': '01', 'setpoin...
    16:43:36.022 || CTL:123456 |            |  I | temperature      | 00082... || [{'zone_idx': '00', 'temperature': 20.85}, {'zone_idx': '01', 'tem...
    Here, we see that the controller announces the setpoint and current temperature of all the zones every 185.5 seconds.

    You can send a request (RQ) to the controller (and other devices) and get a response (RP):
    Code:
    16:48:27.636 || HGI:000730 | CTL:123456 | RQ | zone_name        | 0000     || {'zone_idx': '00'}
    16:48:27.665 || CTL:123456 | HGI:000730 | RP | zone_name        | 00004... || {'zone_idx': '00', 'name': 'Main room'}
    So, let look at how the TPI cycle works. Firstly, there's the (currently) configured cycle rate, and the minimum on time:
    Code:
    16:57:12.210 || HGI:000730 | CTL:123456 | RQ | tpi_params       | FC       || {'domain_id': 'FC'}
    16:57:12.229 || CTL:123456 | HGI:000730 | RP | tpi_params       | FC300... || {'domain_id': 'FC', 'cycle_rate': 12.0, 'minimum_on_time': 3.0, 'm...
    The controller will tell me which device is the heater relay (e.g. combi boiler, communal HW):
    Code:
    16:57:12.420 || HGI:000730 | CTL:123456 | RQ | zone_devices     | 000F     || {'domain_id': 'FC', 'device_class': 'heating_control'}
    16:57:12.436 || CTL:123456 | HGI:000730 | RP | zone_devices     | 000F0... || {'domain_id': 'FC', 'device_class': 'heating_control', 'devices': ['13:888888']}
    ...in this case, it's a BDR91A called 13:888888.

    I can then ask the relay what's happening there:
    Code:
    17:03:35.144 || HGI:000730 | BDR:888888 | RQ | rf_bind          | 00       || {}
    17:03:35.162 || BDR:888888 | HGI:000730 | RP | rf_bind          | 003EF... || [{'00': '3EF0'}, {'00': '3B00'}]
    ... it sends 0x3B00 (tpi_sync) and 0x3EF0 (actuator_enabled) packets to the controller.

    I can ask it what the actuator_cycle is:
    Code:
    17:03:36.262 || HGI:000730 | BDR:888888 | RQ | actuator_cycle   | 00       || {}
    17:03:36.277 || BDR:888888 | HGI:000730 | RP | actuator_cycle   | 00000... || {'actuator_enabled': True, 'actuator_countdown': 13, 'cycle_countd...
    Last edited by zxdavb; 23rd October 2020 at 02:04 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •