Official Ecobee 3 Integration

Is there more I need to add? Sorry for the questions, but I’m new to this

@umpmanjoe, Can you scroll down?

It looks like you took a picture of the upper part only.

1 Like

OK, im an idiot, I didnt realize you scroll down. But how come when I press the arrow buttons, nothing happens

@umpmanjoe, you can see in the recently tab if the command was executed properly… There may be exceptions if the ST-ecobee connection needs to be reset.


P. S. I think that Smartthings is doing some kind of maintenance on the ST-ecobee connection pool as I have a lot of exceptions myself… So, be patient and try again later

I am new to ST and was able to utilize the code here to integrate my Ecobee 3. Thank you for such a fantastic program! Can anyone share thoughts on how I could turn on the fan if two temperature sensors are x degrees apart (i.e. 4 degrees higher upstairs vs downstairs)? Let’s say my upstairs sensor is showing 79 degrees and my downstairs temperature is 75 degrees. Would it make sense to operate the furnace fan until the difference in temperatures of the two sensors are less than, for example, 2 degrees? Would something like this be difficult?

@zosobao, the following smartapp has some capabilities built-in. You can specify a max temp adjustment within a schedule and if the temp differential between all your indoor sensors is too big, then the fan mode settings will be overridden with the fan mode settings associated to the schedule. Otherwise, the default fan settings associated to your ecobee program/climate (ex. Home, Away, Awake, Sleep) will be set.

This smartapp has been designed for ecobee users, and can override ecobee’s program (heating/cooling setpoints, fan settings) based on some indoor/outdoor conditions. It also shares the same foundation & features as this generic one:

Please support the developer!

Thank you. Unfortunately I am unable to understand the setup within the application. It might take me some time to figure it out, as I guess I would be assigning the outside temperature input as the reference for which all the other temp sensors would compute their thresholds from.

I did want to comment back and thank you for your suggestions.

@zosobao, the average temp calculation is not based on outdoor temp sensor, but on the indoor temp sensors inside the zone that you define based on the rooms configuration

The following are 2 distinct features:

  • Ability to adjust your main thermostat’s settings (every 5 minutes) based on an outdoor temp sensor (optional)
    ** coolModeThreshold: set the thermostat to ‘cool’ mode according to a given outdoor temp threshold
    ** heatModeThreshold: set the thermostat to ‘heat’ mode according to a given outdoor temp threshold
    ** moreHeatThreshold: increase the heating setpoint according to a given outdoor temp threshold
    ** moreCoolThreshold: increase the cooling setpoint according to a given outdoor temp threshold
    ** moreFanThreshold: set the thermostat’s fanMode (‘on’, ‘auto’, ‘circulate’) according to a given outdoor temp threshold

  • Average temp calculation based on all room temp sensors inside the zone so that heat/cool settings are adjusted at the main thermostat even if your rooms are far away from it


@yvesracine, I have just gone through set up again. I assigned my temp sensors to rooms and then rooms to zones. It would appear that I cannot compare the temps in the two zones to each other and run the fan based on a temperature difference between the two zones. The schedule portion of setup appears to only look at the outside temperature to determine whether more heating or cooling is desired in a zone? This is where I stumble. I only want a difference of temperature, let’s say 3 degrees, to determine whether the furnace fan should be operated to cause equilibrium between zones. I don’t understand how I can accomplish that within the setup.

@zosobao, if your only requirement is to control the fan based on a temp differential between rooms, then the smartapp is not really designed to do only this.

It was designed to provide a multi zoned heating/cooling solution for your home, so a much greater scope.

For each room, you associate a zone inside your home where you want to control the heating/cooling for your comfort (based on indoor sensors and vents). The zones are applied inside your home when a schedule is run.

So for example, during the nights “schedule”, the smartapp will use only my upstairs temp sensors to average out the desired temp setpoint in the upstairs zone (which is composed of all the bedrooms). It will not used my temp sensors downstairs as they are not relevant for the “nights” schedule.

The setup is a bit complex because of the room by room configuration required to create the zone(s) and schedule(s) to control the zones.

