[DEPRECATED] Updated Ecobee Suite, v1.4.0 (Free)

I understand what you’re seeing - I’ll post an updated thermostat device as soon as I can (I’ve spent much of today trying to get my FiOS upload speed over 2Mbps…still not fixed, so I’ll post it no matter how long it takes, as soon as I can).

PS: the setHeatingSetpoint and setCoolingSetpoints are apparently called in that order, and when the coolingSetpoint is changed, it picks up the wrong heatingSetpoint. This is what I am fixing.

NB: Both setCooling… and setHeating… will enforce the delta configured on the thermostat (minimum between heat and cool). In setHeatingSetpoint, it will raise the cooling setpoint if the delta isn’t large enough, while setCoolingSetpoint will lower the heating setpoint to accommodate the configured delta. Depending upon your settings at the thermostat, this could be why you are seeing weird numbers. Or not…

My thresholds on all thermostats are 3 degrees and 68-74 falls well within this range. Also the setpoints seem to mostly work, it’s just sometimes that they don’t get set correctly. It’s not an issue that happens 100% of the time

Yep - it’s a race condition where the call to setCoolingSetpoint() is made before all the effects of setHeatingSetpoint() have completed, which is only an issue if the heating setpoint was changed.

In any event, I have a fixed version ready, if you’d like to test it for me tonight/tomorrow - I just need you to PM me an email address that I can send the file to as an attachment…

Strange indeed. Sounds like something’s wrong with the Android app, although I haven’t heard about this from anyone else. SmartThings support probably won’t help either, they don’t generally help out on 3rd party device handlers.

Is anyone else seeing this?

Can the smart mode helper also take into account if the ecobee is currently cooling for the if temperature is at or lower x temp; vice versa for if the ecobee is currently heating for the if temperature is at or greater temp x condition.

Maybe branch this helper to Smart Seasonal Mode…two cents.

Thanks for your reply Barry. Now I know what a Shard is. :grin:
It states in this post that I should be directed automatically to the correct Shard.

In any case, I followed your directions and the Apps are in the Device Handlers page, just “not published”

What am I missing?


1 Like

I think I got it figured out. I had to click on the device handler as if I was going to edit it and then click the Publish button up in the top right corner. They are now published :+1:


1 Like

Oh, sorry - I may have sent you on a wild goose chase (an American colloquialism :slight_smile: ).

To Publish apps:

  1. If you are using the github integration approach, there should be a “Publish” checkbox on the page that lists the repository files, but you may have missed it, so on to the manual approach:
  2. Go to My SmartApps in the IDE, and click on the file name of each of the SmartApps (each starts with “Ecobee Suite”). This will open them in the editor. Top Right you will see a button “Publish” - click that, then select “For Me”. Repeat for each of the SmartApps. Then go do the same thing for the two Devices under My Device Handlers.

Then, go to your mobile device, SmartThings App, MarketPlace, SmartApps, My Apps, and click on Ecobee Suite Manager - this app will guide you through the rest of the installation.

1 Like


As of 3:45pm EDT on March 20, 2018, Ecobee Suite Thermostat has been updated to version 1.4.05, and Ecobee Suite Manager has been updated to version 1.4.13

Changes in this release:

  • Fixed a race condition where consecutive calls to setHeatingSetpoint() immediately followed by setCoolingSetpoint() would result in the wrong heatingSetpoint being set. This situation can occur when using SmartThings Routines to set specific temperatures (instead of using the Helper SmartApps to change the thermostat Program). Thanks to @tscan for finding this one.

  • Optimized so that a call to setThermostatProgram() requesting Program change to Hold: XXX while the thermostat is already in Hold: XXX does not execute a redundant resumeProgram() followed by setting the Program to Hold: XXX again. Thanks to @ssilence for this suggestion.

  • Accelerated the display of updates to heating and cooling setpoints

  • Fixed an innocuous bug in a specific call to sendJson()

This update is recommended for all users, and both files should be updated together for the optimal result.


So unfortunately my automation that ran this morning did not set the house correctly again. The automation is set to 70/75, the coolingHoldTemp set correctly but the heatHoldTemp did not for some reason. I took some screenshots of the what the thermostat was sending when the automation ran this morning. I also took some screenshots of when the automation ran last night (11:30PM), and you can see that the wrong coolHoldTemp value is sent (760), but then right after the correct value is sent (800). When I ran the automation manually this morning, the correct heatHoldTemp and coolHoldTemp values were sent. Screenshots attached.

What are you using to set the temperature? Are you using a routine or one of the Helper Apps? I would greatly recommend not using the routine natively and set it with one of the helper apps. Plus, why are you setting the temp manually? Why not use the comfort setting programs? If you just want to set the temp manually you could buy a much cheaper and easier to implement “dumb” z-wave thermostat with no programming.

I am using a routine, just personal preference and WAF. I have different automations for different things. Sure these ones are just on a timer, but I have others for when we leave/arrive/etc. I had modes on the thermostat and people would mess with it and muck up the modes. I may just end up reverting back to the modes and putting an access control on the thermostat but I’d really like this to just work.

Okay. If you aren’t using the thermostat as intended then maybe you have to look for a different DTH.

What are your scheduled settings?

ResumeProgram would kick in your scheduled temperature Settings not sure if there’s a conflict.

Also which specific helper are you using?

He’s not setting the comfort settings. He’s setting hold temp through routines in ST.

I have two thermostats and have smartthings set to put them in away when we leave house, and resume schedule when we return. But for some reason when we return it doesn’t always put them both back on schedule, for some reason one of them is often still stuck in away mode. Not always, but enough to be annoying.

Any ideas? Or is this smart app not meant to handle two?

What are you using to resume schedule? The helper app? Which one? Routine?

This is a silly question… But you do have both thermostats selected in the helper app, right?

I use it with 3 Ecobees at one location, and 2 at the other, and have never experienced what you describe.

Is there any chance that you have multiple DTHs for the ecobees? In general, even that shouldn’t be an issue, but it could pose a problem if both tried to update the thermostats at the same time…

@tscan -

The problem here is that the Routine is calling into the thermostat twice, once to change the heating setpoint, and once to change the cooling setpoint. THe ecobee API requires both to be provided, and one call or the other is using the wrong temperature setting - the first call can have wrong cooling if the thermostat(s) where in a Hold condition already (because the “resume” didn’t make the round-trip to the thermostat and back again in time), and the second because the heatingSetpoint didn’t complete the round trip).

The solution is pretty straight forward - I hope to have it fixed today…

Hello Barry,

Thanks for providing this. I’m trying to setup your ecobee suite but I keep running into errors during setup saying “device is currently in use”. I previously had My Ecobee Device but I just uninstalled that because it runs into race conditions and is huge (it misses changes often for me). I have uninstalled the device and all the accompany smartapps associated with My Ecobee Device and I still get the error. Pls any idea what’s going on and how to fix this?