Official Honeywell evohome/Round Thermostat integration (EU-only)

I resolved it as follows. Not quite sure what exactly was the problem. I believe the directory structures get corrupted somehow.

  1. Go to the config directory and look for the hidden directory “.storage”. Delete any “Evohome_custom” entries. On a Mac you make these files visible by pressing “cmd shift .”
  2. Delete the directory for “Evohome_custom” in the “custom_components” directory and all the files in it, especially the pycache directory.
  3. Go to the GitHub location for the official Evohome component. Copy all the files (is a bit cumbersome) and put them into a new custom_components directory called “evohome_custom”.
  4. In the “const.py” file change: DOMAIN = “evohome_custom”.
  5. In the “manifest.json” file change: “domain”: “evohome_custom”.
  6. In the same file ensure there is a version key entry: “version”: “1.0.0” #any version will do
  7. In the “init.py” file ensure you only have the following entries:
from homeassistant.const import (
    ATTR_ENTITY_ID,
    CONF_PASSWORD,
    CONF_SCAN_INTERVAL,
    CONF_USERNAME,
    TEMP_CELSIUS,
)
  1. Then in your config file refer to the proper component name.
evohome_custom:
  username: !secret evohome_username
  password: !secret evohome_password
  scan_interval: 300
  location_idx: 1 #or any other location you have defined
  1. Then check whether it is all correct, with “Configuration, settings, check configuration”.
  2. Repair any mistakes that are generated.
  3. If you get the error “evohome_custom” not found and you are sure to have executed above steps diligently, do a cold start of home assistant by briefly interrupting the power to your machine. A restart from the “configuration, settings” will not work. After a cold start the “evohome_custom” directory will be recognised.

It doesn’t work in my case… Only one version works, but as soon as I try the second one it’ s invalid…

Thanks, I finally got it working too:

Before I had the evohome_custom entries I had set up the normal evohome entry.
That one had to be deleted also:

  • in hidden directory “.storage” delete “evohome” entry (besides the “evohome_custom” entries

Don’t forget the cold start, it was necessary in my case!

Hi,

I’ve recently setup this Evohome Home Assistant integration and I’m slightly confused by the history it’s showing me for each of the zones. In the example below what do the “heating” values represent? They appear to be identical to the “current temperature” values but are shown on the graph as a shaded area rather than just a line. I wondered if it represented when the zone was being heated but as you can see from this example that shouldn’t be happening as the current temperature is greater than the target for the whole period.

Thanks!

Ah just found evohome hvac_action() (active / call for heat) is inaccurate · Issue #29559 · home-assistant/core · GitHub and Honeywell CH/DHW via RF - evohome, sundial, hometronics, chronotherm which explains why the heating values aren’t very helpful.

Hello, I have a problem with running of multiple locations. I used older version of evohome over custom_components on RPi with 2021.2.3 core to run 4 locations - this is still running properly. Today I tried to install current version of evohome compoment on new NUC with 2021.12.8 (last core). I did exactly the same as in the past but there is error in configuration.yaml check - Integration error: evohome4 - Integration ‘evohome2’ not found. Will somebody help please?

Hello

I have to renew my old boiler.

I’m still investigating, but I will chose an Opentherm boiler and probably a Honeywell Evohome multi-zone thermostat.

And of course, I’m interested to see the temperatures, mode (comfort etc), time schedule etc of each zone in the most excellent product called “Home Assisant”

Now my question:
Does the Honeywell integration needs an internet connection? = Cloud based.
Or can the intergration connect locally (using Wifi) to the Evohome thermostat and read everything even without an connection to the internet?

The Honeywell integration is a different thing (US/Canada)… I guess you mean the Evohome integration (EMEA), ofically known as “Honeywell Total Connect Comfort (Europe)”.

It definitely requires internet access. The above link will tell you it is a “Cloud Polling” integration.

If you want to be cloud-free, use: Honeywell CH/DHW via RF - evohome, sundial, hometronics, chronotherm

I moved forward. Custom component requires version in manifest.json

{
“domain”: “evohome2”,
“name”: “Honeywell Total Connect Comfort (Europe)”,
“documentation”: “Honeywell Total Connect Comfort (Europe) - Home Assistant”,
“requirements”: [“evohome-async==0.3.15”],
“codeowners”: [“@zxdavb”],
“iot_class”: “cloud_polling”,
“version”: “1.0.0”
}

I have following code in configuration.yaml:

evohome2:
username: !secret evohome2_login
password: !secret evohome_heslo

evohome3:
username: !secret evohome3_login
password: !secret evohome_heslo

evohome4:
username: !secret evohome4_login
password: !secret evohome_heslo

After fixing the problem above, there is an error during configuration,yaml check:

Component error: evohome4 - cannot import name ‘HTTP_SERVICE_UNAVAILABLE’ from ‘homeassistant.const’ (/usr/src/homeassistant/homeassistant/const.py)
Component error: evohome2 - cannot import name ‘HTTP_SERVICE_UNAVAILABLE’ from ‘homeassistant.const’ (/usr/src/homeassistant/homeassistant/const.py)
Component error: evohome3 - cannot import name ‘HTTP_SERVICE_UNAVAILABLE’ from ‘homeassistant.const’ (/usr/src/homeassistant/homeassistant/const.py)

Any idea how to fix it?

For the benefit of others, I think you meant:

evohome2:
  username: !secret evohome2_login
  password: !secret evohome_heslo

evohome3:
  username: !secret evohome3_login
  password: !secret evohome_heslo

evohome4:
  username: !secret evohome4_login
  password: !secret evohome_heslo

Problem: You are using an old (out of date) version of the evohome integration with a new(er) version of home-assistant. IN this specific case, see: Use HTTPStatus instead of… PR #57990

Solution: You have to re-copy the contemporaneous homeassistant/components/evohome/* files to custom_components\evohomeX every time HA is updated - and then re-edit them as described above.

1 Like

Works perfectly now, thank you !

I am trying to make a sensor to monitor the battery status of the radiator valve. It doesn’t work, could anyone give guidance please? This is in my sensor.yaml

- platform: template
    sensors:
      climate.dressing_room_battery_status:
        friendly_name: "Dressing Room Battery Status"
 #       icon_template: mdi:battery
        value_template: >-
          {% if state_attr('climate.dressing_room', 'status').active_faults %}
            {% if state_attr('climate.dressing_room', 'status').active_faults[0].faultType == 'TempZoneActuatorLowBattery' %}
              There is a low battery
            {% endif %}
              There is a Fault!
          {% else %}
             No issue
          {% endif %}

@zxdavb David, firstly excellent integration and thank you for all the time put in maintaining/improving it!

A quick ask; is there any way to generate a sensor to monitor the connection/last update received from the Honeywell side? Essentially I want to build a sensor that notifies me if the connection drops and monitors/reports on the last time I received an update from the API.

The wonderful team that maintain the LightwaveRF integration recently added the ability to monitor this and it’s been a game changer as if the connection does drop I can receive both a notification and have generated automations to essentially force it to reconnect. It would be something I’d also be super interested implementing for this integration, as an additional layer of protection/robustness.

Once again a heartfelt thank you for the work you do here, this is a fantastic integration.

@Neep This is maybe not the answer you’re wanting.

I do not really use the official integration any more…

All my development time is with ramses_cc (and ramses_rf), which is available to add (manually) via HACS.

The ramses_cc integration can (or will eventually) do everything that the API-based integration can do, and a lot more.

It does not need the internet (but does need a USB dongle, about £40 - or cheaper if you make one).

Hi all,

I’m trying to get Home Assistant to work with my EU Honeywell Evohome setup, but i keep running into the following error:

2022-09-15 14:13:44.862 ERROR (MainThread) [homeassistant.components.evohome] Failed to authenticate with the vendor's server. Check your username and password. NB: Some special password characters that work correctly via the website will not work via the web API. Message is: Unable to obtain an Access Token, hint: {"error":"invalid_grant"}
2022-09-15 14:13:44.865 ERROR (MainThread) [homeassistant.setup] Setup failed for evohome: Integration failed to initialize.

My configuration.yaml

# Loads default set of integrations. Do not remove.
default_config:

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 0.0.0.0/0

evohome:
  username: !secret evo_username
  password: !secret evo_password
  location_idx: 0
  scan_interval: 360

The evohome username is an e-mail address and the password does have a special character “#”.
Although i can change the password, the website requires at least one special character in the password.

I am able to logon using the Evohome website with the account, no issues there.
I’ve changed the password of the account, but that didn’t help resolve the issue.

I’m running Home Assistant within a docker container.

What version of Home Assistant Core has the issue?

22.9.4

What type of installation are you running?

Home Assistant Container on docker

I hope someone can point me in the direction of a solution.

Thanks for any assist.

You haven’t said if you tried using the at sign @?

What do you mean?

The username is an email address, so it includes an @ sign.

The password includes no @ sign.

I mean use an @ in the password instead of an #.

I changed the password so it now includes only an “@” as a special character, however that didn’t resolve the issue.

The log entries:

Setup failed for evohome: Integration failed to initialize.

11:50:06 – (ERROR) setup.py

Failed to authenticate with the vendor's server. Check your username and password. NB: Some special password characters that work correctly via the website will not work via the web API. Message is: Unable to obtain an Access Token, hint: {"error":"invalid_grant"}

11:50:05 – (ERROR) evohome

I am sorry, I have run out of ideas…

Some people have created another account & given location permission from one account to another - maybe that will work.