Archive

Posts Tagged ‘Home Automation System’

HGTV’s New Mexico Dream Home Sweepstakes

January 3rd, 2010 Greg Smith 8 comments

I considered not writing about HGTV’s 2010 Dream Home giveaway because I don’t want it to get any attention. The home is located in San Pedro Overlook, New Mexico near Sandia Park. It’s on the other side of the Sandia Mountains from Albuquerque. I really want to win this house so I don’t want anyone knowing about it. I came to the realization that I’m unlikely to have any impact on it’s promotion.

D9C53E59-43F4-410A-8EC9-A00A251A9031.jpg

The custom-designed 3,900-square-foot HGTV Dream Home 2010 will mix southwestern architecture with modern design. Created with the bold, innovative ideas, architecture, art and design that make HGTV Dream Homes so exciting and unique, it includes three bedrooms, three bathrooms, a home office, gourmet kitchen, home theater and a guest casita. The amazing home site is nestled in the gaze of the majestic San Pedro Mountains with breathtaking scenery and a plethora of outdoor activities. Nearby, the historic towns of Santa Fe and Albuquerque offer an international art scene, amazing cuisine and a rich, multicultural heritage.

I could totally dump nearly everything I own and move into the house as it is. I would be happy to commute to Albuquerque. The only thing I would need to do wire it for my home automation system. And figure out how to pay for the taxes.

Please do not enter the contest.

Ahwatukee Arizona’s House Of The Future

September 28th, 2009 Greg Smith No comments
SafariScreenSnapz001.jpg

When I was a kid growing up in Arizona one of the few memories I can recall is visiting the Ahwatukee Arizona “House of the Future” with Boy Scout troop 456. The house was built in 1979 at a cost $1,200,000 dollars. It was a demonstration for a planned community. It appears to have lost money every year it was sold.

Surprisingly there is no Wikipedia entry on the subject but I did find a June 23rd, 1980 article from InfoWorld on Google Book Search.

The house was designed by Charles R. Schiffner of the Frank Lloyd Wright Foundation. Built over 30 years ago it featured an advanced home automation system with five Motorola 6800 processors linked together. The system was designed by Motorola who was the major employer in Arizona at the time.

It’s important to note that the Ahwatukee home is not a computer controlled home, rather the home permits the tenant to to be in complete control of his environment, making the important decisions which will then be carried out by the microcomputer system.

That’s a quote from Charles E. Thompson, some marketing genius who seems to want to keep people from being scared of the computer controlled house. It’s also worth mentioning that 30 years later, I have been able to reproduce everything that house was capable of for a few thousand dollars and that such home automation capabilities have not yet caught on although the energy saving technologies have.

The house still exists today at 3713 Equestrian Trail, Phoenix, Az and can be seen on Google Maps. Although they gave tours back in the day for $3, I can’t seem to find any information on who the current owner is or even pictures of the interior on the internet.

A Quick Review Of The Roomba 530 That I Should Have Bought A long Time Ago

July 11th, 2009 Greg Smith No comments

It’s hard to believe but as much effort as I have put into my home automation system I have not had an automated vacuum cleaner. I have always been skeptical of the Roomba’s ability to clean floors adequately. That mostly came from a few friends and reviews I read online.

I have been considering trying one out for myself for sometime and when woot.com had a refurbished Roomba 530 model for $129 I decided it was time give it a try.

My skepticism was unfounded. The Roomba 530 does an excellent job of cleaning my floors. I have been amazed at the amount of lint the Roomba has picked up (no more lint tumbleweeds floating across the floor). It also cleans up all the pieces of plastic and twist ties that the cat uses as toys. I am also impressed with how well it handles itself across uneven surfaces and untangles itself.

It probably helps is that my floors are all solid, no carpet or rugs and my house is pretty small. So far I have been able to have it clean the living room, kitchen, part of the hallway and bathroom in one cleaning session, or mission as the Roomba users call them. I think that the Roomba could also clean the guest bedroom across from the bathroom but so far it has some difficulty finding it’s way.

I have an automatic cat that kills all the bugs in the house and now I have an automatic vacuum that cleans up after the cat. Since the Roomba 530 model doesn’t have scheduling capabilities, I plan to purchase a serial port bluetooth module that will allow me to remotely control the Roomba from my home automation computer. The computer can keep track of how often the Roomba cleans and send it off on cleaning missions when the house is unoccupied.

