Ecobee Fan control

I’ve been looking at a few integrations for my 2 ecobee3s and smarthings.
What I’m looking for is this scenario.
If the temperature difference between 2 sensors is >x degrees, then switch the fan from auto to on. (Also turn my z-wave ceiling fan on)
If the temperature difference is < x degrees, turn the fan back to auto.

I would also like to set if the temperature upstairs (ecobee3 thermostat 1) is different than downstairs (ecobee3 thermostat 2) turn on the ceiling fan.

Any ideas on the best way to do this?


Rule Machine can have a condition that compares two temperature sensors with x offset. So from there you could easily construct this.


Thanks @bravenel
I’ll look into this,
Looks like Rule Machine might help me do what I couldn’t get IFTTT to do, since it doesn’t support variables.


Noob question,

Is it possible to install Rule Machine by linking to the Git repo, rather than copy and pasting code for each update?

Yes, if you get your Github integration going in the IDE.

I’ve linked it to the default smarthings repo.
How do you add others?

Rule Machine can do the logic, and would work for my ceiling fan.
But it looks like there is not a Ecobee fan toggle endpoint though.
@yvesracine, @StrykerSKS, is there a way that you can send a fan command to ecobee.

Hi, @Ammonfif, of course, it can be done thru a custom smartapp (if Rule Machine cannot do it at the moment).


As in a custom smartapp that someone has built, or one that would need to be built?

Hi Ammonfife, It needs to be built…To my knowledge, there is no such smartapp at the moment.

Although, it might be possible to do it thru Rule Machine.


P.S. My Ecobee device can toogle your fan mode without any issue.

It’s available at my store:!store/tc3yr

And, come with many smartapps at my github:

And I’m in the process of adding the fanMode support to the Open device type that I released. The stubs are all there, I just need to connect it all up.

I should have this completed by next weekend at the latest, maybe even as early as today. We already have over 80 people using the device type and I’ve been continuously adding features and fixes since I launched it a few weeks ago.

If you want to try it out, it is freely available here with full install instructions:

1 Like

Here is how I did it:

  • Go to My SmartApps in the IDE
  • Click on Settings
  • Click on Add new repository
  • Owner=bravenel, Name=Rule-Trigger, Branch=master

That should get you hooked up with Rule Machine via the IDE


I think I am doing this now. The weather has been pretty nice here so it’s hard for me to test this properly, but I think I have it.

In order to accomplish this, you will need StrykerSKS’s Ecobee smart app and device type referenced above.

Anyway,here is my rule. If you see any logic errors, let me know.

Upstairs >= Downstairs +3
Upstairs <= Downstairs -3

True = fan on
False = fan auto

BTW; there is not a Resume action, so I am just returning the fan to auto. this holds it in auto. Not a big deal since I have the default resume setting to resume on next scheduled program change, in the StrykerSKS Ecobee smart app. However, I may try a custom command in RM and see if I can get a resume command to work.

I will post later to let you know how testing goes. It’s the South, the weather is bound to change soon.

OK, so I couldn’t wait, and decided to try out the custom command now. Works perfectly (so far).

For the custom command, I just added the resumeProgram command from the Ecobee3 (no param) and execute that in my Actions For False section.

Upstairs >= Downstairs +3
Upstairs <= Downstairs -3

True = fan on
False = custom [resumeProgram]

1 Like

So far, so good. It got frosty last night so I got to see my rule in action. Worked like a charm.

Now, my example is for keeping the temperatures within three degrees. I chose this because my upstairs is often considerably warmer than my downstairs. If I went with a straight match the fan would run all the time. A three degree offset is comfortable enough and more economical, for me anyway. So, what happens is; if the temps are off by more than three degrees, the fan comes on. As son as they reach the three degree offset, the program resumes. So I never get an exact match in temp unless it occurs naturally.

If you want to match exactly, then I expect this rule should cover it:

Upstairs != Downstairs +3

True = fan on
False = custom [resumeProgram]

1 Like