Whole House Fan Control

I recently completed a house cooling system based on a whole house fan (QC ES-3100), a WEMO switch, and an Ecobee. It is one of the first automation projects I’ve done that even my wife thinks is “useful”.

Here is my rule:

rule FanControl
          Item Auto_Fan_Control received update ON or
          Item Outdoor_Temperature received update or
          Item Hallway_Temperature received update or
          Item Desired_Temperature received update

        if (Auto_Fan_Control.state==ON)
            val Number targetTemp = Desired_Temperature.state as DecimalType
            val Number outdoorTemp = Outdoor_Temperature.state as DecimalType
            val Number indoorTemp = Hallway_Temperature.state as DecimalType
            val targetHi = targetTemp + 0.5
            val targetLo = targetTemp - 0.5
            val indoorTempPlusOne = indoorTemp + 1
            if (HouseFan_Switch.state==ON)
                if (outdoorTemp>indoorTempPlusOne)
                    sendCommand(HouseFan_Switch, OFF)
                else if (indoorTemp<targetLo)
                    sendCommand(HouseFan_Switch, OFF)
                if (outdoorTemp<indoorTemp && indoorTemp>targetHi)
                    sendCommand(HouseFan_Switch, ON)

It automatically turns the fan on when the outdoor temp is cooler than the indorr temp and then turns the fan on and off to hold the indoor temp within 0.5 degrees of the target point, which comes from a setpoint in the sitemap. It works great!

Next step is to use a dedicated outdoor temp sensor rather than relying on the Ecobee, which just gets it from a weather service API. I have noticed that this tends to turn the fan on later than it needs to.


Nice work @dzimmanck

Question, is the fan you are controlling a wall-type fan which blows air outside and then some air intakes elsewhere? Or can air con units pull in outside air?

Hey @craigh,

The QC ES-3100 fan is installed in the attic. It included an insulated louvered inlet that installs in the ceiling with the fan motor housing suspended off the rafters. The idea is air gets pulled in from open windows and is then exhausted through the roof vents. This has the addition benefit of cooling and ventilating the attic.

I have thought about installing dedicated air inlets so that I did not need to open windows but there are 2 drawbacks to this:

  1. I could not find any residential products that provide a high-R value air inlet with insulated louvers.
  2. Using open windows as the air inlet allows you to control which room gets cooled off first.

I really like your UI. Where is that from?

The image is actually from the Ecobee “HomeIQ” cloud app. It looks good, but it has a terrible scrolling/zoom UI, especially when viewed from a tablet.
I plan on trying to duplicate it using InfluxDB and Grafana so I can overlay more data and no have to rely on the Ecobee servers.

Nice work! I can’t imagine how many hours it could take for me to make a control system for a whole house fan. But now I’m thinking about creating one.
We have QuietCool QC CL-3100 (just another model) and we use RANCO ETC-111000 for temperature control. After reading this thread, I’ve decided to try to create a cooling system by myself.

Great! Please share your results.

