[BETA COMPLETE] Universal Ecobee Suite for Hubitat & SmartThings (Free)

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

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 a Number or a BigDecimal 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., use setHumiditySetpoint(setpoint) instead of setEcobeeSetting(humidity) - required for internal consistency). Use device.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

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 SmartThings Community.

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

Drivers Code

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.

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

universal-dev GitHub repository

8 Likes

SOOO glad you came over to Hubitat. I've been using a ported version of the base app since coming over and while it's worked, I've missed some of the other apps. I will definitely be cracking into this today. Thank you!!!

BTW: the separate links for the apps are incorrect. You have the main app's ".src" reference in the link.

When attempting to authorize the app, i get the following error:

image

1 Like

So, I was able to get the app to pair sucessfully but now it never updates with any info from the thermostat. This is all I see in the device properties:

image

I'm also getting errors in the driver:

Hmmm...it doesn't look like things have gotten connected correctly - it shouldn't be possible to get only those states if things are properly logged in and created. You might want to try doing the Ecobee Authentication again.

Everything happens in Ecobee Suite Manager - if there are errors in there, those are the ones we need to find and fix first...the log from Ecobee Suite Thermostat doesn't help until we know that Ecobee Suite Manager is properly connected and collecting data from Ecobee's servers...

A successful cycle should look like this in the Live Log for Ecobee Suite Manager:

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:52.432 pm [trace](http://192.168.1.77/installedapp/configure/232)Updates sent (774 / 11790ms)

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:51.561 pm [info](http://192.168.1.77/installedapp/configure/232)Polling thermostats Downstairs, Upstairs (311019854581,311075473320) completed

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:51.222 pm [info](http://192.168.1.77/installedapp/configure/232)Updates for 7 sensors (1st Foyer EcoSensor, 2nd Flr EcoSensor, Bar EcoSensor, Basement EcoSensor, Downstairs, Office EcoSensor, Upstairs)

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:48.970 pm [info](http://192.168.1.77/installedapp/configure/232)Updates for 2 thermostats (EcobeeTherm: Downstairs, EcobeeTherm: Upstairs)

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:41.953 pm [info](http://192.168.1.77/installedapp/configure/232)Requesting ( equipmentStatus settings program events runtime extendedRuntime sensors ) for thermostats EcobeeTherm: Downstairs, EcobeeTherm: Upstairs (311019854581,311075473320)

[app:232](http://192.168.1.77/logs#app232)2019-05-05 07:58:40.596 pm [info](http://192.168.1.77/installedapp/configure/232)Polling thermostats EcobeeTherm: Downstairs, EcobeeTherm: Upstairs (311019854581,311075473320)

I think I got all the links fixed properly...

Weird - the first screenshot shows 2019-05-05 @ 7:34pm, the latter one shows 2019-05-05 @ 1:46pm.

Can you capture the live log from both Ecobee Suite Manager and Ecobee Suite Thermostat at the same time of the day?

The first log was from earlier...the one i just posted was from just now. LOL

Sorry that you've been hassling with this all afternoon. The Ecobee servers did experience issues for a while today, so that may have been some of your problems.

My suggestion is to go into Ecobee Suite Manager and remove everything, then start over... things might work better while the Ecobee servers are stable...

Also - double check that you have set a Thermostat Name on the thermostat itself (preferences) - I think it may be not set (null) currently. This used to cause problems in the SmartThings version.

What's the advantage of using this over Hubitat's integrated Ecobee support?

Several:

  • It is more reliable, recovering automatically from most Ecobee server outages
  • It supports 100% of Thermostat and Remote Sensor capabilities, including:
    • commands to set the schedule/program to Home, Away, Asleep (native Hubitat doesn't support the "Asleep()" command
    • full programmatic control of setting schedules/programs, including HVAC modes, hold times, fan modes & circulation times, etc.
  • Supports all Ecobee 3, Ecobee 4, Ecobee Lite and Ecobee EMS thermostats (including 3rd party branded equivalents)
  • The provided Helper apps provide automation for several common use cases, without requiring you to learn/program the Rule Engine. For example (not complete list)
    • Automatically change the Thermostat schedule to "Home" when your location changes to "Home" (or vice versa)
    • Automatically change your location Mode to "Away" when your thermostat changes to "Away" (or vice versa)
    • Enables 'Vacation' as a program/schedule, with automation to control your Location Mode based on scheduled vacations on your Ecobee thermostat
    • Automatically turn off the HVAC if a door or window is left open for more than (configurable) minutes
    • Automatically change the HVAC mode (heat/cool/auto/off) based on outside temperature and/or humidity levels
    • Automatically control smart vents (Econet, Keene, etc.) based on room/sensor temperature
    • Automatically turn on/off a switch (e.g. fan) when the HVAC starts/stops heating/cooling/fan only/idle
    • Automatically adjust the fan minimum on time (per hour) based on temperature delta between 2 or more rooms

And the biggest one: provides the same functionality as my SmartThings version, making for an easier transition for the hundreds of users of my Ecobee Suite on that platform.

2 Likes

Beta update: Ecobee Suite Thermostat v1.7.00e

  • Fixes whatHoldType()

Recommended for all Beta users

2 Likes

BETA Update: New 'Working From Home' Helper

Ecobee Suite now includes a new Helper: Working From Home.

You can configure this Helper to check presence sensors at a specific time of day, and if anyone is present to set the Thermostat(s) to Home mode. Can also change the Location Mode if anyone is home.

Important: To install, you will need to get both the new Ecobee Suite Manager (v1.7.00f) and the new Ecobee Suite Working From Home (v1.7.00d) applications (links updated in the first post above).

Thank you for bringing this great application to Hubitat!
Where will be push notifications sent?

Good question - I'm hoping the new Mobile App supports push notifications. Otherwise, I'll have to look for alternatives - open for suggestions (PushOver is a possibility, I guess).

Pushover seems to work great and very reliable.

2 Likes

I am getting an error for "Open contacts" helper application.

What about using the native notifications flow in HE already? That way, we can setup notifications using whatever driver we are using already. As an example, I have been moving all my notifications off of Pushover and on to Slack.

Just add support for Hubitat Notification Capability. Doing so will allow users to select any device that supports this capability for notifications. This will work with Pushover and other community developed solutions. Also, I would bet that Hubitat implements this same Notification Capability for their upcoming Mobile Apps. This would allow all of the Hubitat Apps, like Rule Machine and Hubitat Safety Monitor, to just work without having to make changes to all of them.

Note: I believe this is the same thing @corerootedxb is suggesting above! :wink:

3 Likes