-
-
Notifications
You must be signed in to change notification settings - Fork 13
Hass: Multiple Evohome Locations
Home Assistant's (HA) integration for Honeywell/Resideo Total Connection Comfort (EU), evohome, was written for systems with only a single Temperature Control System (TCS).
This wiki item describes a means to have multiple TCC TCSs (evohome systems) per HA instance. The instructions are intended for evohome systems, but should work with any TCC system available via the Honeywell/Resideo TCC website.
Note: If you use the technique described here to add a second evohome location, do not submit an issue to HA if you have a problem with it.
If you have multiple evohome controllers (either via multiple accounts, or multiple locations, or even multiple TCSs per location), then you can only have one of them available by the integration. Which TCS is defined by the location_idx
parameter:
# Example configuration.yaml entry
evohome:
username: !secret TCC_USERNAME
password: !secret TCC_PASSWORD
location_idx: 3 # location_idx is only required if non-zero
NOTE: The high precision feature (temps measured to 0.01 C rather than 0.5 C) only works with
location_idx
0.
To work around this limitation, you must:
- create a custom control for each additional TCS/controller, and keep the copy up-to-date as you update HA
NOTE: Every time you upgrade HA, you should expect to upgrade the custom_components folder too.
Have HA up and running with a terminal (SSH) installed. Write down what version of HA you're running (you may want to upgrade to the latest version first).
Have the evohome integration setup/working OK, with a set location_idx: 0
and a default scan_interval:
.
TIP: I recommend you create a secondary account on the TCC website, and give it access to your other location. This is to minimise your chances of exceeding the rate limits for authentication at the TCC website via the
Grant Access
button.
The intention here is to remove any evohome integrations in the custom_components
folder that were left over from before.
NOTE: It is important to repeat this process each time you upgrade HA, so that the evohome code is synchronous with your version of HA.
NOTE: Permissions will be an issue. If required, ensure you are running as root.
Go to the terminal, and change to the config directory, then:
cd /config
mkdir -p custom_components
TIP: If you get an error,
no such file or directory
, you have done something wrong.
The above will create the
custom_components
folder if required, and not complain it it already exists.
Ensure that there are no other evohome_*
custom integrations left over from before:
cd /config/custom_components
ls -al | grep evo*
... if you do have any such folders, you should remove them (they contain only code, not data):
rm -rf evohome_*
NOTE: Be careful to delete only the
evohome
folders, and not the folders that contain any other integrations.
... _if _you do have an older core
repo (containing a copy of the official integration) left over from before, remove it too:
rm -rf core
TIP: it won't hurt if you remove it anyway.
Copy the official integration folder (if you have not done so before):
cd /config/custom_components
git clone --filter=blob:none --no-checkout --depth 1 --sparse https://github.com/home-assistant/core
cd core
git sparse-checkout add homeassistant/components/evohome
NOTE: You only need to do this step the one time.
NOTE: In this step, you need to know the exact version of HA that you have.
Confirm the version of HA that you have (in this instance, it is 2024.7.2):
cat /config/.HA_VERSION
Now (and whenever you upgrade HA) you can checkout the specific version you need:
cd /config/custom_components/core
git fetch --tags
git checkout 2024.7.2
NOTE: Make sure you use the tag in
/config/.HA_VERSION
.
... and copy it across to the custom components folder (you can repeat this with evohome_2
, etc.):
cd /config/custom_components
cp -r core/homeassistant/components/evohome evohome_1
NOTE: You will may a problem if
evohome_1
was not removed, before.
Make the necessary changes to get the integration working as a custom component:
cd /config/custom_components/evohome_1
sed -i '/domain/ s/evohome/evohome_1/' manifest.json
sed -i '/{/a \ \ "version": "0.0.1",' manifest.json
sed -i '/DOMAIN/ s/evohome/evohome_1/' const.py
You can check the above via:
cat manifest.json | grep -E 'dom|ver'
"version": "0.0.1",
"domain": "evohome_1",
cat const.py | grep 'DOMAIN'
DOMAIN: Final = "evohome_1"
STORAGE_KEY: Final = DOMAIN
See: update-evohome.sh for an example script (beware: was tested on HA OS 2023.12.1).
Ensure you have set your location_idx
correctly (it defaults to 0
). Below, the two integrations do not share a common username/password (but could), as you're better off creating an account for each location on the TCC website, to avoid some API rate limits for authentication (see below).
Add the following to HA via configuration.yaml:
# this account has multiple locations
evohome:
username: !secret TCC_USERNAME
password: !secret TCC_PASSWORD
location_idx: 0 # value depends upon your configuration
# this secondary account has only one location
evohome_1:
username: !secret TCC_USERNAME_1
password: !secret TCC_PASSWORD_1
The alternative is to use the one account, and leverage the multiple locations of that account (i.e. location_idx: 1
).
- go to: https://international.mytotalconnectcomfort.com/Account/Register
- follow any remaining instructions
- log onto the TCC website: https://international.mytotalconnectcomfort.com/Account/Login
- click Account, then Grant User Access
- enter the secondary email address you created, above, and select your secondary location, and click on Submit
- follow any remaining instructions