Free Ecobee Suite, Version 1.2.*
As of February 11, 2018, I have released the new fork of this work as the Free Ecobee Suite, Version 1.4.0 (see the announcement here for important instructions on obtaining and installing this new version).
I have also simultaneously released most (but not all) of the enhancements in that new release as the Ecobee Suite, Version 1.2.90. Note that all future enhancements will be made to the 1.3.0 fork ONLY, and this version will soon be deprecated.
You are encouraged to move to the Free Ecobee Suite version 1.4.0 as soon as possible.
I am pleased to announce the availability of version 1.2.0 of the free Ecobee Suite that I have been developing. See these posts for updates:
[DEPRECATED] Free Ecobee Suite, Version 1.2.* - v1.2.5+icons
[DEPRECATED] Free Ecobee Suite, Version 1.2.* - Updated Smart Circulation
This release represents a significant update to the suite, and particularly to the UI of the DTH, which now employs dynamically updated icons for most actions. Buttons that are not applicable to the current state of the thermostat (including thermostat mode, fan mode, programs, vacations and holds) are now greyed out, and most actions are now updated to the DTH tiles immediately or within a few seconds. Buttons that are used only as indicators and greyed-out buttons will not take any action.
Other notable enhancements and additions in this version include:
- Thermostat off - it is now possible to turn the Thermostat off via the UI. Note that if you have circulation enabled (non-zero fanMinOnTime), you cannot turn off the thermostat - the button will be greyed out until such time as the minimum fan runtime is 0. You can reset the fanMinOnTime by turning the fan off or to auto mode - this will then enable the Thermostat’s off mode.
- Fan Mode cycler - you can now cycle through the 4 supported fan modes: on, auto, circulate, off. Note that the difference between auto and circulate is that auto is in effect when the fan minimum on time per hour is 0; circulate is active if the fanMinOnTime is greater than 0. (fanMinOnTime can be configured on the thermostat, in the Web UI, and using the Smart Circulation or Routines Helper SmartApps).
- Thermostat Mode cycler - although there are separate buttons for the 4 main thermostat modes (off, heat, cool, auto), you can also cycle through the available thermostat modes by pressing the leftmost button/indicator under the “Command Center” header.
- Additional Default Hold Type: holdHours - as with the Ecobee3 thermostat itself, you can now set the default hold to be 2 or 4 hours. You can also specify a custom hold time between 1-48 hours. This is in addition to the existing “Until I Change” (permanent hold) and “Until Next Program” (temporary hold). (Due to limitations of the ST UI, the interactive setting of hold time has not been implemented).
- Thermostat Hold Setting Default - You can now also choose to use the setting on the Thermostat as your default hold type. (Since the interactive (askMe) hold type is not supported, this will default to be a permanent hold).
- New Refresh Icon and Action - the Refresh icon on the DTHs has been updated, and there is a new Refresh action. If you press it once, it will simply cause the Ecobee Cloud to be polled for any changes to the current Thermostat (or the Sensor’s thermostat). But if you press it again, within a couple of seconds of the Bee icon re-appearing after the first press, it will cause a full refresh from the Ecobee cloud. This is mostly for debugging, and you normally shouldn’t need it, but can help the UI recover from disconnected states (for example).
- ecobee Smart Circulation Helper SmartApp: Thermostat Mode Filter - You can now select to run the automated circulation changes only when the thermostat is in a specific Mode (e.g. off, heat, cool, auto, auxHeatOnly). This is in addition to filtering for specific Location Modes or Thermostat Programs. If any of the configured cases match, the SmartApp will execute the specified action(s).
- ecobee Routines Helper SmartApp - updated to allow setting hold time to a specified number of hours, or to default to the physical Thermostat Setting. Hold type is now calculated at the time of the hold so as to use the latest value set in the DTH preferences, Ecobee (Connect) preferences or on the Thermostat itself, dependent upon whatever is specified.
- Configurable DTH Icon/Image - both the Thermostat and the Sensor DTH now display a default icon in the list displays (like in the Room list). You can override this icon, and/or use an image instead, if you prefer.
- Support for latest SmartThings Thermostat attributes - SmartThings recently extended the definition of their Thermostat device model (see July 07, 2017 entry here: http://docs.smartthings.com/en/latest/latest-updates.html)
- Fahrenheit 451° - The alerts and displays when the link between the thermostat and the Ecobee cloud is down now shows the temperature 451° (the ignition point of paper) on a red background. (Note, this is the display value only, the thermostat will still report the last known actual temperature for the temperature attribute). When the connection is re-established, it can take a few minutes for all of the DTH tiles/status to return to normal.
- Bug Fixes and Optimizations - numerous bugs have been squashed and the code/communications have been further optimized in several dimensions. That said, I’m sure that I have also introduced new bugs, so your patience is appreciated.
Please post any problem reports to this thread, and I will endeavor to resolve them in a timely manner.
If you would like to try out this Suite of Ecobee Device Type Handlers and supporting SmartApps, you can follow the instructions on my GitHub SmartThings repository:
For those familiar with using SmartThings/GitHub integration, the particulars you need are:
Note: Occasionally people have found that not all of the SmartApps and DTHs are updated properly using the SmartThings Github integration. While I have no idea why, you may have to manually update one or more files (copy/paste them into your SmartThings IDE). You can use the version number found near the top of each file to recognize whether you have the latest version in your IDE.
- You will need to get ALL EIGHT of the .groovy SmartApps under the SmartThings directory, and BOTH of the Device Handlers in deviceTypes under the SmartThings directory (you need them all saved within your IDE instance, even if you don’t plan on using them all).
- After first enabling OAuth for Ecobee (Connect), publish Ecobee (Connect) and the two DTHs. You can also publish the rest of the Helper SmartApps if you like - their names are intentionally lower-case so that they will appear at the end of you My Apps list. Just note that if you publish them once, you will have to publish them again every time you update the source files.
- In your mobile app, go to Marketplace/SmartApps/My Apps, and run Ecobee (Connect) to create and configure your Thermostat(s), Sensor(s) and Helper SmartApps. The first time you run this you will connect to your Ecobee account. Then, exit and re-enter Ecobee (Connect) from the Automation/SmartApp list, and then select your thermostat(s), sensor(s) and preferences. Exit out again, and your new Ecobee thermostat & sensor devices will appear in your list of Things under My Home.
- Finally, you can go back into Ecobee (Connect) to create and configure any of the Helper SmartApps.
IMPORTANT! You should not try to install the Device Type handlers manually through the IDE - this will not work! Ecobee (Connect) is the Parent SmartApp for the entire suite, and it will create the Child devices and Helper SmartApps for you.
More information is in the Readme file in the GitHUB directory linked above.
My current ToDo list includes (not in priority order):
- Configurable default fanMinOnTime (possibly per-Program/Climate)
- Button selector and/or cycler for Hold times
- A new Helper SmartApp for Custom Hold times (including dateTime and future holds, if possible)
- An all-black-background UI (except for the multi-Attribute tile at the top)
- Finish updating the documentation on Github to fully represent this implementation (new screenshots added with this version)
- …your suggestions here!
Motivation & Recognition
My motivation in this effort is simply to create a robust free SmartThings Device Handler and SmartApp Suite for Ecobee thermostats. This work is based off of the original SmartThings-provided DTH, and the significant contributions built on top of that Open Source version by @StrykerSKS. I have since overhauled Sean’s work significantly to produce this version, leveraging my own experience in interfacing with the Ecobee API efficiently and in creating a robust and responsive UI in SmartThings.
There are other DTH’s for the Ecobee family of thermostats:
- The SmartThings version (free, Open Source), which you can find under Marketplace/Things/Thermostats on your mobile device)
- Sean’s version (@StrykerSKS) (free, Open Source), which can be found here: [Release] Updated Open Source Ecobee Device Type and SmartApps
- Yves Racine (@yvesracine) provides a comprehensive fee-based, Closed Source suite of Ecobee devices and supporting SmartApps which you can find here: [RELEASE] Resilient - My Ecobee Device & ecosystem v5 - The smartest thermostat under ST with new "comfort tips" features and Unique Integration with Echo/Ask Alexa
Let me be clear: this is not a competition. I am not trying to replace or outdo any other version, and I personally have nothing against people making money off of their efforts. I have invested my time in this as Open Source so as to meet my own wants and desires, and I offer the result back to the community with no strings attached.
Please feel free to try them all, and pick the one that best fits your own use case and preference.
I do simply request that if you have issues or need help with any of the above, please post them to the appropriate thread. All of us are committed to helping you in every way possible, but we don’t necessarily follow each others’ discussions. And if you do find an Ecobee suite that you like, please let the Authors know - positive feedback is our greatest reward.
All that said, this work is fully Open Source, and available for your use at no charge. If you would like to make a small donation as a token of your support, you can send it to me at https://paypal.me/BarryABurke
Please post suggestions and problem reports for this version (only) to this thread!!!