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

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!

Hi, just to let you know, I just updated to HassIo version 0.116.1 and I had to re-install the evohome_rf component again to get evohome_cc started :frowning:

Hm… Tried to do with:

git clone https://github.com/zxdavb/evohome_cc evohome_rf

But I’m getting some errors (?):

Logger: homeassistant.loader
Source: custom_components/evohome_cc/__init__.py:10
(12 occurrences)
Last logged: 23:14:55

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 "<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_rf
ModuleNotFoundError: No module named 'evohome_rf'

You’re getting closer.

  1. I now want evohome_cc in /evohome_cc (to avoid confusion):
git clone https://github.com/zxdavb/evohome_cc evohome_cc

Don’t forget to rename the section in your configuration.yaml:

evohome_cc:
  min_zones: 16
  1. The follwoing is a known bug - it seems you have to take steps manually install the library:

… by doing something like:

pip install evohome-rf

On some systems, via SSH:

sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip install evohome-rf

Since I have ‘hassio’ I manually created directory ‘evovome_cc’ with all files.
And I can not use ‘pip’ - does not work.

$ pip install evohome-rf
bash: pip: command not found