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

That’s wonderful and thanks so much for taking the time and patience to explain.
With regard to attaching the dongle to the machine (in my case a NUC running Proxmox) it is quite a way from my boiler but presumably given its 868mhz RF it should be ok?

I’m also running in proxmox on a NUC!
I tried to keep my USB dongle as close to my touch screen controler as I know that it can see all the other components from there, i has to be able to see (well, hear!) them all to be effective, not just your boiler.

In proxmox you’ll need to add hardware and select the USB device to expose to the guest machine:

Really appreciate the advice - I’ll purchase the dongle now I know.
Thanks

Hi, I am trying to get this to run on HassIo on a RaspberryPi4 installed via the raspberryPi Hassio image, which is using Docker.
I copied the evohome_cc folder from Github to the custom_components folder and added the following into configuration.yaml:
evohome_cc:
scan_interval: 60
serial_port: /dev/ttyUSB1
packet_log: /config/packet.log
schema:
controller: 01:999999
I also ran: pip3 install evohome_rf==0.3.0 from the Execute Shell Command the file editor:
Command executed: pip3 install evohome_rf==0.3.0: 0
Collecting evohome_rf==0.3.0
Downloading https://files.pythonhosted.org/packages/54/44/d8b16d6ed258a36f24acdd4f24c97393ac652c9d4a4adf5603e3f7e2a8aa/evohome-rf-0.3.0.tar.gz (64kB)
Installing collected packages: evohome-rf
Running setup.py install for evohome-rf: started
Running setup.py install for evohome-rf: finished with status ‘done’
Successfully installed evohome-rf-0.3.0
Unfortunately I can’t restart Hassio now as I getting a configuration error: Component error: evohome_cc - Integration ‘evohome_cc’ not found.
When rebooting the complete raspberryPi I get the following in the log file:
2020-10-07 14:27:11 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 516, 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 “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 671, in _load_unlocked
File “”, line 783, in exec_module
File “”, line 219, in _call_with_frames_removed
File “/config/custom_components/evohome_cc/init.py”, line 10, in
import evohome_rf
ModuleNotFoundError: No module named ‘evohome_rf’
So I downloaded the evohome-rf-0.3.0.tar.gz from the location mentioned above and extracted the files and copied these into a evohome_rf folder in custom_components. But with exactly the same results as above.
Can you please let me know where the evohome_rf directory should be copied to?

Are you running "pip install evohome inside the homeassistant coontainer?

  • I do this through the portainer add-on which makes it very easy to get to each container’s shell.

I dont know where the “execute shell command” would run it.

It should not be installed in custom-components.

This doesn’t answer your question, but you shoudl be using the same versionof teh library as specified in manifest.json, currently 0.3.4:

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

I don’t know why this requirements are not working (I use a Dev environment), perhaps someone else can help there.

Hi, do you mind to explain how I can run the command in portainer?
I installed the add-on and can get to the console of the container via quick action so I get to: bash-5.0# but pip or pip3 is not available.
So I suppose I need to go somewhere else but I can’t find it :frowning:
Thanks

this was the tip i needed!
for other people: i installed the portainer addon (only visible after you set advanced mode in your profile), made the homeassistant container visible and opened a console. in the console typed: pip install evohome_rf.
i changed the location of the packet.log file to my /config directory and had to restart home assistant twice.

1 Like

I am wondering if HA has stopped installing requirements automatically for custom_components?

Hi, this did indeed the trick and I can see my evohome devices in HassIo :slight_smile:
Thanks for your help!

1 Like

Hi - after many weeks of absence I returned to this project…
I.e. I installed new versions of components and I see following in logs…
What could be the problem? In any…?

ASSERT failure, raw_packet = >>> 045 I --- 04:041701 --:------ 01:023389 2309 003 0F0514 <<<
13:17:36 – /usr/local/lib/python3.8/site-packages/evohome/message.py (ERROR) - message first occurred at 6:51:37 and shows up 141 times
ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 2309 033 0006400106400206400305140405DC0605DC0705140806400906400A03E80F0640 <<<
13:17:33 – /usr/local/lib/python3.8/site-packages/evohome/message.py (ERROR) - message first occurred at 6:51:33 and shows up 98 times
Cannot connect to InfluxDB due to 'HTTPConnectionPool(host='a0d7b954-influxdb', port=8086): Max retries exceeded with url: /write?db=homeassistant (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe293d7ba90>: Failed to establish a new connection: [Errno 111] Connection refused'))'. Please check that the provided connection details (host, port, etc.) are correct and that your InfluxDB server is running and accessible. Retrying in 60 seconds.
13:17:20 – InfluxDB (ERROR) - message first occurred at 6:49:47 and shows up 388 times
ASSERT failure, raw_packet = >>> 045 I --- 04:041701 --:------ 01:023389 3150 002 0F00 <<<
13:16:46 – /usr/local/lib/python3.8/site-packages/evohome/message.py (ERROR) - message first occurred at 6:50:23 and shows up 130 times

Darius, it’s because you’re using hometonics instead of evohome - you can have 16 zones instead of 12!

I’ve got a lot of sympathy for you though, so I’ll generate a solution for you…

I have my hgi80 connected to my rpi3 running domoticz at the moment.
Im using Home assistant OS. As it’s not running in a container, am I able to use the hgi80 with evohome_rf?
I want the ability to see demand and have the ability to set automations using evohome’s modes.
I can then turn off my domoticz setup.

@zxdavb Thank you… The job you are doing with this project is amazing !!!

Don’t worry - the code is already in there, from when you sent me packet logs back in the day… All I have to is expose it.

… one of the advantages of sharing logs!

A while ago, HassOS on Rasp Pi did not support HGI80, see: this post and for example.

Unless/until someone has made the relevant change to HassOS (the dev has told me he is willing to accept such a PR), then things have may not changed. For example, I do not understand this PR.

Note: Forms of Linux other than HassOS will support a HGI80, Rasp Pi or not. Also, HassOS will support a HGI80 if it is running as a VM and the supervisor/host can load the firmware.

Also, nanoCUL running evofw3 is supported on a Rasp Pi running HassOS - they cost about £25, and have some advantages over a HGI80 (e.g. impersonating a controller).

You really want to be running HassOS if you can, instead of the other versions of HA.

Hi, as mentioned earlier I can see the evohome controller and zones now in HassIo. It is also showing tempatures and status. But the names of the zones are something like evohome_cc 01 0999999. Do I have to override this manually with the names of the zones or is this supposed to be populated? Not a problem to override it but just wanted to check.
Another issue if I click on the temperature scale to set the temperature for a zone I get the error message: Can’t call service: climate/set_temperature
Same when I click on the controller I get the message: Can’t call service: climate/set_hvac
Just wanted to check if this is indeed still under development or I missed something?

Re: missing zone names: If a zone name is missing, it should be called (e.g.) 01:123456_03 for the 4th zone for the controller (counting of zones starts at 0) - I can’t recall if it will stick a evohome_cc. in front of that.

Are you confusing sensors with zones? Some are sensors, the others are zones for example:

  • sensors: 34:123456 temperature or 04:123456 heat_demand

With the latest version, missing packets (and so, missing zone names) should be a rarity…

Log files please.

Re: Failed to call service climate/set_temperature. - yes, under development - you can expect this functionality very soon - it wont be difficult to add now, all the main work is done.

Still the same errors:

Logger: evohome.logger
Source: /usr/local/lib/python3.8/site-packages/evohome/message.py:1022
First occurred: 6:51:33 (205 occurrences)
Last logged: 20:18:44

ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 2309 033 0006400106400205140306A40406400605780706400805140904B00A03E80F0514 <<<
ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 000A 018 0900064008FC0A00064008FC0F00064008FC <<<
ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 2309 033 0006400106400205140306A40406400605780704B008051409044C0A03E80F0514 <<<
ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 2309 033 0006400106400205140306A404064006060E0704B00805140906400A03E80F0514 <<<
ASSERT failure, raw_packet = >>> 045 I --- 01:023389 --:------ 01:023389 2309 033 0006400106400205140306400406400605140704B00805140906400A03E80F0514 <<<
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 1019, in payload
    self._payload = payload_parser(self.raw_payload) if payload_parser else None
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 655, in setpoint
    return _zone_setpoint(payload)  # a zone (RQ/RP), or [zones] (I)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 294, in wrapper
    self._get_zone(zone_idx=list(zone)[0]).update(zone, self)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 164, in _get_zone
    assert 0 <= int(zone_idx, 16) <= 11
AssertionError
Logger: evohome.logger
Source: /usr/local/lib/python3.8/site-packages/evohome/message.py:1022
First occurred: 6:50:23 (270 occurrences)
Last logged: 20:17:06

ASSERT failure, raw_packet = >>> 045 I --- 04:041701 --:------ 01:023389 3150 002 0F00 <<<
ASSERT failure, raw_packet = >>> 048 I --- 04:041701 --:------ 01:023389 3150 002 0F00 <<<
ASSERT failure, raw_packet = >>> 049 I --- 04:041701 --:------ 01:023389 3150 002 0F00 <<<
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 1019, in payload
    self._payload = payload_parser(self.raw_payload) if payload_parser else None
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 493, in heat_demand
    return _device_heat_demand(payload)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 237, in wrapper
    result = func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 478, in _device_heat_demand
    assert 0 <= int(payload[:2], 16) <= 11  # TODO: also for Zone valves?
AssertionError
Logger: evohome.logger
Source: /usr/local/lib/python3.8/site-packages/evohome/message.py:1022
First occurred: 6:51:37 (289 occurrences)
Last logged: 20:17:06

ASSERT failure, raw_packet = >>> 045 I --- 04:041701 --:------ 01:023389 2309 003 0F0514 <<<
ASSERT failure, raw_packet = >>> 045 I --- 04:041701 --:------ 01:023389 2309 003 0F0640 <<<
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 1019, in payload
    self._payload = payload_parser(self.raw_payload) if payload_parser else None
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 654, in setpoint
    return _device_setpoint(payload)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 237, in wrapper
    result = func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/evohome/message.py", line 634, in _device_setpoint
    assert 0 <= int(payload[:2], 16) <= 11  # setpoint of a device
AssertionError

And other:

Logger: evohome.logger
Source: /usr/local/lib/python3.8/site-packages/evohome/__init__.py:263
First occurred: 20:16:34 (1 occurrences)
Last logged: 20:16:34

Packet structure is not valid, >> 049 I --- 04:077944 -049 I --- 04:077944 --:------ 04:077944 30C9 003 0007FC <<

@dariusz This is an old library - update your evohome_rf.

Check the contents of manifest.json, should be >= 0.3.5:, see post 379

This is correct, it is invalid!