Ah, good to know. Think i’ll do the same as you and rename it. Thanks.
Because you need
Ecobee Thermostat version 1.2.11
You should note in the installation instructions that is specifically tells you to DELETE your existing Ecobee support (thermostat devices and smartapps) before installing my Suite.
And actually, so long as you choose the “Ecobee (Connect)” from the My Apps section of the SmartApps Marketplace, you should be good (it will overwrite the existing SmartThings version). But if you try to install the one in the SmartThings-supplied area, you will indeed get all hosed up.
I’m pretty sure that if you follow the instructions provided step-by-step, no matter what version you may have now, it will install correctly, since I know dozens of people have managed to install it correctly. Take one shortcut, though, and you’re on your own .
cool, I just updated and the C is gone now.
Thanks for the clarification.
UPDATE: Ecobee Smart Circulation, v1.2.2
Adjustments can now be configured to be executed based on the difference between the internal average temperature and the outdoor temperature. There are 6 ranges, and you can create an instance of Smart Circulation for each with different settings. The in/out difference ranges are:
- Less than -10 degrees
- Between -5 and -10 degrees
- Less than 0 but more than -5 degrees
- Between 0 and 5 degrees
- Between 5 and 10 degrees
- More than 10 degrees
Thanks to @intramural10 for the idea and the tuning/debugging.
The updated file can be installed on top of the previous version.
This is great! I like this idea of utilizing outside temperature to trigger different settings. I’m wondering if we can take some of the same logic and apply it elsewhere in the child apps? The one I have in mind is the open contacts. Sometimes you close the window because it’s getting too hot outside and need the air, and sometimes you close it because it’s getting too cold. However, the smartapp only has a single default mode that it triggers to. Perhaps we could use a similar logic to trigger the right heat/cool mode based on the delta from a target temperature variable?
I guess I don’t understand the use case here. The basic idea is that if a window is open, you probably don’t want to run heat OR cool, right?
I mean, if a window is open and it’s cooler outside than in, but you want the inside to be warmer, do you really want to run the heat, even though it probably will never compensate for the open windows?
Help me understand the use case, please.
Two example scenarios in the hopes of explaining myself more clearly:
You’ve had the windows open on a fall day, but the temperature outside is starting to drop, so you close all the windows. The open contacts app recognizes all contacts are closed, and checks the temperature outside vs the target temperature, and, realizing it’s colder outside than the target, turns on the heat.
You’ve had the windows open on a summer morning, but the temperature outside is getting a little too warm as you push through mid-day, so you close all the windows. The open contacts app recognizes all contacts are closed, and checks the temperature outside vs the target temperature, and, realizing it’s warmer outside than the target, sets to cool.
The current open contacts only allows for a single default mode, which is where the idea came from. Does that help?
Perhaps applicable to a “dumb” thermostat, but I don’t think these use cases apply to an Ecobee (or a Nest, for that matter).
For use case #1, doesn’t keeping your Ecobee thermostats in “Auto” mode during the spring/fall address it?
Again, maybe I’m missing something, but for #1, I don’t think that the fact it is cooler outside than the current Cooling Setpoint has any real effect on what the thermostat should be set to. In fact, if the inside temperature is higher than the (cool) target after I close the windows, I want the A/C on, not the heat - no matter how cool it is outside. And yes, I might need the Heat later that night (or if I left the windows open so long the inside temp is below my Heating Setpoint), but that’s why I set the thermostat to Auto.
In your 2nd use case, I think it’s even simpler - just leave your thermostat set to Cool (or Auto) in the summer. When you open the windows, it won’t run the AC (or the heat). It WILL run the fan (however), hence Smart Circulation so that you can control how long the fan runs if it’s warmer/cooler outside.
Respectfully: It still seems to me that whether you need Heating or Cooling is entirely dependent upon the internal temperature of your house. The fact it will get colder outside tonight (or warmer this afternoon) has no bearing whatsoever on whether you need Heating or Cooling right now…and Ecobee’s Auto setting is specifically intended to address those days where you might need heat at night and cooling during the day…
I’ve been caught up with other things so I have been following up on this.
I’m all up to date with your latest code and am still having this issue.
Is there anything I can provide to help figure this one out?
It appears to be a google problem - it is requesting temperature set points in Celsius when in Auto mode - it seems to work fine when in Heat or Cool mode. At least, that is what we have seen in the logs supplied by other users.
Turn on live logging, then try the Hello Google set temperature request while in Auto and while in Heat or Cool mode. Check what the logs show for the Google smartapp, ecobee (Connect) and the thermostat itself around the time you make the request to change the set point. Send me each of those logs, and I should be able to remove-verify that it is a Google problem.
Updated… I had set the Ecobee to Heat in the app but it didn’t work the first time (maybe it just took time to sync up)
When I said “Hey Google, set the bedroom to Heat” it changed to Heat mode
and then I said “Hey Google, set the bedroom to 72 degrees” it then worked.
So it does appear to only be an issue with Auto mode.
I’ve tried in Auto and Heat
I’ve also tried requesting different temps. “set bedroom to 74 degrees” “set bedroom to 72 degrees”
The output is always the same
13f97465-8788-4858-96db-64a87b1622c1 4:08:04 PM: debug Outgoing: [requestId:13219233936875714635, payload:[devices:[c5350f91-a89d-43e1-b91e-33b839f58380:[online:true, thermostatTemperatureAmbient:21.666666, thermostatHumidityAmbient:33, thermostatMode:heatcool, thermostatTemperatureSetpointHigh:21.11111, thermostatTemperatureSetPointLow:24.444445]]]]
13f97465-8788-4858-96db-64a87b1622c1 4:08:04 PM: debug queryDevice(c5350f91-a89d-43e1-b91e-33b839f58380)
13f97465-8788-4858-96db-64a87b1622c1 4:07:44 PM: debug Outgoing: [requestId:5363220728304270227, payload:[devices:[c5350f91-a89d-43e1-b91e-33b839f58380:[online:true, thermostatTemperatureAmbient:21.666666, thermostatHumidityAmbient:33, thermostatMode:heatcool, thermostatTemperatureSetpointHigh:21.11111, thermostatTemperatureSetPointLow:24.444445]]]]
13f97465-8788-4858-96db-64a87b1622c1 4:07:44 PM: debug queryDevice(c5350f91-a89d-43e1-b91e-33b839f58380)
Yes, from your logs, it seems that Google is clearly requesting Celsius temperatures for some weird reason, as with other users. Others are able to set temps correctly if tstat is in Heat or Cool mode, though, just not Auto. Weird.
Could you manually set the thermostat to Heat only, then try setting the temp again? I’d like to see if the log shows google is using Fahrenheit temps in that mode.
I may be able to hack it to convert the temps if I get C while the stat is in F mode for you. I hate such hacks, but it’s probably easier for me to make the change than for you to get Google’s attention.
It appears that Google doesn’t even try to send the info when it’s in Auto.
From what I’ve read this also affects the Nest.
Here’s what the logs show when it’s in Auto
13f97465-8788-4858-96db-64a87b1622c1 4:12:19 PM: debug Outgoing: [requestId:14032486951278282605, payload:[devices:[c5350f91-a89d-43e1-b91e-33b839f58380:[online:true, thermostatTemperatureAmbient:22.222221, thermostatHumidityAmbient:36, thermostatMode:heatcool, thermostatTemperatureSetpointHigh:20.555555, thermostatTemperatureSetPointLow:24.444445]]]]
13f97465-8788-4858-96db-64a87b1622c1 4:12:19 PM: debug queryDevice(c5350f91-a89d-43e1-b91e-33b839f58380)
Here’s what it shows when it’s in Heat mode
13f97465-8788-4858-96db-64a87b1622c1 4:13:09 PM: debug Outgoing: [requestId:2099977853225986136, payload:[commands:[[ids:[c5350f91-a89d-43e1-b91e-33b839f58380], status:PENDING]]]] 13f97465-8788-4858-96db-64a87b1622c1 4:13:03 PM: debug set to 69.0 (heat) 13f97465-8788-4858-96db-64a87b1622c1 4:13:03 PM: debug currentHeatingSetpoint: 69 currentThermostatSetpoint: 69 13f97465-8788-4858-96db-64a87b1622c1 4:13:03 PM: debug Mode: heat TemperatureScale: F 13f97465-8788-4858-96db-64a87b1622c1 4:13:03 PM: debug Set EcoTherm: Bedroom setpoint to 20.55555534362793 13f97465-8788-4858-96db-64a87b1622c1 4:13:03 PM: debug handleExecute()
I have an updated Ecobee Thermostat DTH for you to try - email me and I’ll send it too you via return email:
storageanarchy at gmail dot com
Hey Barry, thanks for link to post in here. So quick recap, can’t delete ecobee connect from st app, deleting my thermostat and it shows back up after awhile. I wanted to start from scratch since my ecobee connect sounds like stock and your dth isn’t doing anything. I’m sure I originally just tried putting everything overtop.
That’s the last SmartApp I can’t delete. Ecobee connect deletes from there when other apps are gone but still in the other apps screen where you can update and edit and delete but it shows back up every page refresh.
If you are having trouble installing/removing this DTH, or if you didn’t follow the step in the instructions that suggests you should delete your OLD Ecobee support before installing this one, try this:
Delete any Helper SmartApps first.
- If you can find them from within the Ecobee (Connect) SmartApp, open each one and Remove it using the red Remove button at the bottom of each individual Helper SmartApp
- If you don’t find them under Ecobee (Connect), then you’ll have to remove them from within the IDE.
- Select My Locations, then smartapps. You’ll get a list of the running SmartApps
- Click Edit under your location name/logo
- Scroll down and use the delete link for each SmartApp
- DO NOT DELETE ECOBEE (CONNECT)!!!
Remove any Sensor Devices you may have
- If you can, deselect all your sensors from within the Ecobee (Connect) SmartApp
- Then, within the IDE
- Select My Locations, then devices. You’ll get a list of installed devices
- Select each Sensor device, then scroll down and click Delete
- Repeat #2 for Thermostat Devices
- Finally, go into Ecobee (Connect), scroll to the bottom and remove it
- If that doesn’t work, then use the IDE approach as in #1 above
Now, go back and make sure that you have copied over ALL of the 8 SmartApps and both of the 2 Smart Devices into your IDE, so that you have the latest copy. Publish them all “For Me”.
In the mobile app, Go to MarketPlace, SmartApps. Scroll all the way to the bottom and open “My Apps”. From there, run Ecobee (Connect).
From there, follow the instructions to:
- Login to your Ecobee account and grant permissions
- Exit, and re-enter Ecobee (Connect)
- Select the Thermostat(s) you want to use
- Select the Sensor(s) you want to use
- Select any preferences changes you want
- Exit Ecobee (Connect), and it will create the device handlers you need for #3&4.
- Any time later, go back into Ecobee (Connect) and create any Helper SmartApps you want to use.
Note: You do NOT create the Ecobee DTH’s directly. You also DO NOT create the Helper SmartApps from the Marketplace, even though they may show up there. Both are ONLY created using Ecobee (Connect).
You don’t really need to delete the code from the IDE, just (re)install the latest version from my repository.
That said, the error message tells you that you have not yet deleted every instance of ecobee Smart Room from your running SmartApps. You should be able to find that in the IDE, as discussed in the prior answer.
If all else fails (and it still may), you’ll need to send a note to SmartThings Support asking them to delete any of the old Ecobee devices and/or Helper SmartApps before you try to re-install.