[DEPRECATED] Universal Ecobee Suite, version 1.7.**

Everything working. But I do find myself wondering if I'm updating the right things from your release notes.

If you're not sure, then I probably didn't explain things enough (or correctly) - how can I improve the notes?

Also, my sincere apologies about the Open Contacts issues - I added a user-requested feature (don't turn ON if HVAC was OFF when the door was left open), and it created more complexity and issues than I foresaw (hence the 26+ updates since release). I THINK I have it all cleaned up, so PLEASE let me know if it stops working.

And that message goes to everyone - thanks for your patience...

Here's an example:

But that's not what I see in my Apps code

So I'm not certain if I'm updating everything correctly?

My bad - the file name for the Ecobee Suite Mode/Routines/Switches/Programs is actually ecobee Suite Routines. It is a hold-over from the early days, before I started overloading the Helpers instead of creating new ones with similar functionality.

I try to always use the file name in the update announcements, but as you have noticed, I am not consistent in doing that.

Here's a tip for Hubitat users - use the IMPORT function to load the files from my Github the first time. For Applications, this will load and retain the path name; when there are updates, you can simply open the file locally, click on Import, and (re)import the updated file. This works on Drivers as well.

I will try to be more consistent using the base names instead of the displayNames when I announce updates...thank you for your feedback,

Sure! And thank you for doing such great work.

1 Like

Ecobee Suite Updates posted on 14 July 2019 at 8:20am EDT

Fixes & Enhancements include:

  • Ecobee Suite Thermostat, version 1.7.22
    • New!!! adds support for demandResponse program (see below)
  • Ecobee Suite Manager, version 1.7.27
    • New!!! adds support for demandResponse program (see below)
  • Ecobee Suite Open Contacts, version 1.7.28
    • Fixes race condition where HVAC would not be turned back on under certain conditions
  • Ecobee Suite Smart Mode, version 1.7.14
    • Improved!!! at a users' request/suggestion, the checks of mode change conditions are repeated when the location.mode becomes valid again

About the new demandResponse support

In cooperation with power companies in some countries (including the USA), Ecobee thermostats can be requested to perform energy-saving demandResponse actions by the power companies (usually only if you register/subscribe to the program, often with a cash incentive). This version of Ecobee Suite adds support for recognizing, reporting and displaying (on SmartThings Classic) these demandResponse activities.

These activities can take many forms, and so far I have only added support for the ones that I have experienced recently. First, there is a "pre-cool" request sent by the power company, usually to drop the coolingSetpoint (or increase the heatingSetpoint) between 3-5°F for 1.5 hours prior to sending the reduced power request. This latter demandRequest event will raise the current coolingSetpoint (or lower the heatingSetpoint by 4-5°F for a period of time (typ. 3-5 hours). These two events are reported slightly differently so that you can tell the difference:

  • Precool will be denoted as the attribute currentProgramName being set to Hold: Eco Prep. On SmartThings Classic, the program icon will change to the green half-leaf icon that also appears on the thermostat itself;

  • The demandResponse event itself will be denoted as currentProgramName being simply Hold: Eco; the SmartThings Classic program icon will be the green flower icon that appears on the thermostat;

  • In both cases, the following attributes are also updated to reflect the DR event:

    • currentProgram will be set to Eco if the event is optional (i.e., you can cancel it), or as Eco! if it is a mandatory event that cannot be overridden

    • thermostatHold will be set to demandResponse

    • holdEndsAt will describe the time the hold will end, as in "today at 6:30pm" (time is local thermostat time)

    • holdStatus will describe the event as "Demand Response Event ends today at 6:30pm"

  • Additionally, a new command entry point has been created, cancelDemandResponse(). This command will cancel the current event IFF it is not a mandatory DR event. The "Resume/Cancel" button on the SmartThings Classic thermostat device will also change to enable cancelling the DR event.

It is important to understand that DR events CAN be overridden by another user-generated hold, but the end time of such a hold will be forced by Ecobee to match the end-time of the DR event. DR events are also created on top of any current hold, and the existing hold will be returned to after the DR event completes, or if it is cancelled. Also, you can turn off the HVAC altogether while a DR event is running, but it will not be automatically turned back on when the event finishes.

Developers should note that if they call resumeProgram() instead of cancelDemandResponse(), both the DR event AND any prior-existing Hold will be cancelled, and the regularly scheduled program will run. Also, it is not possible for end-users to create their own DR events (but you can create a Hold or a program that does the equivalent).

Hopefully the above provides enough info for WebCoRE users and Groovy programmers can interact with these DR events. If not, let me know.

This feature was added at user request. One person asked to be able to automatically cancel such events if they are at home; another wanted to take other energy-savings actions during a DR event (which often are scheduled when power rates are at their daily highest).

Finally, note that this is my first implementation - their undoubtedly will arise situations that I don't handle properly. If you find one, please let me know so I can increase the robustness of the implementation.

These updates are highly recommended for ALL Ecobee Suite users

I don't have a dehumidifier. I'm using the ecobee function "AC overcool to dehumidify". Is there any way to support that?


You must not have it set correctly, because my code will decide that you have a dehumidifier IF (but only if) you enable dehumidifyWithAC, set a non-zero dehumidifyOvercoolOffset, and have set the dehumidityLevel. Double check that you have enabled dehumidification on the thermostat itself.

Your ES Thermostat device should include the highlighted values if you have AC overcool set up correctly:


Just FYI - the latest release now supports the ECO/demandResponse capability that you were looking for. Let me know if it fulfills your needs...

Thanks, I'll check it out. I got it working already with currentProgramName = demandResponse and it was triggering just fine!

I have been using this feature since 2014. So, I know it works (also see screenshot 3 below). However, for whatever reason, no "dehumidify*" value shows up in the thermostat device page using Universal Ecobee Suite - see the three screen shots below:


I tried adding the thermal comfort applet, and it quits with an error. Here's a video of what happens:


Since I last posted, I've tried the following:

  • Remove app from Hubitat
  • Remove app from ecobee portal (My Apps)
  • Reboot Hubitat
  • Re-add app; re-authenticate

This hasn't changed the situation. I'm still unable to use a wide range for settings from the thermostat device page (eg. the thermostat is currently set to "Auto" mode; I'm unable to set it to "Cool" mode - I get an error).

I'm using version 1.7.27 of Ecobee Suite Manager.

What am I doing wrong? What else would you recommend I try?


We're all good!!

I re-did everything in my last post with one additional step. I removed the app code completely from Hubitat, and re-added it.

And it worked! Really happy!! This is just awesome - thank you so much!!

Glad you got it working.

From the screenshot you posted, you were not running the latest version of ALL 14 modules before...

I also just happened to post the fix to ES Thermal Comfort a few minutes ago, which you probably picked up on your re-install...if not, make sure that you are running version 1.7.12 of that module before you try Thermal Comfort again...

1 Like

Ecobee Suite updates posted 16 July 2019 at 6:30pm

Updates include:

  • Ecobee Suite Manager, version 1.7.28
    • Fixes incorrect currentProgramName and currentProgramId under some demandResponse situations
    • Fixes incorrect weatherIcon displaying right after sunrise/sunset
  • Ecobee Suite Smart Mode, version 1.7.15
    • Displays current thermostatMode and currentProgramName in appLabel
  • Ecobee Suite Smart Vents, version 1.7.08
    • Optimized handling for "no-change" events
    • New option to specify if vents should be open or closed during 'fan only' operating state

The updates are recommended for all users of Ecobee Suite

1 Like

303 Users and counting...

62 Hubitat, 241 SmartThings

Thanks to all who have donated!!!


I get an error message whenever I try to set the setFanMinOnTime attribute using the device page, or using the WATO app.

Ecobee Suite Thermostat updated 19 July 2019 at 10:00pm EDT

  • Ecobee Suite Thermostat, version 1.7.24
    • Fixes type conversion error in setFanMinOnTime() and setVacationFanMinOnTime(). Thanks for finding this one, @morse.caleb!

This update is highly recommended for all users

I'm trying to update the Contacts label that I created, but it doesn't seem to save it. This happens if I just add text to the default text. If I replace the default text enough to not match the default text, it saves the new text. Example: "Contacts & Switches Upstairs" won't save, but "Contacts Upstairs" does.

Also, if the thermostat was off with contacts open, and I turn on the thermostat with the contacts still open, the Contacts helper doesn't seem to kick in. I'm guessing it's because the app has not polled the Ecobee server for the new state. In this case, it would be nice if there was a "Run" or "Update" button to refresh the app at the top level (not at the helper level). That way, if I manually change the state of the thermostat, I can manually trigger the helpers to run their rules.