New version of Ecobee thermostat APIs


On my nexus devices, I don’t see any significant delays overall.

Of course, there are delays that can be explained when the smartthings platform’s performance is lagging (we’ve all experienced some performance issues from time to time) and you need to factor the ecobee processing time as well.

Try it and you’ll see.

For anyone interested, I maintain my versions of Yves ecobee device driver here:

Notable differences in my version:

  1. Farenheight instead of Celsius
  2. Removed all Weather Station info (I use Smart Weather Tile connected to my own personal weather station instead)
  3. Added commands for the 4 default climates (Awake, Away, Home, Sleep) to simplify automation (I have a seperate applet that adjusts the Climate based on location.mode changes, instead of setting specific temperatures)

This was based on a fork from Yves code more than a month ago, but it has been working almost flawlessly (still loses the authentication link to Ecobee from time to time, requiring me to re-register the app).

As to frequency, I use a version of Pollster (Patrick Stuart) to poll both of my Ecobee’s every 10 minutes, which keeps things working in a timely fashion. Still may need to do a Refresh to get the latest data, but generally, this works MUCH better than the ST supplied Smart Device driver.

Hats off to Yves!!!

Hello storageanarchy,

To avoid any authentication error, just send some poll() commands on a regular basis. Ecobee requires that the auth token be refreshed every hour, so I’d recommend to send the poll() command at least once/hr.

That’s what I do on my end and I’ve never experienced any auth errors.

My 2 cents.

Yves -

I do poll, once every 10 minutes. But I still from time to time find the app locked out with an authentication error.

It’s one of those “impossible to debug” things that you can’t figure out why it happens after the fact…

How do you poll on a regular basis?

Hello sgonsalves,

if you don’t use my MonitorAndSetEcobeeHumidity smartapp (maybe you don’t have a humidifier or dehumidifier connected to ecobee) , then use a smartapp named pollster. There are many versions of it, look at this thread for more details:

Bye for now.

1 Like

@yvesracine I installed your humidity app to control my HRV, it looks like it will only trigger the to cycle HRV if the humidity levels outside are less than inside in addition to checking if the outside humidity is too high, which is great during the cooler months. However I’d also like to be able to simply cycle my HRV for an adjustable time period every hour to bring in outside fresh air (regardless of humidity levels), something the Ecobee lacks. Would you mind helping me with that?

Hello sgonsalves,

As you may know, HRV/ERV control are very limited at the ecobee thermostat, and even more limited in the APIs, as I’ve discovered recently, see below thread:

Ecobee just told me that the next October’s API release will enable more HRV/ERV control, see below thread:

In the meantime, you can use the MonitorAndSetEcobeeHumidity smartapp and enable ‘Free Cooling’ by setting it to true. However, you’d need to hook up your HRV as a dehumidifier (in your ecobee thermostat’s installation settings), and not as a HRV (b/c APIs don’t allow any control).

P.S. You’d need to grab the ecobee device and MonitorandSetEcobeeHumidity latest code at as I’ve made many changes recently to avoid
creating hold events by using new setThermostatSettings functions.


1 Like

Thanks again @yvesracine I’ll grab the latest code. Can’t believe it has taken Ecobee so long to not only enable greater HRV/ERV control from the thermostat itself, but also via the API! Hopefully it will finally be addressed next month.

Hmm, looks like your humidity app has changed quite a bit. How do I make it work with an EMS thermostat? I see the code says “to change ecobee.iterateSetHold to ecobee.setHold” for EMS, but I don’t see ecobee.iterateSetHold being called anywhere, only iterateSetThermostatSettings. I changed my equipment settings to be a dehumidifier instead of a ventilator on the thermostat itself.

Yes, I’ve changed the code to avoid creating hold events when changing the thermostat Settings.

In case of an EMS thermostat, I believe that there are 2 options:

  1. in the iterateSetThermostatSettings(), just replace ‘registered’ by ‘managementSet’ in the 1st parameter…This should work now as I made some changes to better support EMS thermostats.

Or, if it doesn’t work, you can also do the following (just as for setHold)

  1. replace iterateSetThermostatSettings(…) by setThermostatSettings(‘123456789012’, …)
    ‘123456789012’ is the serial number of your thermostat.

Let me know if the 1st option works now. I’m kind of curious.


Method #1 worked, #2 didn’t. The app turns the HRV on with Free Cooling set to True, but not with the furnace fan. Is there a way to get the fan to also turn on with the HRV? That’s how it works when I manually turn it on at the thermostat and the only way I use my HRV. Thanks!

Hi, to turn on the fan AND the dehumidifier/HRV, you’d need to use iterateSetHold (instead of iterateSetThermostatSettings) as turning on the fan requires a hold event.

To do so for an EMS thermostat:

iterateSetHold(‘managementSet’,coolTemp, heatTemp, ‘on’, [thermostatSettings], null)

where thermostatSettings are the settings you can copy as is from the iterateSetThermostatSettings calls in MonitorAndSetEcobeeHumidity.


Ok, thanks I’ll try that out tomorrow. Does the “Free Cooling” mode run continuously? It seems to be for me. Is there a way to make that happen for 20 minutes each hour (or variably) also?

Yes, it does as long as the temperature outside is cooler than inside or outdoor humidity is lower than inside.

Otherwise, you may want to modify the code to do a runIn with a delay to turn it off.



DO you think its possible to access the smart plugs without a thermostat? All I want is to access them going forward via smartthings to turn them on/off. Ecobee3 new UI doesn’t support them, so I am trying to get smartthings to support them directly via zigbee


Hello Greg, the smartplugs are using a different zigbee profile than smartthings, so it’s not possible to do it via smartthings: Smartthings uses the HA zigbee profile; Ecobee uses the Smart Energy profile (SEP)…


Does anybody in this thread with an Ecobee3 that is running off the new web site know when the “My Apps” and the “Home IQ” will be launched? I see nothing about it anywhere and without the “My Apps” functionality, you cannot integrate with ST as far as I know.

I had a number of the Smart SI units on the old website with integration with ST but when I purchased a new Ecobee3 and switched all my thermostats over to the new one, they all went into the abyss with no way to third party integrate them as the My Apps was not implemented.

Any ideas what is going on? This is kind of disappointing to upgrade a unit and get less functionality.


A similar question was asked on the ecobee’s developers forum. Please see ecobee’s response below


Thanks Yves, I thought you might know

Just a FYI for those that had older thermostats, who perhaps purchased a new Ecobee3 and then moved all your thermostats to the new web interface once you had access to it. If you had a developer account (i.e. previous ST integration), then even though it says it will close your account when you remove all your thermostats, it will not if you have a developer account. This allows you to grab the API key and complete the process of adding the Ecobee thermostats back into ST even though the My Apps portion of the new website is currently not deployed. I was just able to do so. Works on the Si and the 3 thus far.