Audrey Keeping It Real (and Cool)

Audrey was first conceived to help me keep the house under control while saving me time, mental bandwidth, and money. The obvious first use is to user to control scenes, like movie-time or dinner-time. When I want movie time for example, Audrey will turn some lights on in the family room at 50%, turn off the kitchen and patio lights, set the hallway at 20% (so guests can find a bathroom),and in the future, even do things like select the movie library in Media Center. When it’s bed-time, Audrey turns on the bedroom and bathroom lights for 10 minutes to let me get ready for bed, such a wake-up call for the next morning, dims the lights to 20% before eventually turning off all the lights in the house (except for nightlights) automatically. While this is convenient and time-saving because I don’t have to remember all those settings (Audrey just does it automatically), it doesn’t necessarily reduce my carbon footprint. The real magic happens when she starts making some decisions on her own.

Audrey the Miser

Last year, I taught her to watch certain lights in the house and if they are on for too long with no motion in the room, she’ll turn them off automatically to save electricity. Recently, I taught her to set the thermostats based on certain triggers. For example, when I wake up in the morning, I run the “wake up” event which turns off any unneeded lights and fans, sets the front thermostat to 83°, and the back thermostat to 85°. When in guest mode, she will set both thermostats to 81° since there is more activity in people in the house. When ready for bed, she takes care of all the lights and the fans but also sets the thermostats up for sleeping.

To take this a bit further, I have also taught Audrey to manage the ceiling fans in the house. I’m able to keep the temperatures in the house a little bit warmer because ceiling fans keep the air flowing. I instructed Audrey to turn on certain ceiling fans when it’s warmer than 80° in any part of the house, which is 3° or 4° cooler than when the air conditioning turned on. Programmable thermostats are cool but adding Audrey to the mix allows for a more savvy miser of electricity use depending on certain criteria.

With these tips plus some additional things Audrey does for me, I have been able to reduce my electricity bill by 11% compared to the same time last year even though the cost of generating electricity has gone up. I hope to become even more efficient in the coming year.

More Posts:

Details for the Geeks

For the tech on how I did this, here are the ingredients:

I installed the thermostats but did not try to add them through the INSTEON plugin since they are not directly supported. Instead, I added the latest thermostat script from the Homeseer board to the script directory and allowed the script to add the external thermostat devices and created the appropriate virtual devices.

I created an .ini file to keep all my settings. Settings for when the fan should turn on or off, cool and heat temps, and temps for various scenarios.

[Mode]
tstatmode=Cool
[Fans]
fansetpoint=81

[Setpoints]
coolsleep=83
heatsleep=72
coolaway=85
heataway=70
coolhome=83
heathome=72

Then, created an event that triggers every 10 mins that runs the script below.

‘=============================================================
‘ fan.txt
‘ Checks internal temps and manages fans appropriately
‘ Lee Rogers 6:25 PM 3/17/2010
‘ http://digitallifediaries.com
Sub Main

‘ Setting constants
‘ ======================================
strINIFileName = “climate.ini”
fansetpoint= cInt(hs.GetINISetting (“Fans”,”fansetpoint”,”-1″,strINIFileName))
intFront = cInt(hs.DeviceStringByName (“Front TStat1-Temp”))
intBack = cInt(hs.DeviceStringByName (“Back TStat2-Temp”))

if hs.IsOnByName (“Family Room Fan Button”) then
hs.writelog “Fans”, “Automatic fan control is enabled”
hs.TriggerEvent “Poll Thermostats”
hs.WaitSecs 10

‘ Checking the Front TStat
‘ ======================================
if intFront >= intTemp then
hs.SetDeviceStatus “]5”, 2
hs.writelog “Fans”,”Front: ” & intFront & “, Setpoint: ” & intTemp & ” Turning on the Family Room Ceiling Fan”
else
hs.SetDeviceStatus “]5”, 3
hs.writelog “Fans”,”Front: ” & intFront & “, Setpoint: ” & intTemp & ” Turning off the Family Room Ceiling Fan”
end if

‘ Checking the Back TStat
‘ ======================================
if intBack >= intTemp then
hs.SetDeviceStatus “]12”, 2
hs.writelog “Fans”,”Back: ” & intBack & “, Setpoint: ” & intTemp & ” Turning on the Master Suite Ceiling Fan”
else
hs.SetDeviceStatus “]12”, 3
hs.writelog “Fans”,”Back: ” & intBack & “, Setpoint: ” & intTemp & ” Turning off the Master Suite Ceiling Fan”
end if

else
hs.writelog “Fans”,”Automatic fan control is disabled, not turning on fans”
end if

End Sub

One additional feature is that I wanted to be able to turn on or off Audrey’s control of this. So I reserved a button labeled “Fans” on a KeyPadLinc to show on or off. In the script, Audrey checks to see if this button is on or off and acts appropriately.

Questions or comments? Hit me below.


Leave a Reply