Official Ecobee 3 Integration

Well, then you are already on the official device/SmartApp.

The SmartApp itself if called Ecobee (Connect) and is installed behind the scenes when you do the device setup. To open it again just go to your Thing, click the Gear and select Guided Setup.

About to head to happy hour so think I will. I’m a thread related note I am leaning towards getting an ecobee3 so this has been an interesting read.

Since March last year[quote=“cldlhd, post:198, topic:21636, full:true”]
About to head to happy hour so think I will. I’m a thread related note I am leaning towards getting an ecobee3 so this has been an interesting read.

edit: nevermind…

Anyone know of a way to set the Thermostat in Home/Away mode when i arm/disarm using the official app ?

@BatraD, the ST thermostat DTH (Device Type Handler) does not support the basic
methods to set the ecobee thermostat to Away or Home.

You’d need a DTH that supports the basic methods.

Fortunately, I’ve developed a custom DTH that does that and much more. Since V5, My ecobee device can even provide some custom tips based on your actual indoor/outdoor conditions at your home.

As you may know, I ask for a modest contribution due the amount of time required to expose all rich ecobee APIs to ST. My Ecobee device is also more resilient than the ST stock device as far as cloud-to-cloud connections between ST and ecobee.

You can find My ecobee Device at my store:


P.S. Another alternative would be to use IFTTT but the change won’t be reflected immediately in the ST stock device as it’s different integration and they do not talk to each other.

thanks… I’m aware of your app and also @StrykerSKS’s implementation… Unfortunately i keep loosing connectivity to my eCobee with the 3rd party apps and that throws my keen vents off as i’m using the ecobee sensors to drive the vents…

Well, I can guarantee you that with my DTH, you will not lose your ecobee connections (unless the ST or the ecobee servers are down of course). My Ecobee device is far more resilient than the ST stock device because of the different mechanisms I’ve put into my code.

Personally, I’ve not lost my connection since the beginning of the year (the last time we had serious issues with the ST platform). And, I’ve seen 6 ecobee thermostats and many remote sensors (8) in a single user location not losing their connections either. You have to properly configure the app for that workload.

I’ve been constantly improving the DTH’s resilience since I created it:

  • Contrary to the ST stock device, it does not use any scheduling to renew the auth tokens

  • It uses less state variables. If you want to know the impact of state variables, read the following:

  • It now uses the latest async requests to avoid timeouts.

If you don’t believe my words, just read the feedback from my contributors in the My Ecobee device thread.


P.S. I have 16 smart vents controlled via My Ecobee device and my “ecobeeSetZoneWithSchedule” smartapp, and I just forgot about them. They work in a reliable manner without me having to think about it.

I just got an ecobee in. I have to send it back due to 4 lines of dead pixels, but I have another coming on Tuesday. I’ll keep this one until then.

You’re right, the 30 minute activity reading after any motion is not ideal. And the native ST integration doesn’t really get you much.

I might want to do something more sophisticated than ecobee’s follow me. I don’t think I want to do mere averaging. Averaging might be fine if the motion active time wasn’t so long. . . .

Something more powerful would be nice.

Agree. It would be nice if for example in sleep mode it only used the remote sensor in the bedrooms. Hopefully I am not tossing and turning enough for it to actually detect occupancy. The remotes do not seem to be that sensitive.

I use the comfort settings to resolve that problem. Based on the routine of my household, I unclude or exclude sensors based on time of day in a comfort setting. For example at night, I’m only really concerned with the temp in bedrooms so only bedroom sensors are used durning that time. In the morning different sensors are used based on our morning routine.

I don’t use follow me at all, I agree that the interval for motion detection is just too long.


That’s why I created My Ecobee device and some apps that reproduce the “follow me” feature but with better response times AND with any ST connected sensors.

