BETA COMPLETE
Universal Ecobee Suite, version 1.7.00 has been released as of Friday, May 17, 2019
Please see here for the latest information
Highlights
Single code base supporting both SmartThings and Hubitat
The most significant changes in the latest release include:
- NEW in 1.7.00k New
setEcobeeSetting( name, value )
command. Allows programmatically changing most (but not all) documented Ecobee Settings. Arguments generally are Strings, but temperature values can also be aNumber
or aBigDecimal
in either F or C based on your locale. Read Only settings cannot be changed, and some settings can only be changed using the supplied commands (e.g., usesetHumiditySetpoint(setpoint)
instead ofsetEcobeeSetting(humidity)
- required for internal consistency). Usedevice.currentValue('settingName')
to get the current value of any setting. - NEW in 1.7.00i New Notifications Engine is now used by all Ecobee Suite Manager and all Helpers that employ notifications.
- Supports both SmartThings & Hubitat
- Uses the native
capability.notification
on Hubitat, plus SMS (remember, max 10 SMS per day) - Supports spoken notifications via both SpeechDevices and MusicPlayers on both platforms
- NEW in 1.7.00i Working From Home Helper: Automatically overrides the thermostatâs scheduled change to the âAwayâ program if any selected presence sensor is still
present
- New in 1.7.00i Thermal Comfort Helper: Automatically adjusts heating and/or cooling setpoints to maintain Thermal Comfort (Google search link) based on relative humidity, desired PMV, activity and clothing type. Thanks to Richard Peng for adapting the model for use with the Ecobee Suite. Note that you can create multiple Thermal Comfort Helper instances to cover different Ecobee programs and/or modes.
- Universal code dynamically detects and adapts to the host hub platform (SmartThings and Hubitat only) - no configuration required.
- New in 1.7.00d Retry mechanism will re-run command requests that did not complete because the Ecobee servers were unavailable. Note that this code is new and has not been fully tested on both hub platforms.
- Numerous bug fixes (applies to both platforms)
- New in 1.7.00i Significantly reduces Ecobee server load for each check/poll cycle
- New in 1.7.00i Improved error recovery and auth token refresh mechanisms
- Reduces network transactions when not using AskAlexa
- Uses the Authentication Code method of connecting to the Ecobee API. This is far simpler than the PIN approach used by the prior port of my code (v1.4.14)
- Hubitat: Thanks to the Hubitat staff for assisting me in getting this working, as the documented Hubitat OAuth path doesnât work for Ecobee. Read the OAuth init code to learn the (clever) trick they helped me employ.
- SmartThings: This version implements a new Ecobee API Key for the Ecobee Suite on SmartThings. This key will be used for all new installations, and it will automatically swap to the new key the next time you re-login/authenticate with Ecobee. I recommend that all SmartThings users re-authenticate after installing this new version over their existing code.
- Hubitat Caveats:
- Does not support AskAlexa when running on Hubitat
- Since Hubitat doesnât yet have push notifications, the Smart Mode/Routine/Program Helper SmartApp doesnât support Routines - so it is renamed (on Hubitat only) to Smart Mode/Program Helper
Hubitat Performance
Since all of this code runs locally on the Hubitat hub, its performance is different than in the SmartThings environment where all the code runs on Amazonâs server farms around the world. Network traffic will typically take longer to your local hub than across the cloud (from Ecobeeâs cloud servers to SmartThingsâ). My observations are that it can take 2-3x as long to do an update cycle on Hubitat than on SmartThings; depending on the number of thermostats and sensors you have, what takes perhaps 3 seconds on SmartThings (2 thermostats + 10 sensors) can take 9 seconds on Hubitat.
That said, at the end of the 9 seconds, your Hubitat-based Ecobee Thermostat is up to date - it takes only 10s of milliseconds to update the attributes in the Thermostat/Sensor devices. On SmartThings, the data still has to be sent to your mobile device(s).
Note that ALL of the interactions between the Helper Applications and the Devices is local on Hubitat, so there is less network latency and operational delay. Importantly, the code only runs typically 3-6 seconds per minute; this does NOT appear to have any performance impact on your Hubitat hub in any way.
Testing the code
If you are prepared to experience minor issues with the code, you can install and use this new BETA version on either Hubitat or SmartThings (or both!) following the instructions below. I will try to be extremely responsive to problem reports over the next few days.
Please Report Bugs in this Thread ONLY!!!
I will only monitor this thread and its equivalent on the Hubitat Community.
Getting the Code: SmartThings
For SmartThings users, you will need to change your Github connection to point to the âuniversal-devâ branch, using these parameters:
- Owner:
SANdood
- Name:
Ecobee-Suite
(note that the hyphen is required) - Branch:
universal-dev
NOTE: When updating/installing, you MUST include ALL of the Suiteâs components
Getting the code: Hubitat
There are 12 files in total that you will need to import into the Apps Code
and Drivers Code
of your Hubitat hub. To do so, go to the appropriate section and click the top-left âNew Appâ or âNew Driverâ button. From the blank screen, click the Import button, and enter the file pointers below:
NOTE: When updating/installing, you MUST include ALL of the Suiteâs components
Apps Code
- Ecobee Suite Manager: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-manager.groovy
- Ecobee Suite Open Contacts: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-open-contacts.groovy
- Ecobee Suite Quiet Time: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-quiet-time.groovy
- Ecobee Suite Routines: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-routines.groovy
- Ecobee Suite Smart Circulation: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-circulation.groovy
- Ecobee Suite Smart Mode: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-mode.groovy
- Ecobee Suite Smart Room: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-room.groovy
- Ecobee Suite Smart Switches: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-switches.groovy
- Ecobee Suite Smart Vents: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-vents.groovy
- Ecobee Suite Smart Zones: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-manager.src/ecobee-suite-smart-zones.groovy
- Ecobee Suite Thermal Comfort NEW! : https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-thermal-comfort.src/ecobee-suite-thermal-comfort.groovy
- Ecobee Suite Working From Home NEW! : https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/smartapps/sandood/ecobee-suite-working-from-home.src/ecobee-suite-working-from-home.groovy
Drivers Code
- Ecobee Suite Sensor: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/devicetypes/sandood/ecobee-suite-sensor.src/ecobee-suite-sensor.groovy
- Ecobee Suite Thermostat: https://raw.githubusercontent.com/SANdood/Ecobee-Suite/universal-dev/devicetypes/sandood/ecobee-suite-sensor.src/ecobee-suite-thermostat.groovy
After you have installed the code onto your hub, go to the Apps page and click the âAdd User Appâ button, then select âEcobee Suite Manager,â and follow the on-screen prompts to log-in and authenticate with Ecobee. Then exit the app, and restart it from the Apps page - from here you can select your thermostats and sensors, set up your preferences, and install/configure Helper Applications. Note that you cannot install/configure the Helper Apps anywhere except from within Ecobee Suite Manager.