[RELEASE] Honeywell Evohome 2020 Integration with new Smartthings app

Hello Everyone,

As you know the old Codersaur Evohome Integration has long been rendered unusable due to changes in both Honeywell and Smartthings. I had been waiting for a proper integration as it seems for ever. Despite not being a developer, i decided to give a try into making it work with the new Smartthings app. With a lot of help from @nayelyz i have managed to modify both the Smartapp and the Device Handler required in order to make it work with the new Smartthings app.

@zcapr17 (Codersaur) should take the most credit here as it is his creation, but as getting in contact with him was impossible, i took the liberty of trying to fix it myself.

GOOD NEWS! I HAVE FINALLY MANAGED TO FIND CODERSAUR ON REDDIT AND HE PROVIDED THE BETA INTEGRATION WHICH INCLUDES HOT WATER! I HAVE MANAGED TO GET THE DEVICE HANDLER UP TO DATE TO WORK WITH THE NEW SMARTTHINGS APP BUT THE HOT WATER DTH IS INDEED A BETA RELEASE. PLEASE READ THE HOT WATER ISSUES SECTION TO LEARN MORE. ALSO I AM WORKING WITH @nayelyz TO FIX SOME ISSUES, BUT IF ANY OF YOU IS A DEVELOPER (AS I AM NOT) IF INTERESTED, I AM MORE THAN HAPPY TO WORK WITH YOU TO RESOLVE THESE ISSUES. I HOPE I MADE SOMEONE’S DAY

*Also special thanks to @Philip_Street1, who managed to solve the issue where if hot water was not discovered in the system, the integration would fail.

Changes from the old app:

  • Fixed the API endpoint to be the new one that Honeywell Evohome uses
  • Added The new capabilities for the deprecated thermostat capability used by the new smartthings app
  • Fixed the Checking Status on the dashboard tile for use with the new Smartthings app
  • Generated the Presentation file required by the new smartthings app for correctly displaying the options for the inside of the new app
  • Removed the old custom and deprecated capabilities from the old code
  • Changed the default value for window function temperature from 5.0 to 5 as it would throw a bad request error
  • Managed to get the correct thermostat modes to show app in the modes list in the new app presentation
  • Managed to get the modes to work with the new app’s presentation. Some list items appear weird but this is a Smartthings issue
  • Changed the links for the documentation and images to work.
  • Removed the cooling options

Recent Changes:

  • V3.4 Fixed the hot water switch issue going back and forth when changing state in the smartthings app.
  • V3.3 Added logs for the hot water switch state to appear in the IDE.
  • V3.2 Replaced the hot water mode with the new custom thermostat mode to fix the wording. Also removed the deprecated refresh capability from both the zone and hot water thermostats to avoid them from showing up in the automation options.
  • V3.1 The Alexa issue where it was not possible to set the temperature from the app or voice has now been resolved. Also as an added bonus, the Thermostat Modes now display the modes correctly.
  • V2.1 Removed deprecated set temperature option at the automation actions.

Known issues:

Cannot set the temperature and an error is thrown.

You need to reinitialize the device handlers. The solution to this is to get the Evohome Connect SmartApp to resend the device id to the device handler. Fortunately you can do this going into the Evohome Connect SmartApp and changing a setting (I changed the polling period) which causes a refresh of the data.

Changing the setpoint duration in the settings, (e.g. to permanent) will not actually apply the change to the thermostat.

While i am working on fixing this by adding default values, the solution is to go to each evohome zone, go to settings, set the setpoint duration to what you require, (e.g. to permanent) and then set temperatures for both Boost and Suppress (INTEGERS ONLY). Doing so, will let you set the setpoint duration.

Setting the temperature using the Alexa app or voice, has a different range than the one set in Smartthings (8 to 32 degrees).

We are working on a fix.

Link to the Evohome 2020 SmartApp and Device Handler: GitHub - andremain/EvohomeSmartthings2020: A modified Evohome Smartthings integration based on Codersaur's code from 2016

Note, when copying the groovy code from GitHub, don’t use the RAW view as this will corrupt the degree symbols in the code, copy from the standard view instead.

Please use THIS thread for anything related to the Honeywell Evohome integration from now on

Screenshots:

Installation instructions:
Navigate to the IDE : https://graph-eu01-euwest1.api.smartthings.com/hub/show/a5c61251-ad03-4fc0-a54b-a84ca5cd8fe0

Press on smartapps and click on new smartapp, then select from code.

Now navigate to the gihub page https://www.github.com/andremain/EvohomeSmartthings2020/tree/main/

Open the evohome connect smartapp click on the 3 dots and then view raw. Select everything and paste it inside the IDE. Then click save and publish for me.

