Overall, ours was a pretty mild winter this year. But there were a few weeks in early February that were really, really cold. On those mornings, I was sure glad to have the Remote Start feature on my vehicle. And, of course, it's very handy in the summer too -- even in the mornings, our garage gets
ridiculously hot during the Dog Days of Summer. So, I've become a little spoiled by the technological marvels that are Remote Start and Automatic Climate Control. And since Home Automation is all bout being spoiled by technology, it seemed only natural to marry the vehicular technology to the HA technology. So, this week I set out to do just that.
Our overhead garage doors were already being monitored and controlled by Indigo using a Phidget Interface Kit -- two of the inputs are wired to limit switches that close when the doors are closed, and two of the outputs are wired in parallel with the wall-mounted opener switches. So, having Indigo open the appropriate garage door as needed was the easy part.
To actually remote-start the vehicle, I first needed an additional compatible key fob -- I wasn't willing to sacrifice one of the two I had. I located one online for $49.00 -- in line with the cost of an inexpensive Insteon module. After updating the vehicle's on-board computer to work with the new transmitter, I was finally willing to hack into one of the old ones. I removed the circuit board from the key-fob enclosure, connected the necessary wires, and mounted it in a plastic project box.
I added a power receptacle to the box so I could connect a 3V DC wall-wart to power the board -- I hate changing batteries. Finally, I mounted the whole mess to the under-side of a shelf on the front wall of my garage and connected the switch wires to the normally-open contacts of two I/O Lincs.
Each I/O Linc is programmed for momentary action, with the first one (the door-lock button) staying ON for two seconds (the minimum) and the second one (the remote-start button) staying ON for three seconds.
A simple external AppleScript checks to see if the appropriate garage door is open (and if not, opens it), then activates the I/O Lincs in the right sequence, and the truck starts every time.
- Code: Select all
tell application "IndigoServer"
try
--check to see if the 2-Car Garage Door is closed
set isClosed to (the value of variable "Zone03_status" = "CLOSED")
if isClosed then
log "Opening 2-Car Garage Door..." using type "Start Suburban"
--open the Garage Door
openGarageDoor("2-Car")
--wait for the Garage Door to open
delay 12
end if
--check again to see if the 2-Car Garage Door is open
set isClosed to (the value of variable "Zone03_status" = "CLOSED")
if not isClosed then
--make a log entry that the door is open
log "2-Car Garage Door open. Starting Suburban..." using type "Start Suburban"
--Start the Suburban. Press the Door Lock button for 2 seconds
set binary outputs of device "Suburban Door Lock" to {true}
--Wait 3 seconds
delay 3
--press the Remobe Start button for 3 seconds
set binary outputs of device "Suburban Remote Start" to {true}
else
--make a log entry that the door did not open
log "Unable to start Suburban. 2-Car Garage Door closed." using type "Start Suburban"
end if
on error errMsg number errNum
set retVal to (errMsg & " (" & errNum as text) & ")."
log retVal
end try
end tell
Since I leave for work at the same time every day (M-F), a schedule was easy to set up. On Saturdays, it takes a rest, and on Sundays the time is adjusted for Church departure.
I also made a simple Control Page, so I can initiate the process via Indigo Touch as needed.
The To-Do List includes interfacing with iCal to abort on vacation days, and to use the NOAA Weather data to abort when the temperature is mild.
It may not be the most sophisticated part of my setup, but it's my favorite... so far.