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

Great! I already have a temperature probe so the thermostat can be managed from HA. I’ll buy a nanocul dongle and start playing :+1:

according the wiki i should enter: git clone github.com/zxdavb/evohome_cc evohome_cc
but htis gives me an error: fatal: repository β€˜github.com/zxdavb/evohome_cc’ does not exist

found the problem, https:// was missing

Great! Please edit the wiki & fix the typo?

I have tried latest, cant get working:

config $ cat home-assistant.log | grep evo
2020-09-20 10:28:36 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.evohome_cc. Make sure all dependencies are installed
  File "/config/custom_components/evohome_cc/__init__.py", line 10, in <module>
    import evohome
ModuleNotFoundError: No module named 'evohome'
2020-09-20 10:29:24 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {'sensor', 'esphome', 'upnp', 'system_health', 'ssdp', 'auto_backup', 'sun', 'met', 'fastdotcom', 'input_text', 'unifi', 'influxdb', 'input_select', 'conversation', 'mqtt', 'input_datetime', 'sonos', 'cast', 'wemo', 'group', 'samsungtv', 'speedtestdotnet', 'persistent_notification', 'life360', 'logbook', 'binary_sensor', 'hacs', 'brother', 'sonarr', 'metoffice', 'scene', 'input_boolean', 'plex', 'timer', 'evohome_cc', 'evohome', 'map', 'default_config', 'updater', 'coronavirus', 'configurator', 'mobile_app', 'almond', 'script', 'zone', 'harmony', 'sabnzbd', 'tts', 'notify', 'input_number', 'history', 'ipp', 'automation', 'zeroconf'}
2020-09-20 10:29:25 INFO (MainThread) [homeassistant.setup] Setting up evohome
2020-09-20 10:29:25 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.evohome_cc. Make sure all dependencies are installed
  File "/config/custom_components/evohome_cc/__init__.py", line 10, in <module>
    import evohome
ModuleNotFoundError: No module named 'evohome'
2020-09-20 10:29:25 ERROR (MainThread) [homeassistant.setup] Setup failed for evohome_cc: Integration not found.
2020-09-20 10:29:29 INFO (MainThread) [homeassistant.setup] Setup of domain evohome took 4.3 seconds
2020-09-20 10:29:29 INFO (MainThread) [homeassistant.components.climate] Setting up climate.evohome
2020-09-20 10:29:29 INFO (MainThread) [homeassistant.components.water_heater] Setting up water_heater.evohome
2020-09-20 10:29:29 WARNING (MainThread) [homeassistant.components.evohome.climate] Ignoring: Unknown (Unknown), id=3348619, name=: unknown/invalid zone type, report as an issue if you feel this zone type should be supported
2020-09-20 18:35:51 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.evohome_cc. Make sure all dependencies are installed
  File "/config/custom_components/evohome_cc/__init__.py", line 10, in <module>
    import evohome
ModuleNotFoundError: No module named 'evohome'
2020-09-20 18:35:57 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.evohome_cc. Make sure all dependencies are installed
  File "/config/custom_components/evohome_cc/__init__.py", line 10, in <module>
    import evohome
ModuleNotFoundError: No module named 'evohome'
2020-09-20 18:35:57 ERROR (MainThread) [homeassistant.components.hassio] Component error: evohome_cc - Integration 'evohome_cc' not found.

I have commented-out previous evohome_rf section from my config, is that right?

[detail of error]

2020-09-20 10:29:25 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.evohome_cc. Make sure all dependencies are installed
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 504, in _load_file
    module = importlib.import_module(path)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/config/custom_components/evohome_cc/__init__.py", line 10, in <module>
    import evohome
ModuleNotFoundError: No module named 'evohome'

also found:


Logger: homeassistant.setup
Source: setup.py:118
First occurred: 10:29:25 AM (1 occurrences)
Last logged: 10:29:25 AM

Setup failed for evohome_cc: Integration not found.

Yes, is now called evohome_cc to avoid confusion.

The message is saying that it is not loading the underlying client library.

  • show us your evohome_cc\manifest.json (maybe corrupted?)
  • show us the result of pip list | grep evohome (if you can do that on your platform)

Hi, here’s my /root/config/custom_components/evohome_cc/manifest.jason

evohome_cc $ cat manifest.json
{
  "domain": "evohome_rf",
  "name": "Honeywell evohome (RAMSES II protocol) agent",
  "documentation": "https://github.com/zxdavb/evohome_cc",
  "requirements": [
    "evohome-rf==0.2.0", "pyserial-asyncio==0.4"
  ],
  "dependencies": [],
  "codeowners": ["@zxdavb"]
}

and from within homeassistant container:

bash-5.0# pip list | grep evohome 
evohome-async                    0.3.5.post1
WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.

I notice evohome-rf rather than evohome_rf, is that safe to edit directly?

maybe random but I also seem to have small issues with evohome integration as well:

The manifest file is perfect.

The output of pip list is not.

Try: pip install evohome-rf

OK, I run the stock virtual image in proxmox - a quick snapshot (not mucked about in the container before) later and:

bash-5.0# pip install evohome-rf
Collecting evohome-rf
  Downloading evohome-rf-0.2.0.tar.gz (63 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 63 kB 958 kB/s 
Building wheels for collected packages: evohome-rf
  Building wheel for evohome-rf (setup.py) ... done
  Created wheel for evohome-rf: filename=evohome_rf-0.2.0-py3-none-any.whl size=70626 sha256=4b8c132372da471c2baa99d6e162750a05668b45d5455c1052e0ce78ed1794d6
  Stored in directory: /root/.cache/pip/wheels/bf/2a/d7/633e90c5d9bef1108fcf0170447721f0405e96e9db3435b585
Successfully built evohome-rf
Installing collected packages: evohome-rf
Successfully installed evohome-rf-0.2.0
bash-5.0# pip list | grep evohome
evohome-async                    0.3.5.post1
evohome-rf                       0.2.0

but

2020-09-20 22:56:12 DEBUG (MainThread) [custom_components.evohome_cc] Store = {}, Config =  OrderedDict([('scan_interval', datetime.timedelta(seconds=60)), ('serial_port', '/dev/ttyUSB0'), ('packet_log', 'evopacket.log'), ('schema', OrderedDict([('controller', '01:138490')]))])
2020-09-20 22:56:12 ERROR (MainThread) [homeassistant.setup] Error during setup of component evohome_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 191, in _async_setup_component
    result = await task
  File "/config/custom_components/evohome_cc/__init__.py", line 96, in async_setup
    kwargs["blocklist"] = dict.fromkeys(kwargs.pop("ignore_list"), {})
KeyError: 'ignore_list'

config $ cat home-assistant.log | grep evo
2020-09-20 22:55:44 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for evohome_cc which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-09-20 22:56:10 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {'system_health', 'plex', 'sun', 'evohome', 'input_text', 'influxdb', 'coronavirus', 'met', 'upnp', 'conversation', 'sonos', 'auto_backup', 'scene', 'mobile_app', 'sonarr', 'input_number', 'script', 'speedtestdotnet', 'history', 'life360', 'map', 'brother', 'automation', 'evohome_cc', 'timer', 'sensor', 'zeroconf', 'input_boolean', 'almond', 'samsungtv', 'cast', 'updater', 'fastdotcom', 'unifi', 'ssdp', 'harmony', 'persistent_notification', 'input_datetime', 'notify', 'zone', 'tts', 'wemo', 'hacs', 'default_config', 'metoffice', 'esphome', 'group', 'mqtt', 'binary_sensor', 'logbook', 'ipp', 'input_select'}
2020-09-20 22:56:10 INFO (MainThread) [homeassistant.setup] Setting up evohome
2020-09-20 22:56:11 INFO (MainThread) [homeassistant.setup] Setting up evohome_cc
2020-09-20 22:56:12 DEBUG (MainThread) [custom_components.evohome_cc] Store = {}, Config =  OrderedDict([('scan_interval', datetime.timedelta(seconds=60)), ('serial_port', '/dev/ttyUSB0'), ('packet_log', 'evopacket.log'), ('schema', OrderedDict([('controller', '01:138490')]))])
2020-09-20 22:56:12 ERROR (MainThread) [homeassistant.setup] Error during setup of component evohome_cc
  File "/config/custom_components/evohome_cc/__init__.py", line 96, in async_setup
2020-09-20 22:56:15 INFO (MainThread) [homeassistant.setup] Setup of domain evohome took 5.3 seconds
2020-09-20 22:56:15 INFO (MainThread) [homeassistant.components.water_heater] Setting up water_heater.evohome
2020-09-20 22:56:15 INFO (MainThread) [homeassistant.components.climate] Setting up climate.evohome
2020-09-20 22:56:15 WARNING (MainThread) [homeassistant.components.evohome.climate] Ignoring: Unknown (Unknown), id=3348619, name=: unknown/invalid zone type, report as an issue if you feel this zone type should be supported
config $

I dont think ignore_list is optional, I didn’t have it in my config,
I’ve added it tonow, along with a made-up device and I think I’ve no more errors plus:

config $ tail -f  home-assistant.log | grep evoh
2020-09-20 23:09:35 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for evohome_cc which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-09-20 23:09:45 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {'zeroconf', 'notify', 'life360', 'binary_sensor', 'fastdotcom', 'input_select', 'influxdb', 'coronavirus', 'mqtt', 'plex', 'harmony', 'scene', 'hacs', 'sun', 'upnp', 'auto_backup', 'ipp', 'almond', 'group', 'sonos', 'samsungtv', 'persistent_notification', 'input_datetime', 'default_config', 'logbook', 'brother', 'sonarr', 'cast', 'map', 'updater', 'mobile_app', 'script', 'input_boolean', 'conversation', 'input_text', 'evohome', 'met', 'zone', 'automation', 'ssdp', 'metoffice', 'tts', 'evohome_cc', 'timer', 'wemo', 'unifi', 'system_health', 'speedtestdotnet', 'input_number', 'esphome', 'sensor', 'history'}
2020-09-20 23:09:46 INFO (MainThread) [homeassistant.setup] Setting up evohome
2020-09-20 23:09:46 INFO (MainThread) [homeassistant.setup] Setting up evohome_cc
2020-09-20 23:09:46 DEBUG (MainThread) [custom_components.evohome_cc] Store = {}, Config =  OrderedDict([('scan_interval', datetime.timedelta(seconds=60)), ('serial_port', '/dev/ttyUSB0'), ('packet_log', 'evopacket.log'), ('schema', OrderedDict([('controller', '01:138490')])), ('ignore_list', ['01:111111'])])
2020-09-20 23:09:46 DEBUG (MainThread) [evohome] Creating signal handlers...
2020-09-20 23:09:46 INFO (MainThread) [homeassistant.setup] Setup of domain evohome_cc took 0.4 seconds
2020-09-20 23:09:50 INFO (MainThread) [homeassistant.setup] Setup of domain evohome took 4.8 seconds
2020-09-20 23:09:51 INFO (MainThread) [homeassistant.components.water_heater] Setting up water_heater.evohome
2020-09-20 23:09:51 INFO (MainThread) [homeassistant.components.climate] Setting up climate.evohome
2020-09-20 23:09:51 WARNING (MainThread) [homeassistant.components.evohome.climate] Ignoring: Unknown (Unknown), id=3348619, name=: unknown/invalid zone type, report as an issue if you feel this zone type should be supported

2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc] Schema = {'controller': '01:138490', 'system': {'heating_control': None, 'orphans': []}, 'stored_hotwater': None, 'ufh_controllers': {}, 'zones': {'00': {'heating_type': None, 'sensor': None, 'devices': []}, '01': {'heating_type': None, 'sensor': None, 'devices': []}, '02': {'heating_type': None, 'sensor': None, 'devices': []}, '03': {'heating_type': None, 'sensor': None, 'devices': []}, '04': {'heating_type': None, 'sensor': None, 'devices': []}, '05': {'heating_type': None, 'sensor': None, 'devices': []}, '06': {'heating_type': None, 'sensor': None, 'devices': []}, '07': {'heating_type': None, 'sensor': None, 'devices': []}, '08': {'heating_type': None, 'sensor': None, 'devices': []}}, 'device_info': {}}
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc] Params = {'system': {'mode': None, 'language': None, 'heating_control': {}}, 'stored_hotwater': None, 'zones': {'00': {'name': None, 'mode': None, 'zone_config': None}, '01': {'name': None, 'mode': None, 'zone_config': None}, '02': {'name': None, 'mode': None, 'zone_config': None}, '03': {'name': None, 'mode': None, 'zone_config': None}, '04': {'name': None, 'mode': None, 'zone_config': None}, '05': {'name': None, 'mode': None, 'zone_config': None}, '06': {'name': None, 'mode': None, 'zone_config': None}, '07': {'name': None, 'mode': None, 'zone_config': None}, '08': {'name': None, 'mode': None, 'zone_config': None}}}
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc] Status = {'system': {'datetime': None}, 'stored_hotwater': None, 'zones': {'00': {'setpoint': None, 'temperature': 21.22}, '01': {'setpoint': None, 'temperature': 18.55}, '02': {'setpoint': None, 'temperature': 20.54}, '03': {'setpoint': None, 'temperature': 21.83}, '04': {'setpoint': None, 'temperature': 19.64}, '05': {'setpoint': None, 'temperature': 14.76}, '06': {'setpoint': None, 'temperature': 19.14}, '07': {'setpoint': None, 'temperature': 21.58}, '08': {'setpoint': None, 'temperature': 20.08}}, 'devices': {}}
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.components.climate] Setting up climate.evohome_cc
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=00, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=01, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=02, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=03, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=04, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=05, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=06, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=07, name=None
2020-09-20 23:10:46 WARNING (MainThread) [custom_components.evohome_cc.climate] Found a Zone (None), id=08, name=None
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_00
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_01
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_02
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_03
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_04
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_05
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_06
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_07
2020-09-20 23:10:46 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.evohome_cc entity: climate.evohome_cc_01_138490_08

