Refactored Honeywell evohome custom_component (EU-only)


There shoud be an entity for each Zone. Yes, I have an idea.

  1. The builtin evohome component only exposes the Controller (for now, I am just about to submit another PR which will add Zones).

  2. The custom component exposes controller, Zones & DHW (if any).

  3. Custom components ‘override’ built-in components with the same name (evohome, in this case).

So, if you can see only a Controller, and no Zones, then it seems the custom component has failed to load, and so you’re using the builtin component.

Next Steps

Execute this command: cat home-assistant.log | grep custom | head, and you should see the following warning, You are using a custom component for evohome:

2018-11-06 16:30:33 WARNING (MainThread) [homeassistant.loader] You are using a custom component for evohome which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

If you don’t see this, then something is wrong with your custom_components folder.


Got it - thanks! I’d messed up my custom_components folder as I couldn’t do the git pull method on Hassio so copied the files across manually…

In case anyone else does the same thing, you want to put the file straight into your custom_components folder (not in a sub folder), then you also want 2 subfolders in the custom_components folder (water_heater & climate) both of which have a single file. All 3 files are different and required


Quick follow up - switching between modes seems to work fine for most modes (day off, heating off etc) but when I switch to ‘Auto’ nothing happens… any idea why?


I’m totally new to HomeAssistant having come from a Smartthings background. I have installed a hassio based system and this is the first addon where I have used Github so I’m uncertain if I’ve done it correctly. Therefore any advice out there would be much appreciated.

I have created a samba share through my windows machine and created the custom_components folder within Config. I used the clone option within github to move the files, Github opened a desktop interface that allowed me to do this. What actually happened was it created a Evohome folder within custom_components. I saw in one post it was necessary to move these files so I moved the files and associated folders, climate and waterheater to sit within config/custom_components, I therefore now have config/custom_components/water heater with a evohome python file in it, a config/custom_components/climate also with an evohome python file in it and at the route of config/custom_components there is also a evohome python file, aside from these there are a .gitignore, license and readme files at this level. There is a config/custom_components/pycache folder with a evohome.cpython-36 file in and config/.git folder with lots of files within that.

As I do a config check it reports: Invalid config for [evohome]: [scan_interval] is an invalid option for [evohome]. My configuration looks like this:


username: as per login
password: as per login

These config parameters are presented with their default values…

scan_interval: 300
high_precision: true # temperature in tenths instead of halves
location_idx: 0 # if you have more than 1 location, use this

These config parameters are YMMV…

use_heuristics: false # this is for the highly adventurous person, YMMV
use_schedules: false # this is for the slightly adventurous person
away_temp: 15.0 # °C, if you have a non-default Away temp
off_temp: 5.0 # °C, if you have a non-default Heating Off temp

Please bear in mind as i am totally new to HA i’ve likely made an error not associated to the add-on.
Any advice greatly appreciated. Thanks


Take away all evohome parameters, except for username & password.

I suspect that it will then it will start OK.

Once that’s done, check that you’re using the custom component, and not the builtin version, using the ‘Next Steps’ instruction, from post #182 (here: Refactored Honeywell evohome custom_component (EU-only))

Good luck.


Sorry no, and I can’t test it until after tomorrow…

Is anyone else having the same problem?


Thanks, The config now doesn’t report any errors.:grinning: But i’ve restarted and still see nothing. Should its addition be obvious?


Yep, for example: Refactored Honeywell evohome custom_component (EU-only)


These two should give no results:

cat home-assistant.log | grep evohome | grep ERROR
cat home-assistant.log | grep evohome | grep WARN

This one should list the Controller, and all your Zones:

cat home-assistant.log | grep evohome | grep Found


Well it definitely isn’t installed. I’m sorry i don’t understand the “cat” commands, where do I find them?

Best thermostat+valves system

@davidtja I’m sorry, but I don’t have the spare capacity to support beginners.

Maybe someone else listening to this thread can help so I can get this latest PR done?

Or you can try elsewhere in the forum…


OK understood. Ill crack on.


PR submitted to add Zones to HA - woot!


This is amazing! This is the view I always needed but couldn’t get from Honeywell. Thanks for making this happen!!


Yes, the graphs can be quite insightful.

I could see one of my kid’s room always lost heat quickly… Looked in the attic, and boom: no insulation above her celling!

Another thing is i installed a weather compensation system (which modulates the temp of circulating CH water), and reduced my overshoots drastically.


I had never even heard of such a thing, but now that you told me about it, it looks like a pretty great idea. I’m going to look into it.

I am also starting to notice that my son’s room is having a hard time heating up compared to the others. It is also a bedroom under the roof… I should probably go check the insulation too.

Out of curiosity, is there any ability in the API to graph how open the TRVs and boiler controls were throughout the day? That would also be really useful and interesting information. It’s shown now from the latest firmware update in the control unit if you go into the installer section.

Knowledge is power. It’s so much easier to optimize when you can actually see what’s going on.


@scstraus From graphs like these, I feel you can tell the difference between a room that heats up slowly, or cools down quickly - there is a difference! For example:

  • heats up slowly - radiator too small, or needs bleeding
  • cools down quickly - window open, no insulation

You can also take a view with surrounding rooms!

Anyway, I wonder is Seb’s room has a problem heating up, rather than keeping hot?

And could you post the configuration to get the graphs all up like that?


Yes, the graphs are really invaluable. I’d never know most of the issues in my setup without them.

I believe Seb’s valve is sticking on the TRV… We just had a new one installed and it’s reporting an error and not heating up all the way… I will be contacting the installer soon, but I suspect we will have to turn on the option to have it apply more force to the opening of the valve.

Do you know if it’s possible to get data about the percentage that the TRV’s are open from the API? This is available in the main touchscreen unit. It would be quite useful to monitor for issues like that if I could see that all the TRV’s open up all the way except his.

As for the config, here you go:

The only pieces of knowledge you really need to know are that the history_graph component exists, and to know that the name you set defines the label on the graph and the name of the component you will use in groups.yaml. Also, you cannot from what I tell display them in groups with their own title, so it ignored the names of my groups for “First Floor”, “Second Floor”, etc. It just makes a single stack for that group before moving on to the next group… So you can see in mine that I have 3 TRV’s on First Floor, 4 on Second Floor, 3 on Third Floor, and 2 in the Basement.

GR1 isn’t climate, it’s motion detection on my security cameras… But I left it there as I think it wants you to start your labeling from GR1 and I didn’t feel like renumbering everything. You won’t need that for the page of graphs I showed.

    name: Motion Detection Times
      - binary_sensor.motion_back_of_house_motion
      - binary_sensor.motion_front_of_house_motion
      - binary_sensor.motion_left_side_of_house_motion
      - binary_sensor.motion_right_side_of_house_motion
    hours_to_show: 12
    refresh: 60
    name: Entrance Temperatures
      - climate.entrance
    hours_to_show: 23
    refresh: 60
    name: Dining Room Temperatures
      - climate.dining_room
    hours_to_show: 23
    refresh: 60
    name: Living Room Temperatures
      - climate.living_room
    hours_to_show: 23
    refresh: 60
    name: Master Bedroom Temperatures
      - climate.master_bedroom
    hours_to_show: 23
    refresh: 60
    name: Master Bath Temperatures
      - climate.master_bath
    hours_to_show: 23
    refresh: 60
    name: Master Closet Temperatures
      - climate.master_closet
    hours_to_show: 23
    refresh: 60
    name: Office & Library Temperatures
      - climate.office__library
    hours_to_show: 23
    refresh: 60
    name: Sebastians Room Temperatures
      - climate.sebastians_room
    hours_to_show: 23
    refresh: 60
    name: Sophies Room Temperatures
      - climate.sophies_room
    hours_to_show: 23
    refresh: 60
    name: Guest Bedroom Temperatures
      - climate.guest_bedroom
    hours_to_show: 23
    refresh: 60
    name: Garage Temperatures
      - climate.garage
    hours_to_show: 23
    refresh: 60
    name: Basement Temperatures
      - climate.basement
    hours_to_show: 23
    refresh: 60

groups.yaml is nothing surprising:

    name: First Floor Climate
      - history_graph.entrance_temperatures
      - history_graph.living_room_temperatures
      - history_graph.dining_room_temperatures
    name: Second Floor Climate
      - history_graph.master_bedroom_temperatures
      - history_graph.master_bath_temperatures
      - history_graph.master_closet_temperatures
      - history_graph.office__library_temperatures
    name: Third Floor Climate
      - history_graph.sophies_room_temperatures
      - history_graph.sebastians_room_temperatures
      - history_graph.guest_bedroom_temperatures
    name: Third Floor Basement
      - history_graph.basement_temperatures
      - history_graph.garage_temperatures
    view: yes
    name: Climate Detail
      - group.Climate_First_Floor
      - group.Climate_Second_Floor
      - group.Climate_Third_Floor
      - group.Climate_Basement


Yep, something like that.

Sorry, I think you asked before… No, this part of the API is not documented, and there is a suspicion that this information is not sent from the WiFi controller to Honeywell’s web servers in any case.

The only way to obtain this data may be via a HGI80. I plan to include this in HA at some stage (I own one, but it is still in the box).

I tried to ‘emulate’ this functionality in the evohome component, but couldn’t do so reliably (and also detecting OpenWindowMode).

I suspected that was the answer, but I have no free time to explore this sort of this - everything is evohome develeopment, and all the fancy stuff (e.g. turning to Eco if wife & I > 1h away, or Off if > 4h away) has fallen to the wayside.


In Lovelace there is native support for history graphs, so no longer a need to create those entities first and then put them somewhere! As I’m moving to a new house and looking at installing Evohome stuff in there, this is all very encouraging! Thanks @zxdavb!


I’m just now starting on my lovelace remaster and the graphs are one thing that I haven’t figured out yet. If you know how to do something similar to what I showed here in Lovelace, I would be most grateful for the code.