Having purchased an Evohome system for Christmas, I knew there wasn't a plugin available for it, but I also knew there was an API on github that another Evohome user had reverse-engineered and documented. The API is here for anyone interested.
As the API was so easy, it was begging to be turned into a plugin, so I thought I'd have a go; I've coded in various languages for 20 odd years, and I dabbled in the Indigo plugin world last year, so I thought I'd give it a go.
For those wanting to jump straight in, the latest download link is always at the bottom of this post.
What this isn't
This plugin is not for the Honeywell Wi-Fi Smart Thermostats. Nick Lagaros has written a plugin for those HERE.
Features
- Thermostat device per zone in Evohome
- Each device shows current temperature, target setpoint, and current mode (on schedule, overridden, economising...)
- Controller device showing system mode and other system-wide data
- Activate Evohome modes (ie 'Quick actions')
- Increase/decrease or set temperature of a zone
- Schedule when / how often you want data to refresh (using regular Indigo schedules)
- All device states are designed to be usable in control pages and triggers
- Backup and restore schedules - see update 1.0.7 below
- Data dump (in case you have devices I don't have and I need to see how they're presented in the API)
- Added basic support for Hot Water boilers linked to Evohome - see update 1.0.11 below
- Added new log level "User actions only" - this only logs actual actions or changes (increase temp, change zone etc)
- Fixed bug for 'Decrease zone temperature' action, which previously threw a 'key not found' error
Coming soon
- Boiler relay (virtual state) - the actual relay state isn't available from the API, but I intend adding a virtual state if any zone is cooler than its target temperature.
- Allow renaming the controller device
Not possible
There are some features of Evohome that would be nice to implement, but they simply aren't exposed by Honeywell and therefore we cannot access them via any API methods:
- Outside weather temperature
- Boiler relay state (this isn't available directly, but if you look at the icon for each zone, it turns 'on' if the temperature is cooler than the setpoint, which in theory means the boiler should be lit.
Installation notes
When you install the plugin, it will ask for your username and password for your Evohome system. It will then connect to Evohome's servers (the same as your phone does if you use their app) and pull down the data - this creates one controller device, and one device per thermostat.
You can rename the thermostat devices to whatever you'd like, but - for now - please don't rename the controller because it looks for it by name at the moment.
After the first data download, the plugin will never refresh the data unless/until you tell it to. There is an Action for this (which you can schedule to your needs), or it happens 5 seconds after you issue any zone or system command such as increase temperature or set 'away' mode, in order to show the correct data.
Download link - v1.0.11 BETA
Evohome.IndigoPlugin
A couple of Indigo users have been using earlier 'alpha' versions of this plugin as I've developed it, and not come across any major bugs (with the exception of the one noted above). However my coding isn't always as tight as it should be so I'm keeping it in 'beta' status until a few others have tried it out.
Those who have seen me around the forums will know I usually participate in the forums at least daily if not several times; however please be aware this is usually from my iPhone when I'm away from my desk. I will endeavour to support this plugin as quickly as possible, but (as with everyone) I have busy periods of the year when I'm simply not at my desk long enough to do all I'd like to, including fixing or updating plugin code, even if you see me actively responding to other threads.
Enjoy!
Peter