Now you need to add the device handlers. In the IDE click on device handlers from the menu. Click create a new device handler and click from code. Then navigate back to github https://www.github.com/andremain/EvohomeSmartthings2020/tree/main/ and open the evohome zone dth. Click on the 3 dots and click view raw. Select everything and copy it. Then navigate back to the IDE and paste the code. Click save and publish for me.

Finally you need to do the same with the hot water dth. In the IDE click on device handlers from the menu. Click create a new device handler and click from code. Then navigate back to github https://www.github.com/andremain/EvohomeSmartthings2020/tree/main/ and open the evohome hot water zone dth. Click on the 3 dots and click view raw. Select everything and copy it. Then navigate back to the IDE and paste the code. Click save and publish for me.

Now you need to setup evohome from your smartthings app. Open the app and tap on add smartapp. Scroll to the bottom and you should see a smartapp called evohone connect under the custom section. Tap on it open. Type in your username and password and tap done.

The devices will be added to smartthings. You need to go to each zone (device) tap the 3 dots and tap settings. Under duration type 60, boost 22 and suppress 15. At the until option select your preference and go back to the device.

If you have a hot water device. Open it tap the 3 dots, settings for the duration type 60 and the at the until option select your preference and go back to the device. You are now ready to use the integration.

7 Likes

Thanks for the information

CredibleBH

Any time…

I’ve just installed the Smart App and Device Handler. Initially it didn’t work correctly returning an error that it was unable to change the set point. It looks as though when I subsequently installed the DH, somehow the password previously entered in the smart app was deleted - all sorted now.

Is it possible to get the mode titles displaying correctly in the app for “Away”, “Custom” and “Day Off” as in the iOS SmartThings app they are truncated “__PO_CODE_THERMO…” Thanks

Glad you had it working, as for thr mode names that don’t display correctly, this is a Smartthings issue not with the smartapp itself. It sould be resolved at some point.

Ok thanks.

1 Like

Great job, works perfectly for me. Would love to get the water heater working so i can turn on the water with Alexa. Any chance that is in the pipeline? Thanks again.

Hi David. Unfortunately i will need to right a new handler for the hot water support as it needs to be separate device. Not currently in the pipeline as i am not a developer, just some guy trying to make the old integration work with the new Smartthings app. Maybe i will give a shot at some point but no promises… :grin:

Hi,
Been looking for this integration for ages.
Thanks for the great effort.
Have installed on my Evohome 12 zone setup.

Glad to hear everything works great! I was also waiting for this years. Happy i was not alone :grin:

Hi,
After just creating one automation yesterday for one zone, which worked ok.
I also created an automation of another zone, that would set the zone to 21C and to be triggered at 9am this morning. The odd thing was, at the trigger time of 9am this morning, this heating trigger seemed to set all the heating zones of the whole house to off or to their default cool temperature of say 10C, 14C etc.
Would you have any idea what might have caused this?
I have re-pasted the code from GitHub, as I did do it in Raw format by mistake. Not sure if this could have caused this issue?

Thanks in advance.

Hi. As i am not the original developer of this integration or a developer in general, i am afraid i cannot help you. I also have just one zone myself so i cannot test this.

Ok, thanks for the heads up.
I may have a delve in the code myself.

Please be my guest! If you can also fix the permanent and next setpoint setting that would be great

Why does the code only use heatSetpoint and not coolSetpoint? Changing the heating temperature through the device handler seems to work ok, but changing the cooling does not. It seems the cooling temperature cannot be set below the heating temperature.

I can’t see the documentation for https://mytotalconnectcomfort.com/WebApi though as it’s behind some type of oauth login, so unsure of the specifics.

As far as i know Evohome has no cooling capabilities.

I managed to avoid modifying any of the Groovy code!
I found a workaround that involves using a Mobile App Automation but in the Automation, not setting the Mode and instead, only setting the Heating Temperature.
However, I already have a lot of mobile App Automations and am wary that I’ll probably hit the limit of automations for doing this sort of thing.
So, I wonder if you know of any SmartApps that would set the Heating Temperature of a thermostat device at a defined time?
I’ve had a trawl in this community but can’t find any.
Guess, my other alternative is to use WebCore instead.
How do you automate the setting of temperatures for your EvoHome in SmartThings?

Thanks.

My automations are fairly simple. As heating is fairly expensive where i leave, i have to set to 5 degrees when everyone is away and have a scene to set the heating to 22 degrees. I use my alexa to turn on the heating when i want to.

For some reason since installing the new release any smartapps, such as keep me cozy, don’t recognise any of the Evohome zones as thermostats? Any ideas?

(Thanks for the new release though, its fixed loads of other bugs)

You are very welcome and i am glad you like it! The thermostat smartapps use a different capability called thermostat. That capability is now depricated, which is why it has been removed from the Evohome integration. Now old smartapps such us the keep me cozy need to be updated to support the new capabilities in order to be able to recognize thermostats using the new capibilities. No idea when that will happen though.