[Workaround] Evohome multiple concurrent locations

For now you could have 4 hass instances talking to 4 accounts and then aggregating the info you need over MQTT to another central hass instance to control them all.

huf :slight_smile: 5 instancies = 5 rasperies Pi? It sounds crazy :roll_eyes:
I need not to see all locations at one Lovelace dasboard in one time - not possible to switch? Probably not as location is set in config and switch would require reboot.
Any idea if there is any 3rd party application that can agregate all 4 locations? These all are under 1 honeywell account (one login - different locations). I found on web that Domoticz should support multiple locations but not familiar with. If this would work, can Domoticz work as MQTT broker to feed HA?

You could probably get away with a Pi 1 or 2 for each location if you only wanted it for climate. You would see all the locations in a single dashboard if you aggregated them with MQTT. You could do it with the 4 pi’s for each location or with domoticz if domoticz supports it (I’m also not familiar with it). Otherwise you can wait for the feature to be implemented. The guy doing the evohome integration is doing a really good job and making steady progress, I would guess it would reach feature parity with domoticz in the next 12-24 months, but he still has HGI-80 to do which will likely take him this year…

I got very useful answer from component developer here

It seems there is solution but I need to investigate how to implement it into my HA.

Well you could still go the MQTT route.

solved here

I can safely say:

For the official HA integration, there are no current / future plans to support multiple evohome locations due to the the relative complexity, and the perceived benefit.

The workaround is reasonably straight-forward, but the downside is that custom components you create will not be updated automatically as changes are made to the official integration.

@TomasCZ Could you edit the title of this thread to says multiple concurrent locations, and prepend [Workaround] to the beginning?

Title modified as per zxdavb request. Thank you for your support, David!

All:

You can have multiple locations by creating a custom component out of the official evohome integration.

You do that, broadly, by copying the components/evhome folder to (say) custom_components/evohome_cc (the new folder must have a different name).

But note: every time you upgrade HA, there is the potential for the official integration to have been updated. Whenever that happens, you have to replace your old custom component with the latest version.

hi @zxdavb I’m quite new to this…

I have 1 location running successfully and now I’d like to add my remaining locations.

I’ve set up samba and am trying to find the components/evhome folder anywhere on my home assistant, but I can’t find it.

All I see is a /config/.storage/evohome file…

Any help is appreciated! Thanks!

Same here…
Supervised intall on an Odroid under Debian 11, because I am only dipping my toe into the pool that is called Linux :wink:
So adding a folder custom_components (through Samba) to the folder my configuration.yaml resides in would not be a problem, but if I put the async2 GitHub repo in there, nothing happens. If I create another renamed evohome entry with the same user/pw combination as the evohome: entry in my configuration. yaml I get “invalid config” beacuase the renamed entry is not recognised.

I can ssh into the machine, but I did not makage to find where homeassistant actually gets installed, let alone where I would find the compunents folder under it…

Any help would be greatly appreciated, because I just spent about €200 on a thermostat that has no added value because I already own the same one that I use in my caravan (so necessarily 2 locations, because 2 gateways). Pfff…

  1. You need to install it as a custom component, and you must change the name of the folder.

The official integration would be ...\components\evohome, and you want it to be in (say) custom_components\evohome_cc (or \evohome_00, \evohome_01…).

Or you can copy it direct from the git repo (make sure you use the correct branch).

Accessing the custom_components folder is a HA thing - you should be able to find the answer to that elsewhere in the docs/forum.

  1. Once you’ve done that, you have to edit the manifest.json file:
"domain": "evohome_cc",

and the const.py file:

DOMAIN = "evohome_cc"
  1. You then edit you configuration.yaml file:
evohome:
  username: !secret my_evohome_username
  password: !secret my_evohome_password

evohome_cc:
  username: !secret my_evohome_username
  password: !secret my_evohome_password
  location_idx: 1
  1. Once you get it working, every time you upgrade HA, you are at risk of having to re-copy/edit the files as above, because the HA team may well have modified the integration & it’s dependencies.

WIth little effort, you shoudl be able to make a script for that.

I’ve managed to get a second Evohome to show up in Home Assistant.