Weeder Board Integration With Indigo Using Applescript And Serial Bridge

May 6th, 2009 Greg Smith No comments

Weeder Technologies makes nice I/O board that can be used for a variety of purposes. I have a WTDIO-M that I’ve been experimenting with for use with my home automation system. To interface with Indigo I use Serial Bridge and it output data to variables in Indigo. I had a poorly written script and never bother to make it production worthy.

A user on the Perceptive Automation message boards shared a nice generic script that interfaces with the analog and digital boards and outputs the data to Indigo variables.

This scripts requires a trigger action to run at a set time (1 hour) to poll the analog board using the following code.

tell application "Serial Bridge"
     request reading from WT Analog I/O
    
send to source "wtdio" string "BS" & return
    
end tell

For the digital board, the a Auto Zeroize function needs to be performed one a day with this code in a trigger action.

tell application "Serial Bridge"
     AutoZeroize WT Analog I/O
    
send to source "wtdio" string "BZ" & return
    
end tell

Below is the script that is used with Serial Bridge.

on MyProcessSerialData(connectionName)
    tell application "Serial Bridge"
        wait for data from source connectionName to count 1
        
set whichWeeder to read string from source connectionName to count 1
        
if whichWeeder = "A" then digital I/O
            
            
capture the remaingin two character word from the Weeder Module
            
set WeederResponse to read string from source connectionName to count 2
            
            
Log it in its untraslated state
            
log "The Weeder says… " & "A" & WeederResponse using type "Sample"
            
set restOfString to read string from source connectionName
            
            
Identify the which contact the Weeder is reporting on.
            
set ContactName to "Contact_" & first character of WeederResponse as text
            
            
Convert the Contact state to state of the Contact
            
set ContactState to second character of WeederResponse
            
if ContactState = "L" then
                set ContactState to "CLOSED" as text
            else if ContactState = "H" then
                set ContactState to "OPEN" as text
            end if
            
Log the the tranaslated state.
            
log "That translates to… " & ContactName & " is " & ContactState & "."
            
Get a timestamp from the OS.
            
set time_stamp to do shell script "date +%Y-%m-%d\ %H:%M:%S"
            
            
tell application "IndigoServer"
                log ContactName & " is " & ContactState & "."
                
                
Create if neccessary a state varable name after the Contact, then set the state.
                
if not (variable ContactName exists) then
                    make new variable with properties {name:ContactName, value:ContactState}
                else
                    set value of variable ContactName to ContactState
                end if
                
                
Create a dynamic variable name (just because we are going to call on it several times)
                
set ContactTimestamp to ContactName & "_LastEvent_TimeStamp"
                
                
Create if neccessary a timestamp varable name after the Contact number, then set the timestamp.
                
if not (variable ContactTimestamp exists) then
                    make new variable with properties {name:ContactTimestamp, value:time_stamp}
                else
                    set value of variable ContactTimestamp to time_stamp
                end if
            end tell
            
        else if whichWeeder = "B" then analog I/O
            
            
delay 0.2
            
set wtaio to read string from source connectionName
            
log "Analog I/O: " & wtaio
            
set measurement1 to word 1 of wtaio as integer
            
log "Word 1: " & measurement1
            
            
tell application "IndigoServer"
                set AutoZero to word 1 of wtaio
                
if AutoZero = "Z" then
                    log "AutoZeroize WT Analog I/O"
                else
                    set value of variable "wtaio1" to word 1 of wtaio
                    
set value of variable "wtaio2" to word 2 of wtaio
                    
set value of variable "wtaio3" to word 3 of wtaio
                    
set value of variable "wtaio4" to word 4 of wtaio
                    
set value of variable "wtaio5" to word 5 of wtaio
                    
set value of variable "wtaio6" to word 6 of wtaio
                    
set value of variable "wtaio7" to word 7 of wtaio
                    
set value of variable "wtaio8" to word 8 of wtaio
                    
log "Reading WT Analog I/O"
                    
                    
adjust scaling for integer degrees with a single decimal place
                    
set t1 to (get value of variable "wtaio8" as string)
                    
set t1Last to last character of t1
                    
set t1Len to length of t1
                    
set t1 to characters 1 thru (t1Len - 1) of t1 as string
                    
set value of variable "TempBasement" to t1 & "." & t1Last
                    
set value of variable "TempBasement" to t1
                    
set t1 to (get value of variable "wtaio1" as string)
                    
set t1Last to last character of t1
                    
set t1Len to length of t1
                    
set t1 to characters 1 thru (t1Len - 1) of t1 as string
                    
set value of variable "TempOutside" to t1 & "." & t1Last
                end if
            end tell
        end if
    end tell
end MyProcessSerialData

—————————————————————————
on startCommunication(connectionName)
    tell application "Serial Bridge"
         initialize Serial Bridge; 5 contacts into Switch Mode
        
        
send to source connectionName string "ASI" & return
        
delay 0.2
        
send to source connectionName string "ASJ" & return
        
delay 0.2
        
send to source connectionName string "ASK" & return
        
delay 0.2
        
send to source connectionName string "ASL" & return
        
delay 0.2
        
send to source connectionName string "ASM" & return
        
delay 0.2
        
        
make other ios into outputs to prevent false triggering
        
send to source connectionName string "AHA" & return
        
delay 0.2
        
send to source connectionName string "AHB" & return
        
delay 0.2
        
send to source connectionName string "AHC" & return
        
delay 0.2
        
send to source connectionName string "AHD" & return
        
delay 0.2
        
send to source connectionName string "AHE" & return
        
delay 0.2
        
send to source connectionName string "AHF" & return
        
delay 0.2
        
send to source connectionName string "AHG" & return
        
delay 0.2
        
send to source connectionName string "AHH" & return
        
delay 0.2
        
send to source connectionName string "AHN" & return
        
        
log "INITIALIZED" using type "Error"
        
        
repeat while true
            try
                set maxTimeoutDelay to 8947848 103.56 days (hex 0×00888888)
                
with timeout of maxTimeoutDelay seconds
                    my MyProcessSerialData(connectionName)
                end timeout
            on error number errNum
                
                
if errNum is -1712 then
                    log "timeout waiting for serial data" using type "Error"
                else if errNum is -1708 then
                    log "AppleEvent not handled" using type "Error"
                    
return fatal error; exit script processing
                else if errNum is -128 then
                    log "connection script aborted" using type "Error"
                    
return fatal error; exit script processing
                else
                    log "error " & errNum & " inside MyProcessSerialData()" using type "Error"
                    
return maybe fatal error; exit script processing
                end if
                
            end try
        end repeat
    end tell
end startCommunication

I have not yet implemented this applescript. If you want to know more, check out the thread on the Perceptive Automation message boards.

Congress Did Not Outlaw Incandescent Bulbs In 2012

December 24th, 2007 Greg Smith 1 comment

A lot of information on the intertubes on the energy bill passed by congress, like engaget, has incandescent bulbs banned by the year 2012. In fact congress did not specifically ban incandescent in favor of florescent technology or any technology. Trying to find a news source which actually reported the specifics was difficult, a article on thedailygreen.com has more information.

Under the measure, all light bulbs must use 25% to 30% less energy than today’s products by 2012 to 2014. The phase-in will start with 100-watt bulbs in 2012 and end with 40-watt bulbs in 2014. By 2020, bulbs must be 70% more efficient.

They also say that florescent bulbs meet the 70% standard. What happens to bulbs higher than 100 watts? Scientific American had this to say

About two dozen categories of light bulbs are exempt from the U.S. law’s efficiency requirements, including oven and refrigerator bulbs, candelabra lamps, plant lights, replacement traffic signal bulbs and the summer necessity — the yellow bulb that doesn’t attract insects.

Althought they will have a tough time meeting the 70% standard in 2020, incandescent are far from dead. I’m all for more efficient bulbs, but I am not a fan of the current compact florescent technology. I spent a small fortune on dimmable CFL bulbs only to be left with a pile of dead CFLs of which most lasted less than a year. I am not impressed with their dimming ability either (all of my switches are dimmable as part of my home automation system).

Whatever happens, incancesdents will get more efficient and CFLs and LEDs will get better/cheaper, and I will be happy to replace them with whatever works best. It may not matter anyways, 2012 is the end of the world.

Arduino Board And Applescript For Home Automation

June 3rd, 2007 Greg Smith 1 comment

I just ordered a Arduino USB Board from Spark Electronics. I plan to use it with tinker.it’s Applescript Proxy program to use with Indigo and my home automation system. I have a Weeder board, but I’ve been too lazy/busy to figure out how to program it properly. This looks to be much easier. Plus it’s open source.