I just tackled this on my house. Here is a summation of how I chose to implement it.


  1. Whole House Fan, 2-Speed OFF - High - Low.
  2. Controlling switch is a pull string.
  3. 120VAC Power.
  4. Pulls about 3 Amps on High speed at steady state. (Meaning it can pull somewhere around 3x that when starting. rough estimate approx. 10 Amps will be pulled into the Fan Motor when first engaged.


  1. Add control via Z-wave device.
  2. Keep existing manual control.
  3. Safety, avoid software control of fans to avoid possible damage/house fire etc.
  4. Spend minimal $$$.


  1. Fan has 2 coils, one for each speed. Only 1 coil should be powered at a time to avoid damage/fire.
  2. 2 Switches are needed to keep OFF-LOW-HIGH functionality.
  3. Z-wave switches/smart switches in general are not designed to be used on inductive loads, some form of protection for the switches will be needed.
  4. What ever i use needs to be able to handle possibly little more than 10 amps of current @ 120V.

Use relay’s to fix/mitigate most of my concerns. By using relays I am able to protect my Z-wave device from the initial current pull when the motor first energizes, as well as the EMF collapse when the fan turns off, also by connecting 2 relays in the right way I am able to control the High/Low speed fan control in hardware and reduce the chances of energizing both coils at the same time (near 0 I hope). So I no longer have to worry about my z-wave devices burning out or fusing allowing me to get a cheaper device reducing the price, as well as fulfilling the requirement to keep the speed control out of software. My original idea was to use the Fibaro Dual switch that has the ability to have only 1 of the switches activated at a time - its more expensive and far as I can tell the only z-wave device that offers it, but it has a 6 amp rating.

Parts List:

  1. $38 - ENERWAVE Z-Wave Plus Dual Relay Module. Cheapest New Duel relay I could find at the moment.
  2. $13 - Tnisesm 2PCS Power Relay AC120V Coil, 30A SPDT(1NO 1NC) 120 VAC with Flange Mounting and 10 Quick Connect Terminals Wires Mini Relay NT90-AC120V-10X
  3. Box to house electrical components $3
  4. Total Investment $54 + a few hours of my time. (so like a bigilloin dollars, :stuck_out_tongue: I really value my time.)

Install new relays and dual switch up in the whole house fan near the pull switch itself.
Connect the inputs for each switch to the outputs of the pull chain. In order to have a ON/OFF functionality switch 1’s output will connect to the input on the relay that controls on/off state. Connect the HOT wire to Com port of relay 1, this is the power source (don’t connect the output of the z-wave switch 1 as this would cause the current to flow through the switch, which is what we don’t want. Use a separate connection to the HOT line, to bypass the switch. This 2 Pack of relays come with 2 output ports, one NO (Normal Open) and one NC (Normal Closed). Meaning if the control input is off (no voltage) then the power coming in the COM port is sent to the output port label NC, and vice versa so when voltage is present on the control input the output port NO will supply the power from the COM port.

Since I want the fan to run on 2 of the 3 possible states of this system I’ll need to connect the output of relay 1 that is controlled by switch 1 from the port NC to the COM port of relay 2 that is in charge of High/Low speed. I then connect to relay 2 the Low Fan speed wire to NC, and the High to NO (the wires that go to the fan directly). Order isn’t really important, unless you care about what speed is first after OFF when using the pull chain. This should allow for an almost guarantee that only 1 coil will be energized at a time. The 2nd switch on the duel relay will control the input control for the 2nd relay.

Key Points:

  1. Power is sent from relay 1’s NC port to relay 2’s Com port when ever switch one is not active. (2 of the 3 states allow power to relay 2)
  2. Speed is controlled by the 2nd switch which i visualize as High On/Off. So if High is off, Low is on by default.
  3. Fan speed is always set too Low or High, and Power to the speed relay is controlled by the On/Off switch to achieve the desired Off - High - Low control preserving all the features of the fan.

Only weirdness I’ve seen so far is the fact that the manual pull chain’s state can not be changed by the z-wave device. (example) if the pull chain’s states are in the order of, OFF-HIGH-LOW-OFF… and the pull chain was last set to the OFF position, then a z-wave command is sent to turn the Fan on low. Now the chain is in state OFF and the z-wave switch is in LOW, if I pull the chain I would normally expect the fan to progress to the next state, which would be OFF, but when I pull the chain the fan instead switches too High which is something I don’t expect/have experienced in the past. I feel the issue is minor, its resolved with an additional pull of the chain or 2 at most to get the desired state. And will probably just take a little time to get used to.

I am pretty happy with my results, I was able to achieve the goals I wanted. I hope you find this information useful.

Note: This solution can be used for more than just a 2 speed fan (a 3 speed fan!), I have come to realize. Any application where you want to use a low power device to control a large power device, can be solved using relay’s, you will just want to make sure you get relays that can handle the load your wanting to control, and determining how many outputs (speeds/zones/etc) you want to make smart, the more outputs the more switches you will need to control them, and relays to connect to.