2018-09-04 14:28:53 ERROR (SyncWorker_17) [homeassistant.loader] Error loading custom_components.evohome. Make sure all dependencies are installed
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/homeassistant/loader.py”, line 94, in get_component
module = importlib.import_module(path)
File “/usr/local/lib/python3.6/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 994, in _gcd_import
File “”, line 971, in _find_and_load
File “”, line 955, in _find_and_load_unlocked
File “”, line 665, in _load_unlocked
File “”, line 678, in exec_module
File “”, line 219, in _call_with_frames_removed
File “/config/custom_components/evohome.py”, line 24, in
from homeassistant.custom_components.evohome import (
ModuleNotFoundError: No module named ‘homeassistant.custom_components’
2018-09-04 14:28:53 ERROR (SyncWorker_17) [homeassistant.loader] Unable to find component evohome
I’m working through pretty much the same in that I’m running HA in a Docker Container. So I added a custom_components (and climate) directory to config, copied the honeywell.py from climate (in the container) to ./config/custom_components/climate/ along with the two evohome.py files. Also edited the import path to include custom_ with the result:
" Error loading custom_components.evohome. Make sure all dependencies are installed"
The tracebook has a last line:
ImportError: cannot import name ‘HTTP_TOO_MANY_REQUESTS’
which I can see in the import list in the code. I have also seen there being a mention of additional functionality to allow for backing off if too many requests. So perhaps something else needs to be updated? const.py does have HTTP entries but not the one mentioned above…
I may need to create another VM to try HA & Evohome without Docker (although I do quite like the containerisation). Keen to get this new Evohome component working and do some testing as the existing Honeywell component is a bit limited.
Yep, i’m getting the http_too_many_requests error also now.
Question: when submitting a component for inclusion in HA, does that entail it being configured for Hassio? I.e. should I just wait until that happens?
I can’t see why not - if not, I’ll do the necessaries.
I am very close to submitting a PR, so all testing is great and any bug reports will be gratefully received!
I run my two in a ubuntu VM, and an LXC container - I do not have time to test more, sorry!
Actually, I think the PR is going to take a while, There are reasons for this, including a need fro architectural changes to HA that will be prompted by my component.
Have you mixed up the two evohome.py files? The larger one should be in <config>/custom_components, and the smaller in <config>\custom_components\climate.
Inside the smaller one will be a line of code like:
Just pulled the evohome.py files again and modified as suggested (i.e. “from custom_components.evohome import”). All started up correctly. Too late now to look further but looking good so far.
Whilst my setup is an Ubuntu VM on VMware ESXi using Docker, this is similar to Hass.io in that HA is run in a Docker Container. So to run in Hass.io, hopefully:
in the config directory (i.e. where your configuration.yaml lives) create a directory called custom_components
pull the (bigger) evohome.py file into the custom_components directory
create a directory inside custom_components called climate
pull the (smaller) evohome.py file into the climate directory
edit the (smaller) evohome.py file to import from “custom_components.evohome”
copy* the original honeywell.py to the climate directory and edit to read "REQUIREMENTS = [‘evohomeclient==0.2.7’, "
I did this by opening a bash shell inside the container and scp’ing the file out - I’m sure there are easier ways! @zxdavb - thanks for your work on this. Will spend some time playing and feedback any issues (or positives).
Hi all, just a question not directly related to the custom component but with the evohome system in general.
Do I need to leave internet access to the gateway all the time or can I close it to avoid data transfer with the cloud?
I know it may seems paranoid but I would like to be sure that my climate system will works also without internet.
I’ve heard weird stories on cloud based solutions.
I’ve heard a lot of weird stuff over the years - the classic is the webcam/baby cam story, where people don’t realise the whole world can see inside their bedrooms.
Turns out those people never changed their passwords.
Anyway, there are usually better places to have those discussions, but specifically for evohome…
I believe the system will work fine without Internet access, but it will not get the outside air temperature (most evohome systems do not have a hard-wired weather sensor). The system probably uses this for it’s smart start/smart stop feature, but may also adjust its TPI.
In addition, you will not be able to manage the system from your mobile phone (e.g. switch from Away to Auto mode when driving back from a 3-day holiday).
And this custom component will definitely not work if your evohome system cannot access the Internet.
@zxdavb Sorry one thing have noticed since this started reporting and it seems common with what @bc1871 reported. One of the sensors status is not being picked up and is reported as undefined. I checked the logs and the impacted thermostat does not appear to be picked up by the api. All other room sensors are reported in the logs except for the one which remains undefined. The common element with my implementation and that of @bc1871 is that all 12 of the zones are used, is there a limitation in the routine calling the api? i.e. there should be effectively 13 zones, 12 rooms plus the hot water?
I’ve loaded the latest version and enabled logging, done a restart and captured the logslog.yaml (572.5 KB)
I had to rename the file as .yaml to enable it to be loaded here (hope that doesn’t cause a problem).