There are 2 smartapps that allow to reproduce the “follow me” features of the ecobee3:

  1. MonitorAndSetEcobeeTemp (available at my github)

  1. ecobeeSetZoneWithSchedule (which is a paid version with many more features: zoning, alternative cooling, fan/temp adjustments based on outdoor thresholds, etc.

EcobeeSetZoneWithSchedule is especially nice as you can configure the occupied threshold on a room by room basis.

I briefly looked at MonitorAndSetEcobeeTemp. I have a quick question. In sleep mode, I won’t be making enough motion to keep the bedroom sensor a priority. But Ecobee will allow you to exclude certain sensors in various mode. So, like PhilB said above, you can have it, say, ignore the downstairs sensor when you are asleep. If I use MonitorAndSetEcobeeTemp, will I lose this ability? It looks like it will average all my sensors.

I think I see how to make it work with ecobeeSetZoneWithSchedule, but that app looks like overkill for my simple house with just one steam boiler. Perhaps that’s what I need though.

H @asmuts,

The smartapp makes setpoint adjustment to the ecobee’s climates (scheduled programs) based on indoor/outdoor temp & motion sensors. The smartapp then creates a temporary hold that can be reverted when the indoor/oudoor conditions change.

MonitorAndSetEcobeeTemp will not make any setpoint adjustment when the ecobee climate is Away or Sleep.

For more details and sreen shots, refer to the ST community wiki:

All my smartapps are described here:

I saw that section in the code where it balks if the mode is sleep or away. But I was a little confused about how this would all work. What sensors will the Ecobee use in Sleep mode to determine the temperature? I take it that it will only be able to use Ecobee sensors, right? Correct me if I’m wrong, but the smart app doesn’t give Ecobee access to the all the ST devices, it merely changes Ecobee settings given the apps access to ST devices.


In MonitorAndSetEcobeeTemp, there are 2 different types of indoor sensors that can be used:

  1. Motion/Temp sensors (such as the ecobee Remote Sensors exposed to ST, Aeon Multisensor, SmartSense, Iris Motion/Temp Sensor which have both capabilities, etc.) that be used for dynamic adjustment.

Those sensors can be used to be dynamically added to the average temp calculation (only if there are motion in the last x minutes, x being customizable).

  1. Just plain temp sensors that are always taken into account for the avg temp calculation (it can be any ST connected temp sensors).

See below

dynamicPage(name: "tempSensorSettings", title: "Indoor Temp Sensor(s) for setpoint adjustment", install: false, nextPage: motionSensorSettings) {
	section("Choose indoor sensor(s) with both Motion & Temp capabilities to be used for dynamic temp adjustment when occupied [optional]") {
		input "indoorSensors", "capability.motionSensor", title: "Which Indoor Motion/Temperature Sensor(s)", required: false, multiple:true
	section("Choose any other indoor temp sensors for avg temp adjustment [optional]") {
		input "tempSensors", "capability.temperatureMeasurement", title: "Any other temp sensors?",  multiple: true, required: false

So, if you want some temp sensors to be used on a permanent basis for avg temp calculation, you need to enter them in input 2). Otherwise, if you want to use occupancy for dynamically adding them in the avg temp calculation, you use input 1).

EcobeeSetZoneWithSchedule (the paid version) is even smarter as it allows you to configure rooms, zones, and schedules. For each room, you can configure a regular temp sensor and a motion sensor with a customizable threshold in minute for detecting occupancy. The occupancy can be used or not on a room by room basis.

It also allows you to create zones (virtual or even physical ones when combined with smart vents) during the day for heating/cooling your home.

  • Ex. You may want to take into account only your upstairs bedrooms for the avg temp calculation in the evenings.

  • Ex2. During the day, you may want to use only the basement and your 1st floor.

For more details refer to

There are also some screen shots and more details at the ST community wiki:


This is very helpful. Thank you. I’ll get your device handler tomorrow and experiment.

Your code works nicely. I modified the logging a little in the monitor and follow. I wanted some sms, but not as much as you get with details enabled. However, I also wanted more logging. . . .

The only issue I’m having is with the Ecobee. I have it mounted in the large plate. I think this is making it run a little warm. Using an IR thermometer, I see that the bottom slot is 68. But the walls around it are about 65.5. This is throwing everything off. The Ecobee is producing heat.

When I get the new one, I’ll test it using the small mounting plate. . . . It will be nice to have some more sensors so I don’t have to rely on the thermostat’s thermometer. The WST seem very accurate and the graphs are great. But I guess for sleep mode, I’m still going to need another Ecobee sensor.

Hi @asmuts,

To get more accurate readings, please follow this thread:


EDIT: If you do not want push notifications, in all of my smartapps, you can just respond “No” to the following question:

		input "sendPushMessage", "enum", title: "Send a push notification?", metadata: [values: ["Yes", "No"]], required:

I understand. I want push notifications and lots of logging. I added a variable called “detailedLogging” to give me a little more control. Your code is clean and easy to modify. Thanks.

I just saw the mode go into sleep when a hold was set by the app. It looks like the hold would be set until morning if you have the hold setting configured to stick unless manually cancelled. I changed it to cancel on mode change.