[OBSOLETE] Universal Ecobee Suite for SmartThings & Hubitat (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

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 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

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

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.

universal-dev GitHub repository

4 Likes

Beta update: Ecobee Suite Thermostat v1.7.00e

  • Fixes whatHoldType()

Recommended for all Beta users

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).

MAJOR UPDATE to Ecobee Suite Manager, v1.7.00i

I have just posted a major update to the BETA Universal Ecobee Suite for SmartThings & Hubitat

See the first article above, or the README.md in my universal-dev Github repository for details.

I am hopeful that this release will become the Release Candidate, based on positive feedback from early-access users.

Functionality Complete Update to Ecobee Suite Manager, v1.7.00k

I have just posted a v1.7.00k update to both Ecobee Suite Manager and Ecobee Suite Thermostat.

This update introduces the New setEcobeeSetting( name, value ) command.

This allows programmatically changing most (but not all) documented Ecobee Settings using programming tools such as native Groovy, WebCoRE and Rules Engine.

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.

Ecobee Server Outage

I was just notified that the Ecobee servers will be undergoing a maintenance update from 4:30-6:00pm EDT today, Friday May 10, 2019.

You will not be able to install or configure new installations of Ecobee Suite while the servers are offline.

  • Fix argument types for setProgramSetpoints()
  • Auto-convert setEcobeeSetting() calls to equivalent setXxxx() as necessary

Ecobee Suite Manager 1.7.00n

  • Fix argument types for setProgramSetpoints()

Ecobee Suite Thermal Comfort 1.7.00n

  • Reduce iterations of calculatePmv to minimize calc times (20 second limit on SmartThings)
  • When calculating PMV targets, now uses 0.5°C steps for metric locales (1.0°F steps for Imperial)
  • Fixed and/or logic for Programs/Modes
  • Adjust calculated setpoints if they are too close together (heatCoolMinDelta)
  • Only log notification messages once
  • Clean up message texts

These updates are recommended for all users

I just found that one of my two ecobee thermostats is showing as offline. The ecobee app shows as it being online and the recent change tab shows accurate temp.

Try doing the “double tap” recovery - tap the bee, when it reappears, tap the bee again. It should recover.

Thanks!
Barry

I updated to the latest and it started working sometime after that. Not sure if that’s what did it or not.

BETA Updates released for All Ecobee Suite Helper Apps

Ecobee Suite Manager version 1.7.00p

  • Fixed sendLocationEvent() on Hubitat platform (send the correct descriptionText)

Ecobee Suite Open Contacts, Quiet Time, Smart Circulation, Smart Mode, Smart Room, Thermal Comfort & Working From Home version 1.7.00p

  • Fixed sendLocationEvent() on Hubitat platform (send the correct descriptionText)

Ecobee Suite Routines version 1.7.00p

  • Fixed sendLocationEvent() on Hubitat platform (send the correct descriptionText)
  • Adds Switch(es) as an initiator for both HE & ST (primarily for Hubitat, since it doesn’t have Routines, and many HE users resort to Virtual Switches to replace Routines)
  • Adds a new Action option to turn on/off one or more switches (on both ST & HE) in addition to changing Location Mode, running a Routine (ST only), or changing the Thermostat Program (again, primarily for Hubitat, to allow an Ecobee program/schedule change to use Virtual Switches to initiate other actions)

Ecobee Suite Smart Switches, Vents & Zones 1.7.00p

  • Revision number synchronization only

This current code collection is now Release Candidate 1 - I would appreciate it if all BETA testers would install it and provide me feedback ASAP.

Just noticed the logs are full of messages like this over and over again every 20 seconds or so:

12:51:10 PM: error refreshAuthToken() - HttpResponseException occurred. Exception info: groovyx.net.http.HttpResponseException: Bad Request StatusCode: 400

12:50:52 PM: info Updating API status with [apiConnected:full, lastPoll:Succeeded]

The devices still appear to be connected.

Edit: Re-authing with Ecobee seems to have fixed it.

1 Like

Ecobee Suite 1.7.00 Release Candidate 2 available

  • In preparation for General Availability Release, this update contains primarily cosmetic changes, plus a few corner-case bugs were squashed.
  • Documentation update is underway - it should be posted sometime Thursday, May 16, 2019

TESTERS! Please install this update and let me know of any issues ASAP!

2 Likes

Free Universal Ecobee Suite 1.7.00rc2 Documentation updated

The documentation has been updated to cover the 1.7.00 features and installation on Hubitat. You can view the documentation here:

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

Any plans on supporting the new app? I’m trying to (slowly) migrate and all I have are a bunch of oddly named offline devices.

Works fine for me?

Humm. Maybe I’m on the wrong branch? Do I need to switch from master to universal?

BYW. Thank you for the great DTH!

Maybe not from this old (beta) branch


Try this one:

Is there a simple way to have Ecobee Suite just change the mode of Ecobee without implementing a hold? I have gone through the different settings in the Mode/Routine/Switches/Program helper and everytime the location mode changes the Ecobee changes to the appropriate mode but with holding.