AirScape Whole House Fan

From Universal Devices, Inc. Wiki
Jump to: navigation, search

Introduction

This article is dedicated to controlling an AirScape whole house fan like the 1.7, 2.5e, 3.5e, 4.4e or 5.0e with an ISY. When connected to your network, these fans can be controlled from a browser and even better, a network resource. With clever programming, you can turn off your a/c when it is turned on, suggest using the fan based on inside and outside temperature, create a more powerful timer, use buttons on any keypad to control the speed and timer, and turn off the fan if it gets too cold inside.

Control of the fan via keypad is done with 2 buttons, one dedicated to speed and one to the timer. For both speed and the timer, a normal press increases, a double press decreases and a long press turns the fan off.

TODO

  • Start on high speed to reduce inside temperature, decrease speed gradually to low.
  • Automatically start the house fan if the outside and inside temperatures are right, a suggestion has been sent and some windows have been opened.
  • Disable the house fan if the outside temperature is very low.
  • Allow use case where you just turn the fan on w/o any timer.

Keypad Setup

You'll need two keypad keys, I use C and D. They'll need to be set to toggle on mode so you only get single press on, double press fast on and long press fade on.

Scene Setup

You'll need a scene for House Fan Timer and House Fan Speed so we can easily control the keypad button lights. I use C for the speed and D for the timer, but you can use whatever you want. Just add all the buttons that will control the fan to this scene.

State Variables

sHouseFanSpeed 0 0
sSuggestHouseFan 1 1

sHouseFanSpeed holds the current speed of the fan for use in programs. sSuggestHouseFan is used by the suggest program to minimize the frequency of suggestions.

Integer Variables

iHouseFanTimer 0 0
iHouseFanTimerIncriments 30 30
iHouseFanTooCold 68 68

iHouseFanTimer is used for the fan timer maintained by the ISY (instead of using the fan's built in timer). iHouseFanTimerIncriments controls how many minutes it increments or decrements on button pushes, I feel 30 minutes is a nice number, but maybe you'd prefer 60. iHouseFanTooCold is used to shutdown the fan if the temperature inside gets too low, 68 is pretty cold.

= Network Resources

WHF speed up http://whf:80/fanspd.cgi?dir=1
WHF speed down http://whf:80/fanspd.cgi?dir=3
WHF off http://whf:80/fanspd.cgi?dir=4
WHF add hour http://whf:80/fanspd.cgi?dir=2

These are all self explanatory, but WHF speed up increases the speed, WHF speed down decreases it, WHF off turns it off and WHF add hour adds an hour to it's built in time. I don't use the built in timer because it has no way to configure the increments nor can you decrease the timer. Of note is that you can only increase or decrease the speed, you can't just pick the speed you want. If you want the highest speed, you have to WHF speed up five times.

Programs

Fan Off

This program turns the fan off, sets the keypad button leds to off, resets the fan speed and timer values to zero, turns on my thermostats and runs the timer controller's if path.

Fan Off

If
       Control 'Keypad C' is switched Fade Up
    Or Control 'Keypad D' is switched Fade Up
    
Then
       Resource 'WHF off'
       Set Scene 'House Fan Timer' Off
       Set Scene 'House Fan Speed' Off
       $iHouseFanTimer  = 0
       $sHouseFanSpeed  = 0
       Set 'Downstairs Thermostat' Mode - Auto
       Set 'Upstairs Thermostat' Mode - Auto
       Run Program 'Timer Controller' (If)

Else
  - No Actions - (To add one, press 'Action')

Initialize Minutes

This program helps take care of the case where you press the increase speed button when the fan is off by setting the timer to your default increments. Note that the program is disabled so that it only gets run by other fan related programs.

Initialize Minutes - [Not Enabled]
 
If
       $iHouseFanTimer <= 0

Then
       $iHouseFanTimer  = $iHouseFanTimerIncriments

Else
  - No Actions - (To add one, press 'Action')

Initialize Speed

This program helps take care of the case where you press the increase timer button when the fan is off by increasing the fan speed to 1. Note that the program is disabled so that it only gets run by other fan related programs.

Initialize Speed - [Not Enabled]

If
       $sHouseFanSpeed <= 0
 
Then
      Run Program 'Speed Increase' (Then Path)

Else
  - No Actions - (To add one, press 'Action')

Speed Decrease

This program decreases the speed of the fan when the C button is double pressed. It is also bound such that it will only work if $sHouseFanSpeed is between 1 and 5.

Speed Decrease

If
       (
            Control 'Keypad C' is switched Fast On
       )
   And (
            $sHouseFanSpeed >= 1
         Or $sHouseFanSpeed <= 5
       )

Then
       $sHouseFanSpeed -= 1
       Resource 'WHF speed down'
       Set Scene 'Inside / House Fan Timer' On
       Wait  1 second
       Set Scene 'Inside / House Fan Speed' On

Else
  - No Actions - (To add one, press 'Action')

Speed Increase

This program increases the speed of the fan when the C button is pressed. It is also bound such that it will only work if $sHouseFanSpeed is between 0 and 4. It runs the minutes initializes program in case you're just starting the program and runs the timer controller to enable the timer if it wasn't already. It also turns the keypad lights on.

Speed Increase
If
       (
            Control 'Keypad C' is switched On
       )
   And (
            $sHouseFanSpeed >= 0
         Or $sHouseFanSpeed <= 4
       )

Then
       Run Program 'Initialize Minutes' (If)
       Run Program 'Timer Controller' (If)
       $sHouseFanSpeed += 1
       Resource 'WHF speed up'
       Set Scene 'Inside / House Fan Timer' On
       Wait  1 second
       Set Scene 'Inside / House Fan Speed' On

Else
  - No Actions - (To add one, press 'Action')