Honeywell CH/DHW via RF - evohome, sundial, hometronics, chronotherm

I upgraded immediately.
Before the update to 0.9.15 I was using fake sensors (quite successfully I might add) but I had never added them to my allow_list. Upon starting 0.10.0 I really like that I was warned about this and I got all the ID’s I was missing in my allow list in the error log.
So, I’ve added them. Now when I restart home assistant I get only a single error:

This error originated from a custom integration.

Logger: homeassistant.setup
Source: custom_components/evohome_cc/__init__.py:193
Integration: evohome_cc (documentation, issues)
First occurred: 10:58:34 AM (1 occurrences)
Last logged: 10:58:34 AM

Error during setup of component evohome_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 248, in _async_setup_component
    result = await task
  File "/config/custom_components/evohome_cc/__init__.py", line 91, in async_setup
    await broker.async_restore_client_state()
  File "/config/custom_components/evohome_cc/__init__.py", line 193, in async_restore_client_state
    await self.client._set_state(**app_storage["client_state"])
  File "/usr/local/lib/python3.8/site-packages/ramses_rf/__init__.py", line 301, in _set_state
    self.known_devices = load_system_schema(self, **schema)  # keep old known_devs?
  File "/usr/local/lib/python3.8/site-packages/ramses_rf/schema.py", line 380, in load_system_schema
    [
  File "/usr/local/lib/python3.8/site-packages/ramses_rf/schema.py", line 381, in <listcomp>
    _load_system_schema(gwy, schema)
  File "/usr/local/lib/python3.8/site-packages/ramses_rf/schema.py", line 444, in _load_system_schema
    zone.sensor._make_fake()
AttributeError: 'NoneType' object has no attribute '_make_fake'

I also have an automation running that updates the temperatures of the fake sensors. This is still giving me the same error. Has the name of the service changed perhaps? I actually can’t see a single service of evohome_cc anymore. I’m sure that’s because of the above posted error where the integration isn’t able to start correctly.

Error while executing automation automation.h_slaapkamer_temp: Unable to find service evohome_cc.set_zone_temp

Possibly because of these errors, but unfortunately none of my entities are working. In that respect, I don’t notice any difference with 0.9.15.
If you want me to test anything for you, I’m at your disposal.

Also, great work on this commit, looks like a lot of work. Please let me know where I can find your “buy me a beer” button!

On which git would you like me to post these bugs?

My first impression is no regressions for me.

Even though I noted your last comment, I tried to re-add a fake sensor, but nothing is happening when I press ‘Call service’ on the evohome_cc.create_sensor service in the developer tool, maybe you know that and hence your warning maybe it is unexpected. No warning/errors in the logs appear. So maybe it is expected behaviour currently, just for completeness sake :slight_smile:

@maesenator @llevering All other services are working, right?

@maesenator Don’t raise an issue for this, yet - PM me a copy of your configuration.yaml, and your .strorage/evohome_cc and we’ll see what we can do - there may be an easy work-around for now.

Thanks David, I’ll PM you the files right now.
No services are working for me (from this integration of course). The integration is simply not able to start so I assume that’s why none of the services are being listed in the developer tools.

Initial tests with 0.10 seem ok to me so far - not using anything funky, such as faked sensors.

Had been running the last 0.8 release, as the 0.9 releases broke Boost on the water heater - which is/was the function we used most, certainly at this time of year. Seems to be ok in 0.10.

EDIT: evohome_cc.set_zone_mode might be broken, the following script doesn’t seem to do anything any more (no errors that I can see in the logs, will enable more logging_.

xx_office_heating_boost_1hour:
  sequence:
    - service: evohome_cc.set_zone_mode
      data:
        entity_id: climate.xx_office
        setpoint: 24
        duration: {minutes: 60}

Change does not show on the evohome controller.

Manually nudging the climate entity via the UI, seems to go back to the original state (I left it a bit longer than the video, evohome controller does not update).

Thanks @zxdavb. I’m still seeing the same issue I experienced with 0.9.15 (which I didn’t report because I saw there were issues generally) after upgrading to 0.10. My configuration has remained the same since 0.9.4 at least.

I’m using the normal Evohome controller with an HGI80 and I only present the controller’s zones in HA, as shown in the screenshots. After approx 2 hours following a restart of HA, all of the zones become unavailable. But, they are still reporting the current temperature/setpoint. Additionally, all of the zone names automatically pulled in are in lower case. That isn’t a problem as it’s only cosmetic, but I mention it just in case it’s relevant to debugging.

The one small difference between 0.9.15 and 0.10 is that previously ALL zones would become unavailable and jump to lowercase, but in 0.10 the ‘Controller’ actually seems to be staying available and capitalised!

Checking the home-assistant.log, I see the below at the same time as the unavailable event happens:

2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:58.828215: msg has expired (4:03:06.634817, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:58.882158: msg has expired (4:03:06.581137, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:58.936216: msg has expired (4:03:06.527266, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:58.992158: msg has expired (4:03:06.471506, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.047130: msg has expired (4:03:06.416741, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.101145: msg has expired (4:03:06.362912, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.155127: msg has expired (4:03:06.309114, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.209136: msg has expired (4:03:06.255286, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.263131: msg has expired (4:03:06.201473, 4:00:00)
2021-06-21 12:23:05 INFO (MainThread) [ramses_rf.message] Message(RP|01:073765|2349), received at 2021-06-21 08:19:59.319163: msg has expired (4:03:06.145643, 4:00:00)

Screenshot 2021-06-21 at 13.24.35 Screenshot 2021-06-21 at 13.25.15

Update almost an hour later, the controller has now become unavailable too with this in the log at the same time:

2021-06-21 13:13:05 INFO (MainThread) [custom_components.evohome_cc] Schema = {'controller': '01:073765', 'system': {'heating_control': None}, 'orphans': [], 'stored_hotwater': {'hotwater_sensor': '07:025142', 'hotwater_valve': None, 'heating_valve': None}, 'underfloor_heating': {}, 'zones': {'00': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '01': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '02': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '03': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '04': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '05': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '06': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '07': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '08': {'heating_type': 'radiator_valve', 'sensor': None, 'devices': []}, '09': {'heating_type': 'electric_heat', 'sensor': None, 'devices': []}}}
2021-06-21 13:13:05 INFO (MainThread) [ramses_rf.message] Message( I|01:073765|2E04), received at 2021-06-21 09:09:51.995851: msg has expired (4:03:13.503070, 4:00:00)
2021-06-21 13:13:05 INFO (MainThread) [custom_components.evohome_cc] Params = {'system': {'tpi_params': None, 'system_mode': None, 'language': 'en'}, 'stored_hotwater': {'config': {'setpoint': 55.0, 'overrun': 0, 'differential': 5.0}, 'mode': None}, 'underfloor_heating': {}, 'zones': {'00': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '01': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '02': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '03': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '04': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': False, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '05': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '06': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': False, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '07': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '08': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}, '09': {'config': {'min_temp': 5.0, 'max_temp': 35.0, 'local_override': True, 'openwindow_function': True, 'multiroom_mode': False}, 'mode': None, 'name': None}}}
2021-06-21 13:13:05 INFO (MainThread) [custom_components.evohome_cc] Status = {'system': {'heat_demand': None, 'datetime': None, 'heat_demands': None, 'relay_demands': {'FA': 0.0, 'F9': 0.0}, 'relay_failsafes': None}, 'stored_hotwater': {'temperature': 46.91, 'heat_demand': None}, 'underfloor_heating': {}, 'zones': {'00': {'setpoint': 12.0, 'temperature': 19.98, 'heat_demand': None}, '01': {'setpoint': 12.0, 'temperature': 19.07, 'heat_demand': None}, '02': {'setpoint': 12.0, 'temperature': 19.18, 'heat_demand': None}, '03': {'setpoint': 12.0, 'temperature': 19.56, 'heat_demand': None}, '04': {'setpoint': 12.0, 'temperature': 20.54, 'heat_demand': None}, '05': {'setpoint': 12.0, 'temperature': 20.29, 'heat_demand': None}, '06': {'setpoint': 12.0, 'temperature': 20.03, 'heat_demand': None}, '07': {'setpoint': 12.0, 'temperature': 19.99, 'heat_demand': None}, '08': {'setpoint': 12.0, 'temperature': 18.92, 'heat_demand': None}, '09': {'setpoint': 9.0, 'temperature': 20.74, 'heat_demand': None, 'relay_demand': 0.0}}}
2021-06-21 13:13:05 INFO (MainThread) [custom_components.evohome_cc] Devices = ['04:029854', '04:029876', '04:029852', '04:029880', '04:029878', '04:059733', '04:029850', '04:029882', '04:029858', '04:059705', '01:073765', '07:025142', '34:225954', '34:112355', '13:104277', '13:135686', '13:057896']
2021-06-21 13:13:05 INFO (MainThread) [ramses_rf.message] Message( I|04:029852|2309), received at 2021-06-21 12:38:53.599688: msg has expired (0:34:12.153004, 0:30:00)
2021-06-21 13:13:05 INFO (MainThread) [ramses_rf.message] Message( I|04:029878|2309), received at 2021-06-21 12:41:02.880847: msg has expired (0:32:02.872371, 0:30:00)
2021-06-21 13:13:05 INFO (MainThread) [ramses_rf.message] Message( I|04:029850|2309), received at 2021-06-21 12:39:35.041135: msg has expired (0:33:30.712499, 0:30:00)
2021-06-21 13:13:05 INFO (MainThread) [ramses_rf.message] Message( I|04:059705|2309), received at 2021-06-21 12:38:54.522128: msg has expired (0:34:11.231993, 0:30:00)

Yes other services are working correctly (and I get an error if I do something that isn’t allowed)

Your thinking is correct.

@sOckhamSter

When you reboot - everything is available, right?

Can you change your config to include the following:

logger:
  default: warn
  logs:
    homeassistant.core: debug
    custom_components.evohome_cc: warn

When a climate entity becomes unavailable, send me the log:

cat homeassistant.log | grep -E '(climate|evohome|ramses)'
1 Like

@iMiMx Please add your post as a issue to Issues · zxdavb/evohome_cc (github.com)

Can’t set the temperature using the frontend UI after a few hours.

OK, I believe I have found two bugs:

  • unable to send any packets
  • can’t _make_fake

Fix coming after dinner.

Updated a few hours ago, never got a status of a zone, in the last version this worked for an hour.
And cannot send a temperature to a fake sensor.
For the rest it is working as far i can see, But healing is off at the moment.

Just pushed 0.10.2, should fix:

  • protocol layer set to ready only (writes disabled when shouldn;t be)
  • issues with sensor._make_fake() when sensor not in allow_list

it woudl be helpful for people to let me know if they’re still having issues (you can just let me know the post number for now)

1 Like

Updated, fake sensor update temperature is working again.
Only got this error:


Logger: homeassistant
Source: /srv/homeassistant/lib/python3.8/site-packages/homeassistant/runner.py:97 
First occurred: 21:28:38 (1 occurrences) 
Last logged: 21:28:38

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.8/site-packages/ramses_rf/transport.py", line 431, in _send_data
    data = bytes(data.encode("ascii"))
AttributeError: 'NoneType' object has no attribute 'encode'

@TheMystery … but everything else is OK?

I think I have found this bug, but I am unsure why I don’t see it happen on my test bed.

Yes, I posted earlier I had 2 bugs 1 solved updating temp of fake sensor the second the status of the zones is still not working, but that’s maybe comming because I have turned the heating off.

Thanks David. Everything seems to work fine now, including updating the fake sensors.
Will test the following days.

For those losing state - things becoming unavailable…

Could someone try the above please?

@maesenator BTW, your allow_list is missing an entry:

 - 03:256027

You wouldn’t have seen your 'NoneType' object has no attribute '_make_fake' if the device ID was in the list, but I am pleased you discovered the issue in my code! :slight_smile: