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

Just in time for Summer!

I’m holding my breath for the new architecture release. And also for migration to the standard component. I came to rely on the custom component for so long and really appreciate all the hard work that went into it. So thank you for this component and good luck to all for the next steps. Thank you zxdavb

The final evohome PR has been merged - woot!

I would love people to test when it goes beta - expect a bit of a mess: climate support has been completely re-architectured, but it is definitely going to be worth it!

Will be in 0.96b2

2 Likes

I am gonna test it! Thx for your great work! Do i have made changes to configuration.yaml when the beta is released?

evohome:
  username: !secret evohome_user
  password: !secret evohome_password
  scan_interval: 300     # seconds, you can probably get away with 60

v0.96b2 has been tagged (released).

Please do install the beta test it & report any bugs (the whole thing was re-architectured). The YAML is the same, but the scan interval can now be 60 seconds! The updated docs are here:

Please feedback any issues via https://github.com/home-assistant/home-assistant/issues?

I have update my HA and delete my custom component, but i get the error doesn’t setup evohome.

2019-07-13 21:07:53 ERROR (MainThread) [homeassistant.setup] Error during setup of component evohome
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 153, in _async_setup_component
    hass, processed_config)
  File "/usr/src/homeassistant/homeassistant/components/evohome/__init__.py", line 98, in async_setup
    if not await broker.init_client():
  File "/usr/src/homeassistant/homeassistant/components/evohome/__init__.py", line 135, in init_client
    await self._load_auth_tokens()
  File "/usr/src/homeassistant/homeassistant/components/evohome/__init__.py", line 185, in _load_auth_tokens
    if app_storage.get(CONF_USERNAME) == self.params[CONF_USERNAME]:
AttributeError: 'NoneType' object has no attribute 'get'

@Cinamon I have been able to reproduce this bug - will sort out a fix today.

You couldn’t submit a issue at: github.com/home-assistant please - it will make it easier for the bugfix PR to get into the beta.

@Cinamon

Are you (or anyone else) willing/able to edit one of the python source files?

If so, edit /usr/src/homeassistant/homeassistant/components/evohome/__init__.py so that is has (from about line 190):

    async def _load_auth_tokens(self) -> Tuple[
            Optional[str], Optional[str], Optional[datetime]]:
        store = self.hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY)
        app_storage = self._app_storage = await store.async_load()

        if app_storage is None:
            app_storage = self._app_storage = {}

        if app_storage.get(CONF_USERNAME) == self.params[CONF_USERNAME]:
            refresh_token = app_storage.get(CONF_REFRESH_TOKEN)
...

You’re adding these two lines:

        if app_storage is None:
            app_storage = self._app_storage = {}

I will submit an urgent PR to homeassistant.

Tonight when I am home I will test it for you. I will let you know

where can i find it in hassio?

I don’t know - I don’t use hassio.

The fix has been accepted in 0.96b3, which hasn’t been tagged yet, but is in dev if you can go for that.

@Cinamon The latest beta should work for you.

@zxdavb it works again in the latest beta! I will take a better look tonight.

And it made it to 0.96 :slight_smile: thanks @zxdavb

OMG - so much work!

I will do bug fixes for any issues that come in, and then I’m taking a rest.

Sadly, the custom_component version will not work with HA 0.96+, and I am not planning to make it work - there is no real reason for it - the only exception being higher-precision temperatures, which I plan to add back before next winter.

Sadly, the custom_component version will not work with HA 0.96+

Hi, I’m about to click the ‘update’ button to go from 0.95.4 to 0.96, and am currently using the custom_component.

Is it best to remove the custom_component first before updating?

Or update to 0.96 then remove the custom_component?

First, stop HA and:

  • rename custom_component/evohome to evohome.out
  • if you use custom updater, remove evohome from that section from your configuration.yaml

… then upgrade HA. Let us know if that works out OK.

I think the name of the controller has changed - the _ (underscore) has been removed

And high-precision temps are gone, for now. But DHW is in, and many other improvements.

2 Likes

Thanks, I did as described, and it seems to be working well so far. :slight_smile:

The DHW entity name had indeed changed from dhw to dhw_controller so a simple find/replace should fix my automations.

Since the update to 0.96 I quite regularly get the following after a reboot of Homeasssistant:

Unable to connect with the vendor's server. Check your network and the vendor's status page.Message is: HTTPSConnectionPool(host='tccna.honeywell.com', port=443): Max retries exceeded with url: /WebAPI/emea/api/v1/location/installationInfo?userId=XXXXXX&includeTemperatureControlSystems=True (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f4817b44250>: Failed to establish a new connection: [Errno -3] Try again'))

@fversteegen You should be posting this issue at https://github.com/home-assistant/home-assistant/issues :slightly_smiling_face:

When you followed the hint and: “Check(ed) your network and the vendor’s status page.”, and what did you see?