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

I am sorry - this one time, this isn’t bad.

2 Likes

Is there perhaps a way for us/me to switch to this behaviour by changing a specific line(s) of code (locally)?

I’m aware this will have to be done everytime I upgrade to a new version and might break in future versions, but at the moment the current behaviour means I can’t use this integration with any (semi-)standard climate UI component.

Thanks again for your amazing work!

Create your own github fork (click fork), edit the code, import your fork. Then, merge changes from the master as/when :slight_smile:

I’ve done this below:

I had a few days of someone nudging the climate UI to change the temperature and setting a permanent override, which was not how we’d been used to using evohome before this integration.

Ah, thanks :+1: I was looking for the specific required code change and I think I found it here: Update climate.py · iMiMx/evohome_cc@218e5f5 · GitHub

i changed this line 248 in custom_components/evohome_cc/climate.py because the default permanent override is not the wanted situation, i mainly set the temp of a zone with google home and than i want it to the end of the default program, and with google home i cannot choose permanent or tempoary, can this made configurable maybe?

self.svc_set_zone_mode(setpoint=kwargs.get(ATTR_TEMPERATURE))
to
self.svc_set_zone_mode(setpoint=kwargs.get(ATTR_TEMPERATURE), mode=ZoneMode.ADVANCED)

also tried the scripts found here (but these are only for the gui):

with this script i get the error:
cannot call script/evohome_simple_thermostat extra keys are not allowed @ data[“setpoint”]

Faked Zone Sensors

I am shortly about to release a new feature - faked zone sensors.

Be aware, zones can only have 1 (or 0) active sensors.

The faked sensor behaves like a round thermostat, and the current (measured) temperature can be set via a HA service call. Note that there is no value in emulating other TR87RF functionality, such as changing the zone setpoint (target temperature), so do not expect this to happen.

The emulated (faked) zone sensor works with an evofw3-compatible interface, but not yet with a HGI80 - there are deep design features of evohome_rf that make this difficult (in essence, because a HGI80 is a HGI80 & not a TR87RF and evohome_rf is very strict about these things)…

… nonetheless, I am committed to making a HGI80 function as a faked zone sensor at some future point.

Another advantage with an evofw3-compatible interface is that you can have sensors for multiple zones, and not just the one zone, as would be the case with a HGI80

In future, relays will also be fakeable (able to be emulated)… even more reason to buy one of these USB dongles

So if anyone is interested in testing, you need a evofw3-compatible dongle, and a HA thermostat, such as, for example:

The idea is that you use an automation to pass data from the thermostat to the faked sensor.

To set up the faked sensor:

  • get the controller listening for a sensor to bind for the zone of your choice
  • call the evohome_cc.create_sensor service call

To update the zone (measured) temperature

Use something like the following service service call:

service: evohome_cc.set_zone_temp
data:
  entity_id: climate.main_room
  temperature: 21.3

Do let me know how you get on with it.

1 Like

Does this mean profiles are not ready to test with Hometronic yet?

That is the plan.

1 Like

Not yet - you (hometronics) should set max zones to 16, and enable eavesdropping.

Great work @zxdavb

@zxdavb I am interested in the fake zone sensors!

Well, it’s up now - you should be able to try it.

I updated yesterday morning to the version from 5 days ago, after that thet status of the climate entities are getting after a few hours te status unknown.
Yesterdag evening i updated to the version that came out yesterday, but stil the same problem, after reboot i have a good status but after a few hours i get the unknown status.

What could be the problem, the temperature entities are still getting updates.
I see no errors in the log.

Updated to 0.8.6 last night and its stopped working.
Tried a reboot this morning, check device link to what’s in my configuration.yaml and all looks good there.

Logger: homeassistant.setup
Source: custom_components/evohome_cc/__init__.py:220
First occurred: 9:20:16 AM (1 occurrences)
Last logged: 9:20:16 AM

Error during setup of component evohome_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 242, in _async_setup_component
    result = await task
  File "/config/custom_components/evohome_cc/__init__.py", line 106, in async_setup
    await broker.async_update()
  File "/config/custom_components/evohome_cc/__init__.py", line 220, in async_update
    _LOGGER.info("Schema = %s", evohome.schema)
  File "/usr/local/lib/python3.8/site-packages/evohome_rf/systems.py", line 572, in schema
    return {**super().schema, ATTR_ZONES: {z.idx: z.schema for z in self._zones}}
  File "/usr/local/lib/python3.8/site-packages/evohome_rf/systems.py", line 572, in <dictcomp>
    return {**super().schema, ATTR_ZONES: {z.idx: z.schema for z in self._zones}}
  File "/usr/local/lib/python3.8/site-packages/evohome_rf/zones.py", line 809, in schema
    elif not self._sensor._30C9_faked:
AttributeError: 'Controller' object has no attribute '_30C9_faked'

@zxdavb Hi David. With the latest building seeing this error appearing on HA start-up.

Logger: homeassistant
Source: helpers/entity.py:455 
First occurred: 12:31:21 (1 occurrences) 
Last logged: 12:31:21

Error doing job: Exception in callback async_track_point_in_utc_time.<locals>.run_action() at /usr/src/homeassistant/homeassistant/helpers/event.py:1172
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/asyncio/events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1191, in run_action
    hass.async_run_hass_job(job, utc_point_in_time)
  File "/usr/src/homeassistant/homeassistant/core.py", line 428, in async_run_hass_job
    hassjob.target(*args)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 455, in async_schedule_update_ha_state
    self.hass.async_create_task(self.async_update_ha_state(force_refresh))
AttributeError: 'NoneType' object has no attribute 'async_create_task'

Have exactly the same error occuring…

Just commented out the relevant elif statement in zones.py and now works again. I guess the Controller device does not (yet) have the fake device code…

do you have the problem that the status goes away?
normaly i see this:
2021-04-09_16h09_39

but after an hour i get this:
2021-05-04_16h17_21

Yeah, hvac_action disappears after about an hour. HA restart doesn’t help

Oké thx for the conformation, than i don’t have to look further in my config.