Whole House Fan 2.0

This blog post is a follow-up from QuietCool Whole House Fan

Four years later, I still love my whole house fan. It’s one of the best things I put into my house for the money. In particular, I love:

  • fresh air rolling through the house
  • reduced demand for air conditioning in the late afternoon when electricity is expensive
  • a cold bedroom at night which helps me sleep better in the summertime

I wanted more control over how I use the fan to maximize its benefit and minimize the downsides. To do that, I needed to make my whole house fan “smart.” QuietCool, the vendor, makes an add-on module that does make the whole house fan Wi-Fi compatible, but the feature list falls short and is expensive to boot. What challenges can a wifi switch help resolve? If I leave the fan running too long (after the sun comes up), it sucks in warmer air reducing its benefit to minimize air conditioning. If I get up early, I often have a torrent of cold wind in the bathroom.

A basic QuietCool installation uses a dual-gang junction box with a timer and a speed selector. The timer can run the fan 1, 2, 4, or 8 hours or continuously. The second switch controls the fan speed. I generally leave the fan speed on high. I can imagine use cases where lower speed makes sense, but I’ve not used my fan that way. Also, four hours isn’t enough time to cover the overnight, and eight hours is often too long.

I went with a Leviton Wi-Fi switch (not a dimmer) to control the whole house fan to fix this issue. I’ve chosen Leviton as my switch of choice, but many vendors offer similar features. The Wi-Fi switch integrates with Google Home and IFTTT for some pretty cool features.

Adding a Wi-Fi to a QuietCool whole house fan

Replacing QuietCool’s timer with a Wi-Fi switch was pretty straightforward. The consistent challenge with Wi-Fi switches is that they require a neutral. Standard switches control the flow of power to a device. Switches with any smarts require a neutral as the switch itself requires power to run the smarts. Often older homes don’t have neutrals by default.

Since the QuietCool switch does require a neutral, upgrading to a Wi-Fi switch means replacing the QuietCool timer with the Wi-Fi switch. Replace each colored wire to its corresponding place on the Wi-Fi switch. Leviton colors each of the screws for line (black), neutral (white), load (red), ground (green).

The junction box will likely be full so pack wires in carefully. Consult a professional should you have questions about the switch, the wiring, or the junction box.

Configuring the Wi-Fi Switch

Once I have the Wi-Fi switch connected to the network, I needed to do two things: give the switch a name and set an optional timer. I chose the name “whole house fan.” If the name has the word fan, Google Home configures the device and its UI as a fan. I can then issue commands like “turn on all the fans” if I want to control more than one device.

Secondly, I wanted to set a fallback timer so that the fan never runs indefinitely. Leviton provides the ability to set a timer on many of their devices. I set the switch to automatically turn off after nine hours. That way, the fan would never suck in large quantities of warm air should I forget to turn it off in the summer. 

Benefits of Google Home

Now that my fan is connected to a Wi-Fi switch, I can control it alongside all other devices connected to Google Home with Google Assistant. I can issue commands such as:

  • turn on the whole house fan (when I’m in bed and forget to turn it on)
  • turn off the whole house fan (when I’m getting up and want to stop the torrent of cold air coming from the bathroom)
  • run the whole house fan for 90 minutes (for use in the winter during those rare moments of 70 degree days)
  • turn off the whole house fan 20 minutes after sunrise (to maximize the draw of the coolest air)

The other benefit to Google Home is that I can script a few operations together to get more out of my fan. In the summertime, smoke often blows in, or inversion layers trap poor quality air. Sometimes the air doesn’t get cool enough in the hottest days to make running the whole house fan effective.

I’ve given the fan the name Altamont to distinguish the script from calling the whole house fan directly.

When I run the script, Google home lets me know the air quality, the temperature at 6 AM, and then kicks on the house fan. If the air quality isn’t good or it’s not cool enough during the night I can simply reply back “Hey Google, turn off the whole house fan.”

Warm spots and cold spots

I open two windows on opposite sides of the house, which generally covers the main area of the house and one bedroom. Other rooms in the house trap warm air throughout the night. I want to run the fan in the HVAC system to rebalance the stream of cold air more evenly throughout the house.

Using the Nest hardware directly, I could set up a schedule for the HVAC fan to run at regular intervals throughout the night. I wanted to be a bit more targeted about when I run the HVAC fan. I only want to run the HVAC fan when the whole house fan runs throughout the night.

IFTTT (if this, then that) is a service that enables simple automation of various services. As I mentioned in the other post, IFTTT sends me a text message when it’s cool enough outside to run the whole house fan. IFTTT Pro enables users to be more creative with how and when these automations run.

IFTTT Pro has a filter feature that allows me to run the HVAC fan only when the whole house fan is running. Let’s take a look to see how this works:

The if statement is fairly simple. I use the date object to call my applet at 5 AM every morning. To decide if I need to run the whole house fan I need to run queries to the whole house fan switch. This requires pulling when the switch was turned on and when the switch was turned off. Leviton does not offer an API to tell me if the switch is on at the current time.

We then do filter magic which I will get to in a bit. Lastly, the action we want to run is turning on the HVAC fan. Fifteen minutes is a bit of a misnomer. It actually runs the duration of the fan timer set up in the Nest configuration. For me, I set that to one hour.

The challenging part is knowing when to run the HVAC fan. That’s the magic in the filter code. IFTTT uses JavaScript-based filters. That code is below.

var fanOff = new Date(MyLeviton.historyOfDeviceTurnedOff[0].Date);
var fanOn = new Date(MyLeviton.historyOfWiFiDeviceTurnedOn[0].Date);

if (fanOn < fanOff) {

In the first two lines, I’m getting the most recent time the switch was turned on and turned off. Leviton returns the times as a string (a list of letters and numbers), not as an actual date that the computer can understand. The statement “new Date(” converts the string into a computer-recognized date. The [0] nomenclature returns the most recent time on or time off in the array.

The if statement compares the last time the fan was turned on or turned off. If the fan was turned off more recently (and thus it’s actually off) we simply skip running the HVAC fan. If the fan is running, that last line of code would be skipped in the action of turning on the fan in my applet would run.

What’s next?

With IFTTT Pro, we can do more fancy things to turn off the fan automatically if the temperature rises above a certain threshold. We can automatically turn the fan off with an IQ Air device if the air quality degrades to a particular level.

Since the whole house fan is in an addressable Internet device, there is no limit to the integrations you can set up! Happy integrating!

One thought on “Whole House Fan 2.0

Add yours

Leave a Reply

Powered by WordPress.com.

Up ↑

%d bloggers like this: