Home Automation
Home power meters revisited
Jul 1st
In an earlier post I discussed the utility (or otherwise) of the 24 hour power consumption graph and questioned why Google and Microsoft were both investing in this approach to home energy efficiency. Since then both Google and Microsoft have stopped their efforts in this area.
Interestingly, in Europe I’m seeing more and more homes with devices like the one shown here that provide real-time power consumption information. One of the more interesting uses for devices like these is as a check that everything has been turned off when a homeowner is about to leave the house. A quick glance at the meter can reveal if a heater has been left on in a bedroom. Of course the main water heater has the largest impact on the reading but homeowners learn what numbers represent ‘normal’ and can see at a glance when something else has been left on. Clearly a true smart home that can turn devices off when they are no longer in use is still a better long-term solution for this scenario but it’s interesting to see how a fairly simple device can at least provide an indication that everything is off without a significant investment in replacing light switches and device controllers. What would be nicer however would be if the meter included some kind of machine learning so it could show at a glance if the home is in a minimal power state or not.
Smart home tracks network devices by mac address
Jan 24th
One surprisingly useful component of my home automation system is its ability to track every device that ever connects to the router at home by mac address.
Every few minutes my smart home scans the local subnet looking for connected devices. It does this by pinging each IP address in the local address range and whenever it finds a device it gets its mac address and compares it to a list of known mac addresses. Once it’s found a device it pings it more frequently to check that it’s still connected to the network.
Whenever it finds a new device (for example, a friend visiting with a cell phone or laptop that connect to Wifi) it can ask for that device to be identified (using the chat interface) and can track its comings and goings from then on. If you happen to enter the house with a smart phone with Wifi turned on you have just become an unwitting part of my experiment and your phone’s mac address will be tracked from here on out.
Many consumer electronic devices now connect to the internet and each is thus tracked by the home automation system to determine how long it has been on for each day. This is used to calculate the instantaneous power consumption of the home along with the lights and other devices that the home automation can control or monitor.
Aside from estimating power consumption and tracking visitors to the house, one of the most useful aspects of this feature is that it’s great for finding lost devices. Did your child lose their iPod touch at home or is it at a friend’s house? A quick look at the log shows when it was last seen in the house confirming that it’s still inside somewhere. Ultimately it might be able to cross-reference which rooms were occupied with when the device was last seen and thus give you an idea which couch or bedroom to go search (future feature), but for now, at least you know you aren’t searching in vain. Ideally I’d have three access points with firmware that can track the signal strength of each device in the home so I can locate it more precisely but I haven’t found a router offering that capability yet. My laptop can track and report how far away from the router it is but that’s not as useful as being able to track individual devices from the router.
Another possible use for this is tracking screen time – how many hours did your kids spend watching TV or playing on the XBox when they were in fact meant to be working on their homework? etc. etc. Of course at some point this may all become a bit too Orwellian but as I’ve mentioned before, part of the experiment I’ve been conducting with my home automation is ‘technical’ but the larger portion is ‘social’ – which features are genuinely useful and which are just too much.
Smart home energy savings – update for 2010
Dec 14th
Here’s an updated graph showing the ongoing reduction in energy for our smart home. Driven mainly by continual improvement in the algorithms that control the heating, air conditioning and lighting the overall consumption of gas and electricity has continued to decline throughout 2010. It appears however that I am approaching the limit as to what is possible as the trend lines are beginning to flatten out. Going forward I’ll continue to try to improve the algorithms but I’ll also be on the lookout for any parasitic power-consuming devices and I’ll be dealing with them using techniques like the smart power strip I mentioned here.
A smart power strip
Dec 9th
Recently I added a smart power strip to the TV/Amplifier setup in the living room. My main aim was convenience – to make it easier to turn everything off all at once. But I also wanted to see how much power I could save by eliminating the parasitic power drain that a TV, amplifier and two DVD players have when in the ‘off’ state.
The power strip I bought is the one featured to the right here and to date I’m pretty happy with how it’s working. The power strip has one ‘blue’ outlet that senses when a single device goes on or off and then several ‘green’ outlets that switch accordingly. Initially I plugged the amplifier into the sensing output and everything else into the green outlets. That worked great and when the amplifier goes off so does the TV, the DVD player and the DVD changer. Since the amplifier is a Denon -CI model I can also control it remotely and since everything else switches on and off with it I can remotely shut down the whole stack from my home automation software.
The only problem with that approach is that in the ‘off’ mode the Denon -CI still consumes about 5W whereas the TV consumes 0W when off. The TV is one of the earliest HD TVs, a Panasonic Tau CRT TV so it’s fairly power hungry when on but it has a ‘real’ on/off switch so when it’s off there is no power draw at all. [Until recently the picture on that CRT beat nearly every flat panel TV on the market, but with recent LED LCD TVs I think I may finally be willing to part with it. It's old technology, but still an awesome HD picture.] So now I have to chose between remote power-off control and a 5W constant draw or no remote control and 0W consumption.
When I purchased the smart power strip I was concerned that it might itself have a phantom power drain equivalent to one of the other devices but it appears to be relatively harmless consuming hardly any current for itself.
The one adjustment you need to make on the smart power strip is to set the sensitivity so it can turn on and off at the right point.
Overall, definitely a recommended buy on this one.
Holiday Season (Christmas) in our Smart Home
Dec 3rd
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!
What does a Smart House do at Halloween?
Oct 29th
At Halloween our home automation system has a few additional and changed behaviors. Here are some of them …
1. When a visiting car comes down the drive the usual alert in the house is replaced with a spooky noise. (Normally the driveway alarm is the gentle tweeting of birds — something that could easily be mistaken for an ambient noise if you didn’t live here and know what it means.)
2. When you approach the front door there’s an alarming shuffling and scratching sound from the bushes in front of the garage.
3. When you open the front door to visitors it plays another Halloween clip “Hello Children … ” in a spooky voice.
4. The media player automatically allows any Halloween-appropriate songs to play when on random play. Normally such songs are skipped automatically. So you just might hear the Monster Mash, for example, mixed into the normal random rotation.
If your house could talk to you, what would it say?
Sep 13th
Suppose for a minute that your house could talk. What would you want it to tell you?
That’s a question I’ve been considering over the past few years because unlike most of you, my house can talk! There are ceiling speakers in many rooms, the house knows which rooms are occupied, and it talks to you when it has information it needs to communicate.
I’ve experimented with many different announcements over the years, some of which turned out to be useless, some which just became annoying after too many repetitions, and a few that withstood the test of time and daily usage to become fixtures in my smart home.
Here’s a list of some of the current announcements my house makes:-
1. It announces who is calling. “Talking Caller ID” if you will, except this one has a database behind it and whenever it sees a number it doesn’t recognize it will ask you who it is so it knows how to speak their name next time. (The asking is done over instant messenger or email, a separate topic I’ll write about soon.)
2. It announces that you have missed phone calls. It does this when the house has been unoccupied for a while and you walk back in. It doesn’t do it right away because you are probably carrying stuff and banging doors. Instead, it waits a moment and then when it detects you moving again in the house it announces all the calls you missed while you were away.
3. It announces the weather for the day in the morning when you get up and head into the bathroom.
4. It announces the weather for tomorrow if it’s already afternoon time today and you turn on any media zone. But, of course, only if it hasn’t announced it for a while (repetition gets boring fast!).
5. It can announce the artist and title of each song as it is playing. A simple chat command ‘dj on’ enables this feature. At the start of every song it ‘ducks’ the music, announces the song, and then brings the volume back up, just like a professional voice-over announcement.
6. It tells you if the traffic is bad on the way into Bellevue this morning, where ‘bad’ is defined as more than seven minutes above the average for this day of the week. Knowing that it’s bad on Monday morning isn’t useful. Knowing that it’s much worse than normal is.
7. It announces the time every 10 minutes in the bathroom in the morning rush helping everyone stay on track.
8. It announces when it’s time to wake up using a schedule defined on Google calendar. This means you can adjust the alarm clock as easily as you can change an appointment, no fiddly black on black buttons under an alarm clock to push. It also means that the alarm can handle weekdays vs weekends and holidays.
9. It announces if there has been fresh snow overnight at the local ski resort: time to go skiing! But it also warns you if the pass is closed as it sometimes is in winter after a heavy snowfall overnight.
10. It announces that it’s garbage collection day if it thinks you haven’t taken the trash out.
11. It warns you that the garage doors are open if you try to go upstairs in the evening leaving them open. That’s a bit like HAL controlling the pod bar doors but in reverse: it tells you to close them!
12. It complains that the fish are hungry if nobody has opened the door to their tank for 24 hours. Each 6 hours after that the announcements become more urgent, culminating in a “mine mine mine” audio clip from Finding Nemo. (All our other pets do a fine job at indicating their hunger but the fish lacked this ability until now).
13. It says “good night” when you turn the lights off at the end of the day
14. You can also ask it to remind you of anything with a verbal reminder, e.g. the command ‘remind me in 15 minutes say “Turn oven on” in study’ does exactly what it says.
15. It tells us if anyone goes into our barn unexpectedly.
16. It can also scare intruders when it detects unusual motion that doesn’t fit the normal pattern – nobody expects a house to talk to them when they are burglarizing it! Fortunately I’ve never had to test this feature.
Crucially it does very few of these announcements when it detects that we have visitors. Party music should not be interrupted by home automation announcements! It also learned early on that any announcement in a bedroom when the owners were asleep was a very, very bad idea punishable by instant termination and recompilation!
If you have any questions about these or other features of what I believe is the “World’s Smartest House” please feel free to comment below or on the relevant page.
Home Automation Top Features
Sep 7th

Lighting probably uses more electricity than anything else in your home
Someone recently asked me what the top features are in my home automation system. That’s a tough question, I have several favorites and there are so many features in there already or under development. But, here’s a current list of some of my favorites:
- Lights turn themselves off automatically – saves 40% on electricity usage
- Lights turn on ahead of you at night as you walk around
- Intelligent heating and A/C control (based on actual and expected occupancy, ‘optimum start’, weather forecast and local thermostat control)
- Monitor house from anywhere, see at a glance what’s happening
- Play music, news, podcasts, … in any room or zone
- House speaks: caller ID, alarm clock, reminders, missed calls, weather forecast, … with professional quality ducking of background music
- Automatic phone book learns the name of everyone who calls
- Chat interface with natural language control: understands complex sentences like “who called last week on Friday after 4pm”, tells you what’s happening (calls, cars, …)
- Calendar integration to record what happened and accept future instructions
- Turn TV down or off remotely (“dinner’s ready” feature)
- House can sense what’s happening and act accordingly: different behavior for away on vacation, not-occupied, occupied, visitors staying over, party
- House generates a local, sports-specific weather forecast and alerts when there’s fresh snow, pass closures, really bad traffic
- House can explain what it did and why it did it
- Programming features for defining new behavior based on events, times, past history, forecasts, …
Passive Air Conditioning to reduce Energy Consumption
Jul 26th
photo credit: dynamosquito
Technology to heat or cool buildings naturally and without expending huge quantities of energy has existed for thousands of years. In Iran this ‘badgir’ has a natural cooling system made with mud bricks and Adobe. It uses the air circulation between two towers passing through a dome refreshed by the flow of water into an underground channel named Qanat.
By contrast, typical American home construction affords few opportunities to use nature to help heat or cool the spaces we live in. Homes here are built with thin walls making them poor insulators and although modern homes are well insulated with fiberglass insulation in the walls and roof spaces that is done primarily to keep the heat in; it provides little thermal inertia and has the unintended consequence of trapping heat in the house during summer months when there is plenty of sunlight streaming through large windows but no way out. Worse still, in modern construction, windows and doors are kept tightly closed and the building itself is built so tight that it needs a fan to bring in outside air regularly to improve the air quality in the building. That fan uses energy and runs on a dumb timer, sucking in potentially cold air in winter and hot air in the summer.
Having already reduced my total electricity consumption by over 40% and made inroads in how much gas we use for heating I’ve recently begun to look at how we can reduce the amount of cooling needed to keep our house comfortable in the summer.
In a location where there is a significant variation between daytime and night time temperatures there ought to be an opportunity to heat or cool a house naturally using free energy from the environment. Here near Seattle for several months each year we have just such an environment as you can see on the graph to the right (click to enlarge). The nighttime lows are currently below 70°F and the daytime highs are well above 70°F.
Since we already have a fan connected up that’s forcing external air into the house why not connect that fan to the home automation system and dispense with the dumb timer that was driving it. Now the house has control of that fan it can change the time of day when fresh air is brought into the house to use warmer air in winter (around 3PM) and cooler air in summer (around 3AM). It can also use this fan in conjunction with the air conditioning system. For example, it knows you are upstairs and that it’s too warm up there tonight, the air conditioning has been running but it’s now past midnight and although it’s still 72 inside it’s dropped below 70 outside. In this situation it can simply open the external damper, turn on the fan and turn off the air conditioning. Cool air flows in and the compressor is idle.
All this seems like a good theory but because I’ve only had it installed for a few days it’s too early to say how well it will work.
But what about houses with no circulation fan? Could we simply use doors and windows to improve comfort and reduce costs by telling the occupants when to open and close them? Today for example I was up early and it was cool outside so I opened up all the doors to the deck. The graph below shows what happened: a much bigger temperature drop than the day before even though it’s a much warmer day today overall. What I failed to do today, however, was to close them at the right time so the early gains in ‘coolness’ were soon offset by the rapidly rising outdoor temperature and before lunch it was already warmer inside than the day before. But what if the house calculated what to do and told you so that you could do an optimum adjustment to doors and windows to achieve free cooling?
My home automation system tracks the temperature in each zone in the house using an Aprilaire communicating thermostat with RS485. It can display graphs for any variable or collection of variables using the ASP.NET charting control. These graphs and experiments like the one this morning are helping me understand the dynamics of our house and figure out the best ways to achieve passive cooling (or heating).
Weather Forecasting for Home Automation
Jul 25th
In the USA we are lucky to have the NOAA and their excellent web service that can provide a detailed weather forecast for any location (specified by latitude and longitude). Using this service my home automation system maintains a detailed, regularly updated local weather forecast object which can be queried easily by any other object in the home.
On the weather page you can view all of the forecast information it collects. Of interest the graph in the lower right compares the forecast from NOAA with the actual recorded temperature. In this case you can see just how accurate the forecast has been for the last 24 hours. Normally it runs almost this close but with occasionally there is a significant discrepancy caused by the bizarre ‘convergence zone’ we live in where Pacific weather patterns split around the Olympic mountains and then recombine over Seattle in somewhat unpredictable ways.
Unlike most home automation systems that have fairly limited if-the-else or table-driven approaches to defining the home logic (often limited to only the current value of any variable), my system has control structures that include statistical functions over temporal data allowing analysis of past data (e.g. average temperature in the last day), or in the case of the weather forecast, future values, e.g. expected temperature one hour from now found using interpolation.
var oneHourForNow = DateTime.Now.AddHours(1); double outsideForecastOneHourFromNow = weatherService.ApparentTemperatureHourly.ValueAtTimeWithLinearInterpolation(oneHourForNow);
This forward looking view at the weather allows for features like garden sprinklers that don’t turn on when it’s going to rain or HVAC that skips heating cycles when the forecast predicts warm weather later today.
In addition the house is able to issue a detailed local forecast over the speakers when it wakes you up in the morning. Somewhat uniquely the forecast it generates is a relative weather forecast comparing yesterday with today, or today with tomorrow. It might for example say “Today will be much warmer that yesterday” which is a whole lot less words than a normal weather forecast!
The house also has Natural Language Generation (NLG) features which are able to summarize a group of temporal series into distinct ranges allowing it for instance to highlight which the best times of the day are to be outside:-
Monday : excellent from dawn at 5:34 AM until 11:36 AM; hot from 11:36 AM to 2:00 PM; too hot from 2:00 PM to 7:00 PM; hot until sunset at 8:53 PM.
ASP.NET Charts
Incidentally, all of the graphs are rendered using the .NET Charting Control. The graph object is instantiated on the server, all the lines and axes are added to it, then it is serialized and sent over TCP to the web server using WCF. On the web server it is rendered as a PNG file using an Action method that takes size parameters allowing any size graph to be shown on any page. Here’s the MVC code that takes the stream from WCF, loads the Chart and then delivers it as a PNG.
Chart chart = new Chart(); chart.Serializer.Load(ms); MemoryStream ms2 = new MemoryStream(); chart.SaveImage(ms2); return File(ms2.GetBuffer(), @"image/png");