But, on top of doing the zoned heating/cooling, it can do the following (as far as the fan settings are concerned):

  • Override any programmed fan settings at ecobee with a new fan mode when the temp differential inside a zone (i.e. collection of rooms) is too big (not between 2 zones).

As an example, let’s say you have many indoor temp sensors inside a zone and the temp differential for that collection of rooms is too wide (above max temp adjustment defined in the associated schedule), then the fan mode at ecobee will be overridden with the new fan mode defined for the schedule.

  • Override any programmed fan settings at ecobee with a new fan mode when outdoor temp is above a certain threshold.

So, if you have programmed ecobee to ‘fan auto’’ during the day (Home program), and one of the above condition is met, then the fan mode can be changed to “fan on” during the “Home” schedule defined in the smartapp.

I hope that these explanations will give a clearer picture of what the smartapp can do for you.

1 Like

@yvesracine Thank you. I believe I understand. In my case - here is my setup based on your instructions. I have 4 rooms, each with their own temp sensor. I have included all 4 rooms in one zone. To this zone, I have added a schedule. I identify which Ecobee program to associated this schedule and then within it would only utilize the “Max Temp Adjustment” and “Set Fan Mode” portions of the program. For the “Max Temp Adjustment,” I am utilizing 4 degrees. I have “Fan Mode” set as “on”.

So, if the average temperature difference between all 4 sensors is 4 degrees or greater, the fan will turn to “on”, otherwise the fan mode is the same as my Ecobee Program? Am I now understanding correctly? If so, perhaps my 4 degree threshold is too high or I should utilize a few number of sensors.

1 Like

Yes, this is it in a nutshell…

When I return to my SmartApps, there is what looks like a ‘play’ button. When I click it, it changes as if it is doing something and then returns with the “play” icon. Is the app working with that “play” icon visible?

@zosobao, the smartapp is scheduled to run every 5 minutes (and applies the zone settings when needed).

Otherwise, you may want to run it upon request by just pressing the “arrow” or play button.

The Schedule within the smartapp will then run if it matches the ecobee program scheduled at that time.

To have more notifications when the smartapp is running, in the last page (“Other Options”), please set “Detailed Notifications” to true and/or use live logging at:


@zosobao, just to make sure that all your input parameters are set correctly.

If you want to override the default ecobee fan settings only when there is a big temp differential within your zone, please make sure
to do the following:

(1) Set this parameter to true (in the first page)

	section("Enable fan adjustment based on indoor/outdoor temp sensors [optional, default=false]") {
		input (name:"setAdjustmentFanFlag", title: "Enable fan adjustment set in schedules based on sensors?", type:"Boolean",
			description:"optional", metadata: [values: ["true", "false"]],required:false)

(2) And make sure to not enter any value (leave it blank) for this one in the schedule page:

		input (name:"moreFanThreshold${indiceSchedule}", type:"decimal", title: "Outdoor temp's threshold for Fan Mode", required: false,
			defaultValue:settings."moreFanThreshold${indiceSchedule}", description: "Optional")			                

(3) And set this parameter to true as well (in the schedule page):

		input (name:"fanModeForThresholdOnlyFlag${indiceSchedule}", type:"Boolean",  title: "Override Fan Mode only when Threshold is reached(default=false)", 
			required: false, defaultValue:settings."fanModeForThresholdOnlyFlag${indiceSchedule}")


Thank you. I intend to try it out this weekend. I tried it for a moment yesterday. It took my ecobee into a hold mode on its schedule and did turn the fan on. I had to leave and could not wait for it to turn off the fan and see if my ecobee would resume its schedule.

@zosobao, just as FYI,

Please update to the latest version at github as I made some changes…


Please support the developer :grinning:


Random comment here.

I bought an Ecobee3 because of your integration work w/Smartthings.

That says it all.

@Drewbert34 and others, I invite you to send an email to and tell ecobee exactly this…

They need to be aware of my work and your feedback!

Thnx for your support.

DONE DEAL! I just finished up