Posts tagged smart home
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.
Most traffic reports (on the radio or in text message alerts) are fairly useless. Like weather reports they contain lots of irrelevant information that could be eliminated with just a bit of extra context. In fact, most of the information they deliver is completely irrelevant to you as an individual located in one spot and hoping to get to another spot. Furthermore they aren’t actionable – telling me the traffic is slow on SR-520 and on I-90 isn’t interesting unless you can tell me which is the best way to go given where I am now and where I want to be.
So this weekend I added a new feature to the home automation that uses the WSDOT’s excellent traffic feed API to calculate a traffic report just for me. Recently I’ve started driving from the north end of Bellevue to the south end of Sammamish during rush hour. There are two very different paths I can take: SR-520 or I-405 to I-90. If either route has a problem I should take the other. So now I get an XMPP (chat) message from 4PM to 6PM whenever the optimal path changes from one route to the other. It’s the absolute minimum information I need and it’s 100% actionable.
For the moment the calculation is fairly simple, I simply maintain a list of the FlowDataID values along each route and then calculate a total ‘slowness’ factor based on the sum of those segments. If one way is much better than the other it generates an alert. If it goes back to being roughly equal the alert is cleared.
Since the calculation is purely relative (route A vs route B) it’s also fairly immune to day-of-week / school-holidays and other factors that have a significant impact on traffic but no impact on the only actionable decision I need to consider.
One other interesting point from the graph is just how spiked the traffic is on SR-520 compared to I-90.
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.
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!
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.
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.
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, …
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).
Now that summer is finally upon us in this part of the world I thought I might make a list of the many ways in which my home automation system monitors and controls the heating and cooling systems (HVAC) in our house. It does this to reduce energy consumption and to provide a more comfortable environment for the occupants.
1. Reduced heating/cooling when the house isn’t occupied
The house automatically drops back to a lower (or higher in the case of the air-conditioning set-point) setting whenever a zone in the house is unoccupied for a set period.
2. Further reduction in heating/cooling when the house isn’t occupied in the case of a vacation
If the house is totally unoccupied for the majority of the day (i.e. excluding brief visits from cleaners and pet sitters) it will automatically flip into an even lower power consumption mode using less heating and no cooling at all.
3. Heat-point / cool-point variation by time of day (for each zone)
Instead of aiming for a single fixed temperature for a 24 hour period the house has target temperatures for different times of day – at night for example it lowers the heat-point substantially, during the evening it lowers it subtly in preparation for nighttime (except if we have visitors (which it knows)). On hot summer evenings it will cool the bedrooms in advance of bedtime (as shown in the graph here) but during the night it will allow the temperature to creep up slightly. Each zone has it’s own target temperatures curve because what’s right for the bedrooms isn’t right for the kitchen.
4. Optimum start in the morning
A traditional thermostat with a timer typically simply slams the thermostat up to 68F at, say, 5AM every morning to get the house to the right temperature by the time we wake up. My smart house instead follows an ‘optimum start’ routine whereby it gradually increases the set-point every five minutes along a predefined curve that matches the house’s thermal characteristics for heating (which varies according to the outside temperature). This means it heats the house for the absolute minimum duration necessary to arrive at the correct temperature by the desired time of day. A traditional thermostat by contrast may have been holding the house at 68 for an hour or more before it was really necessary.
5. No heating of cooling at all if the weather forecast says it’s not needed
If the house is going to get warm all on its own today because it’s forecast to be a hot sunny day then the house will automatically skip all heating in the morning even if it means the house will be a few degrees cooler than desired for an hour or so in the morning. When it’s sunny and the forecast is for a hot day there’s no point heating just to increase comfort for such a short period and besides when it’s sunny outside people don’t feel as cold anyway. This also means that the house will not need as much cooling later should it be a really hot day.
Another example of this can be seen in the graph above where the house decided to stop cooling the upper floor because the forecast indicated that it would soon be cool enough outside to not require any A/C and it would be cheaper and more effective to just suck in air from outside.
6. Manual override and the subtle shift back to computer control
There are unfortunately many people in the world who don’t understand thermostats let alone thermodynamics. For some there is a perception that the higher you set it, the faster it will get warm. Rather than try to reason with such people, or offend them with rude alerts or announcements over the speakers to explain how thermostats work, my home takes a more subtle approach: you can set the thermostat to whatever value you like but within an hour it will have taken back control and the set point will be back to where it should be.
7. Thermostats are part of the occupancy sensing network in the house
If you adjust a thermostat that counts as an occupancy trigger in the room in which the thermostat is located. In order to have the densest possible network of occupancy sensors any device that receives input is treated as an occupancy sensor, so thermostats, light switches, TV remotes all act as occupancy sensors just like the more traditional door sensors, motion sensors, floor sensors etc.
8. The house refuses to attempt to cool the entire world – Close the doors!
If the house is in cooling mode and external doors are left open it will wait for 5 minutes, then issue a verbal warning over the speakers, and then if the doors are still left open it will simply stop trying to cool that zone until the doors are closed.
9. The house logs what happened in each zone and can explain why it made changes
Any complex system will have unexpected behaviors, but unlike other home automation systems this one keeps a detailed individual log for each zone and in that log you can see what happened and equally importantly why it happened because the house leaves a trail including explanations as to what it was doing and why.
|yesterday at 12:00 AM||14.04% on today|
|last Monday at 9:16 PM||Temperature 67°F [64°F < |65.3°F| < 68°F]|
|last Monday at 7:05 PM||Heatpoint changed to 55 because warm outside (Outside ave=57.2°F now=65.0°F|
|last Monday at 6:38 PM||Temperature 68°F [64°F < |65.0°F| < 68°F]|
|last Monday at 3:01 PM||Heatpoint changed at thermostat to 66°F|
|last Monday at 3:01 PM||Heating (Off)|
10. The house makes graphs for each zone
These graphs show how the temperature varied and what changes it was making to the set points during the course of the day
These cooling and heating features together with all of the other home automation features directed at energy saving mean that our total electricity consumption is down 40% from where it was five years ago and comfort has if anything improved along with convenience – it’s very rare now that we ever need to adjust a thermostat.
11. Future improvements
Although the house can tell if we are home or away, or if we have visitors for the evening or visitors stopping over all without being told, it still can’t figure out when we will get home. But that’s about to change, the house now knows where we are when we aren’t at home (more about that later) and it will soon be able to predict a return time. Armed with that I hope to improve it so it can have the house ready for our return after we’ve been away without having to explicitly tell it anything!
12. A more detailed example
Click the image on the right to enlarge it. You’ll see a detailed example of how the house manages the cool point to achieve optimum comfort with minimal energy consumption.
So, you’ve been sold on the idea of a smart home and are looking at your options. There’s one that has gorgeous LCD keypads that you could put in every room for just a few hundred dollars a pop, and look! it says in the brochure that it’s “smart”. Well, guess, what, if that LCD keypad has options on it like “Home”, “Away”, or “Entertaining” you are about to purchase what I call a “dumb” or “stupid” home.
A smart home as I define it is one that can act autonomously to increase homeowner comfort, reduce energy consumption and generally just do the right thing.
If you have to repeatedly tell your house to do an action that would be obvious to a human being then it’s not smart.
So how is a real smart home different from a dumb home?
Well for starters it has no flashy LCD keypads – they simply aren’t necessary – it figures out what to do and does it without being told. Lights come on ahead of you and go off behind you. When you have visitors if knows that and adjusts its behavior accordingly, keeping the house slightly warmer, leaving lights on in areas frequented by visitors, suppressing audible warnings it would normally give, …
Secondly, it has a much more dense sensor network than a dumb house. To reliably detect occupants and distinguish between homeowners, dinner guests, relatives stopping over, and a full-blown party it needs motion sensors in every room, contacts on every door, a sensor on the driveway to detect cars approaching, … and more. With this dense sensor network and algorithms that can track each sensor over long periods of time and perform statistical calculations your home can become a whole lot smarter.
Thirdly, it has a whole new programming paradigm. The traditional if-then-else or the even more lame table driven approach to home automation is not going to be sufficient to make your home smart. It needs a whole new language with the expressive power of what I call ‘sequential logic blocks’ that allow for events to be wired up easily using a fluent, almost natural language approach that hides the complex statistical and timing code that is required by the scenes to make your home smart.
Fourthly, it can remember what it did last night, and the night before than and the month before that and the same time last year! A smart house tracks all of these hundreds of sensors over long periods of time so it can detect trends and can determine what is normal and what is not normal.
Fifthly, it can explain why it did it! Any complex system is going to have unpredictable behavior, that’s almost guaranteed in a Goedel-esque kind of way. But when your smart home does something crazy it’s no good calling the author and saying ‘it went wrong last night, why?’ unless the author has what I have in my house which is a log of what happened and an explanation by the house as to why it happened. My house can, for example, explain that it turned the driveway lights off because it was 9PM and there were no visitors at the house and all of the people who lived there appear to be home.
So give your house the test, figure out how smart it is, and if it’s anywhere above “really dumb”, leave me a note in the comments below.