and

Hmmm… try a restart - send me the packet log,

I will check this…

Also, do you have a HGI80, or a nanoCUL. If a nanoCUL - are you on the latest firmware?

You were right (nice one) - it has just been fixed - please pull the latest commit.

1 Like

Updated instructions here: https://github.com/zxdavb/evohome_cc/wiki

1 Like

battery sensors (a %) have been removed - battery_low binary_sensors (true/false) have replaced them - battery levels (%) remain available as device state attributes of the binary sensors for those devices that report a level (not all do).

great work zxdavb. just have it installed with nanocul and it is collecting data from my evohome HR92 thermostatic valves.
One thing that i’m having trouble with are the setpoint temperatures. All climate entities show temperature: null although the current_temperature property is populated properly.

If anyone wants help, then they need to provide log files. Don’t post them here - pm me. You will need to include a packets.log file (it doesn’t matter how large it is) and a home-assistant.log file (try to keep it small).

Although, if I can reproduce the error in my system (as I can in this case), then I can just crack on & address it.

Dear zxdavb, thank you very much for your great work and all your efforts. This is my first post. However, I am following this topic in the last weeks and I am excited that we can finally migrate from domoticz to hass for a local control of the evohome system.

I am running hass.io in rpi4 as docker.
I installed the latest version of evohome_cc and the bleeding_edge version of evohome_rf.
I am using a nanoCUL with the latest (0.4,1) uart version of the evofw3 firmware.
I can send commands using the evohome-Listener (using 18:056026 as gateway address).

Evohome_cc successfully recognises the controller and the hr92 trvs. However, it is not possible to send any commands. In the hass interface I get following error (failed to call service climate/set_temperature and failed to call service climate/set_hvac_mode). I have sent you the packet.log and home-assistant.log files per pm.

Do you have any suggestion in order to solve this problem?

Thank you for your support

Tip: You should be updating the code quite often at the moment - do this by fetching the latest commits from the repo.

Known problem - give me a few days. This functionality is done, just needs to be exposed via HA.

Appears fixed now - I will update the repo.

Thank you for your response!