Various problems I had:

  • couldn’t find the normal component files (probably because I’m using HASSIO which uses Docker, which is still new to me)

  • so I downloaded files from GitHub. Had problems finding which version, and ended up having to copy/paste in the end

  • HA wouldn’t load the custom component because it requires a ‘version’ in the manifest.json, so I made one up (added “version”: “0.1” at the end of the JSON)

  • Honeywell refused the login, saying ‘too many attempts’. I guess because both components are logging in within milliseconds. So, I edited init.py and added a

    time.sleep(5)

just before

client_v2 = evohomeasync2.EvohomeClient(

and that seems to have worked (need ‘import time’ at the top if the file as well). The 5 second delay may be OTT, but it works

Like Paul above, I was not able to find the official integration inside homeassistant through ssh, so I copied the files from core/homeassistant/components/evohome at dev · home-assistant/core · GitHub by selecting each file and “right-click save as” the raw file. Put them all in a folder “evothuis” (“thuis” is Dutch for “at home”) inside a folder custom_components under the config folder of my Samba share of homeassistant.
Did the two modifications to have manifest.json and const.py point to “evothuis”, and copy/pasted the evohome section of my configuration.yaml file to a new section “evothuis”. Added the location_idx: 1 to that section, and …_idx: 0 to the :evohome section.

After a save, H.A. configuration check failed because it “could not find the integration “evothuis””. So HA will not restart until I comment out the “evothuis:” section in my coonfiguration.yaml file again.
I have the standard evohome integration running for location_idx: 0 correctly. Do I need to also do something with the files from GitHub - zxdavb/evohome-client: Python client to access the Evohome web service (or the async version) too, to install a “new” intergration?
I am confused. Because this is the way I imaginged it would work (copy/paste the existing component under a different name, effectively, and use that new one for my new thermostat/gateway combo), but apparently I am not getting the whole picture yet.

To illustrate the situation, a snippet from configuration.yaml, and the message I get upon checking the configuration before restart (restart is not allowed because of this)

Blockquote

evohome:
username: !secret honeywell_user
password: !secret honeywell_pw
location_idx: 0

evothuis:
username: !secret honeywell_user
password: !secret honeywell_pw
location_idx: 1

Blockquote


Yes; I got it working :slight_smile:
It turned out that I did things right (sort of), but perhaps I should have done it all through ssh.
By placing the folder under my custom_components folder, the new folder was owned by the Samba User that created it. Had I created it using ssh as root (a supervised install plays HA as root user), then probably the permissions would have been set OK straight away.
Now I had to grant execute rights to /usr/share/hassio/homeassistant/custom_components/[new folder]/*, and that single action made it all work.
Apart from Honneywell having some issues with their server at this specific moment (I just got a notification of that while using their own app; measured temperature values are no longer fed back to the app / the integration; setting temperatures still works), I got HA to recognise the integration under the new name, and I now have two separate climate.thermostat entities to play with.

Thank you very, very much @zxdavb, for taking the time to explain the process to me in such detail that a Linux noob like myself could get it right .And of course for creating and maintaining the integration in the first place :+1:

1 Like

I advise to create/use a second TCC account and give it permission to access to the location, via the TCC website (being logged on as your main account when you do so) - ?Grant Access button?.

Sorry to add to an old thread and please excuse my lack of knowledge. I have two evohome controllers and I can see from above it is possible to get it to register with HA. Are there any instructions to follow so I can set this up or has anything changed that can make it easier?
thanks
mark

@Eric-Jan_Oud I have the same problem as you getting this message when I do config.yaml check “Integration error: evoheat - Integration ‘evoheat’ not found”, and it not finds the added integration so I assume I need to grant access also, but can you explain to me how did you do this?

“Now I had to grant execute rights to /usr/share/hassio/homeassistant/custom_components/[new folder]/*, and that single action made it all work.”

I am running HA pre-installed on a “Home Assistant Blue”

or else maybe @zxdavb you can help me out please?

i did already tryed going to SHH terminal (using add-on) > typing /config/custom_components to bring me to custom components folder ant there I typed sudo chmod 777 evoheat/* to grant full access to all users … but this not did change anything for me

For detailed instruction on how to do this, look here: Home Assistant: Multiple Evohome Locations

The above is a first draft: please submit an Issue if that wiki has any problems with it.

Good luck.