News about Home Automation
I delivered the following presentation to a meetup of the Quantified Self group in Seattle tonight. The evening was a fascinating fusion of medicine, technology and personal improvement. My talk fell between a session on personal genome sequencing and another on measuring the effects of coffee on blood pressure.
My home automation system has long had the capability to communicate with a Panasonic PBX. From the PBX it gets a flow of information about every phone call in or out the house. It also has a couple of caller-ID-to-serial-port devices that give it an earlier notification of incoming calls with Caller ID information. Using these various inputs it builds a database of every caller and every call (time of day, duration, person).
If it sees a call from someone not already in the database it will ask (via chat) for you to enter their full name. It then updates its database replacing the caller ID name (which is often useless, especially for mobile numbers). You can also query it using the natural language interface to ask about any calls you might have missed, or to lookup a number by time of day or by a fragment of their name. You can even ask complex queries like “who called last year on a friday after 5pm” and it will construct an efficient SQL query to get the results.
It also synchronizes all these contact records with Google Contacts.
But until recently my mobile phone hasn’t been part of the home automation system. Yes, I can use it as an input device for Google Talk, and yes, the house still notices when it comes and goes because the house tracks every device that ever gets an IP address on the local network, but other than that it really doesn’t ‘understand’ much about my cell phone.
But that’s about to change. Recently I installed Tasker on my Android phone and using that app I can now set up a whole variety of triggers that can report back to the home automation system information such as phone calls made or received, GPS location, wifi-located position, phone unlocks, shakes and more.
So I’ve extended the web interface on the Home Automation web server to accept POSTs from Tasker with updates from my cell phone. These are placed into a PubSubHub implementation that uses SignalR to distribute messages to any connected clients. The home automation server is itself a client of this service (it publishes information about every device change in the house and the PubSubHub shares those updates with any connected Web client) so you get real-time updates for what’s happening in the house on the house’s web page. Extending that architecture to include messages from remote devices like the Android phone was easy and I plan to use it in the future for other remote devices, such as a Netduino with a collection of environment and HVAC sensors on it (more about that later).
As to precisely what I’ll do with this new capability I have a long list of features to implement now:
1) Logging all cell phone calls to the same database, automatically building my contacts list
2) Tracking how long it takes to get to work by each of the various ways I can go, correlating that with the traffic flow information and automatically figuring out which route I should take for future trips
3) Shake cellphone to change music in the house
4) Adjusting the heating at home based on how far away we are (and thus the soonest we could get back)
5) Finishing up my semantic, location-aware shopping list (knows which store you are in and what you need there and presents it in order by aisle)
6) Automatically delivering notifications by the best possible means (talking on the speakers at home, XMPP, or by email if I’m in a different time zone)
So what does a smart home do at Christmas time?
Well, obviously it controls the Christmas lights, both the ones on the exterior and the ones on the Christmas tree and around the house. The indoor lights come on automatically at dusk and stay on provided the room they are in is occupied. Leave the house and they go off automatically. Walk back in and a strain-gauge under the living room floor detects your arrival and the tree lights and rope lights come right back on. Why waste energy lighting your Christmas tree if nobody can see it and why press light switches if you don’t need to?
The exterior lights come on at dusk and go off around 9PM. During holiday seasons the permanent Christmas lights along the eaves of the house come on automatically too. But the house also understands whether it has visitors. This isn’t something you need to tell it, it just figures it out by counting cars arriving and people coming in through the front door. If the house thinks it has visitors it will leave all the outside and Christmas lights on until the visitors have left. Again, there’s nothing you need to tell it, this is a ‘smart’ home not a ‘dumb’ home, and this is real ‘home automation’ not ‘home control’.
Another change that happens automatically during the holiday season is that the alert for a car coming down the drive changes to a subtle jingle bells sound. Normally the sound is the distant tweeting of birds and it’s played quietly so that visitors don’t even notice it. The residents of course know that there isn’t some bird tweeting outside but that a car is approaching the house. The dogs know the sound too and go running to the door barking. With the change to jingle bells sound the dogs quickly figure that one out too. The only problem is that now, when jingle bells are heard on TV they both run off barking to the front door! If only home automation systems were as easy to train as dogs! The driveway sensor by the way is one of those magnetic detectors buried about 120′ away to the side of the drive. It gives sufficient warning to prepare for a visitor before they even get to the front door.
One final change that happens automatically at this time of year concerns the music system in our house. My home automation software includes multi-channel audio playback through a zoned-audio switch. This allows any one of three sound cards to be connected to any set of speakers in the home. This means you can have exactly the same music playing across a whole floor, or indeed throughout the house, without any lag between rooms. In effect this is a poor man’s Sonos as the cost of each additional source is about $7.50 for a USB sound card plus about $150 for a single zone amplifier. You instruct the music system to play back music either by chatting to it on Instant Messenger (it has its own XMPP address), by emailing it, or by putting an entry on the house’s own Google calendar telling it when to start playback. For example, ‘play songs added this week in office’ would begin playback of any new music added to the system this week. And, the change that happens at this time of year is that the music playback subsystem allows Christmas music to play. That’s right, for the rest of the year, no matter what random selection of music you ask it to play (e.g. every song with the word ‘Bing’ in the title, artist or album) you will not hear any Christmas music. This is one feature iTunes and every other music player should adopt!
So my home automation isn’t ever going to get to zero, but 40% reduction in electricity is still a lot better than nothing!
An interesting approach to future proofing your home with conduit but seriously, who is going to pay $100 a run for this?
If you have a crawl space and attic you need a top to bottom conduit and maybe a few conduit runs behind locations where you have or might have any AV equipment but putting 3 of these in every room isn’t going to be a good investment. Smurf rube would work just as well for most people.