There’s been some requests from the rabble that constitutes my readership for more information on my home automation setup.
I have been reluctant to do so, primarily because my vision of what the system will be, is much more compelling than what it currently is.
But in the spirit of continuous iteration, here we go.
My smart home setup allows for automation and remote operation of a handful of lights and my AC units. I also have a couple of cameras. That’s the very short version. The longer version requires precious precious context.
I have a biggish house, and it’s a sort of frankenstein amalgamation of a 1950s track home, a sloppy 2000s addition and a nice helping of real-estate buy-and-flip McMansion renovation. In the process of becoming what it is today, a lot of very strange decisions were made that wouldn’t make sense in a modern large home built in one go.
So light switches are in very weird places, newer AC units are pushing lots of air into a ducting system designed in the 50s. Outside lighting and power is almost non-existent despite having an outdoor pool and grill, etc.
So the main goal of my smart home project was to compensate for some of the weirdness of this hodgepodge of choices, and as time has passed, to provide some nice conveniences that make houses more livable. I can also capture and analyze information about the system to my dorky heart’s content.
An auspicious origin
What kicked all this off was stupid school kids stealing a package off our porch. It was returned later, opened, with no explanation. Not long after, someone tried to open the front door to our house shortly after I left. Thankfully the door was locked, and once they noticed Kelli was home (through the door glass) they ran.
“Fuck that noise” I thought to myself. It’s time for cameras. Cameras that can be accessed remotely and can trigger alerts. My camera setup demands a post in and of itself, but suffice it to say, I Macgyvered up something that didn’t look terrible and roughly did what I wanted.
But the cameras needed light at night because they didn’t have IR, and IR cameras suck. Thankfully we have porch lights, so problem solved. But I always forgot to turn them on at night, or off in the morning. So for a long while I just left them on all the time. But eventually my very slight case of OCD would not stand for this solution. What is this? The dark ages? Technology shall come to my rescue. I’d been reading about smart homes for over a decade. Surely this stuff has been figured out.
To the internet!
You can buy timers out the wazoo. But most of them only work on plugin devices, not anything hard wired to power.
You can buy photocell gadgets that plug into the light socket and can tell if it’s daylight or not and switch the lights accordingly. They don’t work. Light comes on, “hey it’s daylight!, I’m going to switch off the light! Oh hey, it got dark, it’s nighttime. I’m going to turn on the light.” Repeat. They get a little dirty, they don’t work. They point the wrong direction by 2 degrees, they don’t work. People on the internet will say that you can make them work if you just figure out the magic juju that prevents the light from the fixture hitting the photocell. These people are liars.
You can replace fixtures with motion detectors that randomly click your lights on and off every time they see a bug. Those are awesome. Those don’t piss of the neighbors. I wouldn’t know, because it’s not like my neighbor has one. One that randomly pumps 2000 lumens into my bedroom windows at all hours of the night for no reason. One that would mysteriously attract small high velocity rocks if it weren’t for the existence of blackout blinds and plantation shutters.
If you want a solution to this that doesn’t suck, you need to buy a wired light switch with a relatively smart timer like this. Or you can start wading into the world of remotely controlled switches and let a computer decide when to turn on the light.
The Great Divide
This is a pretty big line to cross. There’s a lot of crappy, twitchy, mostly-works solutions you can patch together on an ad hoc basis in your home. Per-device light sensors, motion detectors, timers, etc. Most are incredibly dumb, only trigger on one variable, and have pretty lousy reliability. They are also very close in price to smart home equivalents.
If you want anything beyond bare minimum functionality, you’re going to need to bring a computer into the mix. That can be anything from a micro-controller actually built into a switch, to a fully dedicated home control machine.
There are a lot of different kinds of solutions out there, and 3-4 really strong modern competitors in today’s market. All have strengths and weaknesses. I ended up choosing Insteon solutions controlled by Indigo 5. I’ll go into more detail about why in later posts, but the bottom line is – what modules are available, how often are products and software updated, how reliable are they, and what can I do with them?
What do I do with them?
So here’s what you’ve been waiting for. What does my smart home actually do that my dumb home didn’t?
- Porch light comes on relative to actual sunup/sundown times at my location – i.e. it changes automatically throughout the year. Sconce lights on the exterior of the garage are soon to follow.
- Laundry room lights come on when you open the door and turns off automatically. The lights witch was installed behind the door, so it’s hard to reach without closing the door. Now you can walk in with a basket of laundry and not have to fumble around in the dark.
- A floor lamp in my office turns on when I enter and turns off automatically. The only switched light in the room is the ceiling fan. The fan and its light are independently controlled by an RF remote that is hard to find and operate in the dark. When the lights are turned on, the CFLs take a long time to warm up, so if you’re just running in to grab something off your desk, you’ll be doing it in the dark, or wandering over to the floor lamp in the dark to turn it on. No more.
- Both AC units in the house are controlled by my computer. Expensive programmable thermostats only allow 4 temperature settings per day. Under computer control you can set as many as you want. You can also control the thermostats from any device with a web browser. You can also capture and report out what temps were in the house during the day, and how long the AC ran. You can turn on the AC automatically if you come home early. You can have your computer monitor outdoor temps, and adjust the AC accordingly, etc.
- Lots of house lights are now under remote control. That means I can have a single button turn off every light in the house (that’s currently controlled) when I head to bed. One of the things we do very often is switch between the overhead lights in the living room, and a floor lamp. Because we use CFLs we can’t use a dimmer for our overhead lights. So switching is now a one button activity you can do from the couch. If that sounds lazy, ask yourself why you don’t get up to change channels on your TV/Cable box, or to adjust the volume on your stereo.
- Security cams trigger on motion and capture footage remotely. I can tie these into the smart home system, but I haven’t yet. Dumb video motion detection is really really bad, so it’s fine to capture a lot of false positives for later review, but it’s not okay to turn on a bunch of lights and play an alert. There is a really fancy and expensive piece of software called VitaminD that does detection of people, but it’s not really a real time monitoring solution. OpenCV is now including a pedestrian detector, so I’m harassing the maker of my security cam software to include it.
- A lot more light switches. Our bedroom is a prime choice as this is another place with light switches placed behind the door. But there are hallway lights, a few more patio light locations, fans, etc.
- Pool pump. It’s currently on an old mechanical timer, and I’d really like to have automatic seasonal adjustment. I could also have my computer monitor the weather for storms and have it kick the pump on for a few extra hours to clean out the crap that’s inevitably deposited in the pool.
- Garage door opener and door locks It would be nice to be able to remotely lock and unlock doors and open or close the garage. They can also trigger entry/exit scripts. i.e. when we’ve both left in the morning, make sure all the doors are locked and all the lights are out. When we come home, turn on hallway and living room lights and unlock the garage entry door to the house. The automated unlocking would of course have some more conditional logic to make sure it’s actually us coming home.
- Occupancy detection weirdly enough, this remains a really hard thing to get right. You can detect people in the house pretty easily, but room occupancy is a lot harder. You can manage it if somewhat imperfectly through motion detectors and a counting script, but it gets hairy pretty quickly. Active RFID would be the real way to fly, but it’s really expensive and just not worth it at this point. I’m not sure I care enough about this to make it work with today’s technology, but this really can enable some really cool stuff. Things like music and video following you around the house automatically. Eventually I think the only viable solution will be something like a wireless, fisheye Kinect embedded in the ceiling of every room that’s watching both in visible and IR light.
- AV integration. This isn’t on the immediate list, it’s more of a nice to have eventually thing. Apple’s remote.app along with airport expresses already does a pretty good job of getting audio where I want it. Harmony remotes also do a credible job of controlling multiple devices in rooms with TVs. But there’s a lot of allure to remote devices like the iPod touch controlling everything.
While this is a topic worthy of its own blog post, it should be noted that this stuff isn’t exactly easy to set up. You have to have a basic, but working understanding of home electrical wiring, and relatively decent computer chops. It really really helps if you can program in python or applescript. You can go really far down the dork-well if you know how to design circuits and program ICs.
There’s a reason that installers charge a LOT of money to build and program smart homes. There’s a reason they get a lot of money to maintain and expand systems. Your choices in vendors can have a huge impact. The lifetimes of homes are much greater than the lifetimes of particular technologies. Also, making this stuff work right is sort of a weird combination of skills; part handyman, part electrician, part computer programmer. Its much more accessible than it was 10 years ago, but it’s still not something to be entered into casually.