[DEPRECATED] Ecobee DTH and Helper SmartApps

I just updated:

  • Ecobee (Connect)
  • ecobee Routines
  • Ecobee Thermostat
  • Ecobee Sensor

Addresses problems with program Hold: events not setting/resetting correctly when initiated by ecobee App or via ecobee Routines, especially when default holdType is not set in either the thermostat(s) or in Ecobee (Connect). Also some miscellaneous performance enhancements.

1 Like

Note that the holdType used by this suite is determined from the following priority:

  1. The selected holdType in ecobee Routines
  2. The specified Hold Type in the preferences for the Thermostat DTH (allows different thermostats to operate differently)
  3. The selected Hold Type specified in the parent Ecobee (Connect) SmartApp, under Preferences
  4. If none of the above are set, the holdType will always be Permanent/indefinite/Until I Change

At present, the default setting on the Thermostat itself is not used by this Ecobee DTH implementation

@storageanarchy, when I use the Ecobee’s main sensor temp (the thermostat’s sensor) in a CoRE piston, the temp is showing out to 13 decimal places. Besides it just looks messy, it keeps me from being able to match the temp to one of the other sensors since they only show to 1 decimal place. Is this controlled from the DTH or is it something that I can control? Since it only does this on the Thermostat’s sensor, does it have something to do with the option in Ecobee Connect to use the main sensor as a separate sensor? Below is a screenshot of the CoRE condition next to what it shows in the simulated condition.

Hmmm…an unexpected side effect of maintaining the internal precision as a floating point number. I can fix it, but probably not for a few days as I am traveling. Looks like I need some more Math.round and String.formats to trim the number back down to 1 decimal place. You can’t effect it because I intentionally try to maintain full precision for temperature despite whatever decimal precision you choose for display.

Note that using the Thermostat as Sensor you are getting the temp at the thermostat itself, and not the average of any sensors you may have enabled for the current program. If you aren’t using sensors, or if you want the average, use the temperature from the thermostat instead - let me know if that also has the same problem.

I may not be able to get online for several days.


1 Like

Hi Barry,

It’s definitely not anything critical, so whenever you get a chance to look at it will be great.

I have a routine that looks at the actual temp at the thermostat, so I do need the sensor temp and not the average.

I make use of quite a few of the features that you’ve added into the Ecobee DTH and apps, so thanks for your help on this.


Did I miss something, I tried to go to your Github but id doesn’t seem to exist.

Double check the link in the new [RELEASED] thread. The old link has been deprecated.


When I click on the link at the top of this post:

Takes me to a 404 page. but if I click on the instructions page link it takes me to https://github.com/SANdood/SmartThingsPublic/blob/StorageAnarchy-Ecobee/smartapps/smartthings/ecobee-connect.src/README.md

I’m curious how quick the thermostat report status change to the smartapp? I’m using the stock dth and it takes a long time before ST sees the change in thermostat cooling/heating/idle status.

If you set the polling frequency to 1 minutes, you will generally see changes within 2 minutes - or about as fast as the ecobee app displays the same change made from the SmartThings interface.

Not 100% guaranteed, however - could be worse, and may occasionally be better.


Thanks! 2 minutes is much better than the status reporting I’m currently getting from stock. I will download and install.

Barry (@storageanarchy) ,

I’m using your DTH (should be the latest). I use Ecobee Connect to set the Ecobee to “Away” with a permanent hold when I leave. When I come home, Ecobee Connect runs “Resume Program” and sets the Ecobee to it’s “Home” program. Now that it’s getting warmer here in IL, I started turning the Ecobee “Off” on the warm days and have discovered that when “Resume Program” is run, it sets the Ecobee to “Heat” as well as changes it back to the “Home” program.

I experimented a little and found that it only changes to “Heat” if the Ecobee is in “Away and Hold” or “Home and Hold”. If I just set it to “Off” and no Hold mode, the Resume Program has no affect. I also just tried setting it to “Cool” instead of Off, then setting it to “Away and Hold” and Resume Program changes it from Cool to Heat. I just tried using “Resume” from the “Thing” tile in the ST app instead of running Ecobee Connect and it changes it from Cool to Heat there also.

I don’t see anything in Live Logs other than the Resume Prog running. Is there someplace else I should look to help figure out what’s going on?


“Resume Program” will do as you say -resume the currently scheduled program.

If you want it to be “Cool”, you should change your Home program to be in Cool mode. If it is set to Auto, it will resume to the previous mode the last time Home was active.

Try that, and let me know if it doesn’t solve your problem.


Hi Barry,

Regardless of whether it’s in Cool or Off, Resume changes it to Heat.

Shouldn’t Resume Program, resume to the currently scheduled program like Away, Home, or Sleep and not change the mode from Off, Cool, Heat, or Auto?

Indeed, Dave, it should just revert the thermostat to the scheduled Program, and not touch anything else. And that is indeed how it works for me.

I’ll have to do a little digging to figure out what it is actually doing…

It would be helpful to have Debugging Level set to 5, and then to see what the Live Log for both the Thermostat itself and for your Ecobee (Connect) SmartApp are reporting when the ResumeProgram is executed…if you could capture that, it would be most helpful.

If not, maybe I can figure it out for myself…

1 Like

Dave -

Could you please try one thing for me? Could you create a Vacation Hold for any time in the future on all of your Ecobee thermostats, and then cance/delete them? After completing that, try your hold/resume cycle again and let me know if you get a different experience.

I’m tracking an Ecobee bug related to “virgin” Ecobee’s that have never utilized the Vacation feature…if I can validate the the above fixes your problem, then I can implement a work-around/fix.


1 Like

Hi Barry,

I just created a vacation hold for a few days from now and then deleted it. I set the thermostat mode to Cool and set it in Away & Hold (I’ve also used Vacation Hold before). I waited for the ST phone app to update and reflect the mode change. I then pressed Resume on the ST phone app and the Ecobee cleared the Hold and changed the mode from Cool to Heat. I did the same thing with the mode set to Off. The mode changed to Heat when I hit resume.

Where do I change the debugging level? I don’t see it in the settings, so I assume that it’s commented out in the code and I need to uncomment it?


Debug Level is in the Ecobee (Connect) settings, in the Preferences page…

Another useful piece of information is the Ecobee (Connect) State report:

In the IDE:

  1. Top of screen, click My Locations
  2. Click “smartapps” for your location (far right columnt)
  3. Click “Ecobee (Connect)” (or the name you gave this) - best to right-click and open in another page/tab/window

Send me the contents. I’ll send my personal Email in a PM…

When I select my thermostats in the Ecobee Routines and click done, I get a “Error - bad state. Unable to complete page configuration” I was using Seans code before and all worked ok.