Home Automation Equipment Failures

November 4th, 2006 Greg Smith 1 comment

Once you get your Home Automation system up and working the way you want, you start to become dependant on many of it’s features. In my living room, I don’t have a wall switch to turn on the lights. I have a wireless palm pad, but I rarely use that because the motion detectors (also wireless) usually turn those lights on for me.

Last week I came home from work and none of the lights came on. After a few hours of troubleshooting I find I’m getting errors in Indigo, “undefined byte from w800rf interface.” The” w800rf interface” is the W800RF32A, a wireless receiver that connects to the computer via serial port, or in my case a Keyspan USB to Serial Adapter and it receives wireless X10 signals.

Is the W800RF32A bad? Is it a issue with the serial adapter? Is it a driver issue? I used a terminal program and can see that I’m getting data from the W800RF32A, I just don’t know if it’s the correct data. I don’t want to spend $70 on a new W800RF32A only to find out it’s some other component. For now I’ve got a plugin device that will send wireless X10 commands to the powerline, but it only works on one house code and doesn’t work with security devices.

That’s not the only problem with my system. I moved a lot of my switches to Insteon several month ago, but I still have several X10 devices in the house. For some reason I was not able to change or get their status via the computer. This happens with X10 sometimes but the signal issues go away after a while (one of the reasons I’m getting away from X10). After a month it became clear that there was something else going on. Thanks to a hint from the Indigo message boards, I determined that the X10 part of the PowerLinc V2 interface’s had died. Smarthome sent me a replacement this week and sure enough X10 is functional again.

The Home Automation system works good, when it works. Right now it’s not working like I want and it’s annoying.

NOAA Weather Script

October 30th, 2006 Greg Smith 1 comment

I’ve made some changes to Karl Smith’s NOAA Weather Script (revving to 1.1) for use in Indigo. Karl’s script is nice because it uses free NOAA weather data that they make available via XML. Since I don’t have my own weather station, this will get me close enough to getting the weather data needed for my Home Automation system to make decision.

My changes include:

  • Changing the observation time to be a applescript friendly format.
  • It’s now an attachment and can be run using the function GetNOAAData().
  • It auto generates the trigger to run the function every 15 minutes. Just create startup action with the GetNOAAData function and that’s all that should be needed.

In my next revision I would like to make the data pull a little more intelligent by having it keep track of the average time between observation time so it’s not overtasking the NOAA servers.

You can download this script here: NOAA Weather Script.scpt.zip

Other attempts at downloading weather data:

Good Bye X10, Hello Insteon

August 14th, 2006 Greg Smith 3 comments

It’s been a while since I wrote about my Home Automation system. Since moving in to this house I’ve been focused on other things than HA, but I have managed to get it working at a minimum level. The use of Insteon devices has also helped things along.

X10 is, of course, the 20+ year old power line networking protocol.For me, X10 is pretty much dead. I’ve almost completely switched out all my X10 devices for Insteon devices. Primarily due to the fact that X10 is slower and more prone to signal loss. This week I switched out the bathroom light switch and the front porch light switch because the computer wasn’t able to reliably change their status, where as they were working just fine weeks before. For no apparent reason X10 devices seem to do this despite the fact that I have filter on nearly everything. The Insteon website says the following:

INSTEON is a robust, redundant dual-mesh network that combines wireless radio frequency (RF) with the home’s existing electrical wiring. INSTEON is less susceptible than other single band networks to the kind of interference and noise commonly encountered within the home. INSTEON leverages the latest digital technology to create a true peer-to-peer mesh network. Because all INSTEON devices are peers, they do not require network supervision, so complex network controllers and routing tables are not required.

Insteon devices are also cheap, compared to their X10 counterparts. I recall a original X10 Switchlinc dimmer cost nearly $50 (seem to be cheaper now), where as a Insteon SwitchLinc V2 lists for $39.99. I’ve been able to find them for nearly $10 a piece. Smarthome also has ICON products, they are cheaper alternaitves to the SwitchLincs. An ICON Dimmer Switch has less features but costs $24.99. If you can live without the features its a good deal.

I know there are other protocol out there that try to do the same, I’ve not tried them because the software I use, Indigo, doesn’t support them. I suspect one day it will support all the alternatives. For now I’m quite happy with Insteon.