I've been tinkering with various levels of home automation for about a decade now, but without my own house, that didn't get terribly far. Now I've got my own place to screw up, so I'll give you some idea what I've done. Maybe
Note: Before doing anything, you should verify that whatever you're doing complies with building codes in your area, and that you have the skills necessary to complete the job safely. Don't do anything dumb and then blame me for burning your house down.
My House Was Designed By Morons
My decision to go X-10 was driven by some very poor decisions on the part of those who designed the electrical system in my house. To give you a few examples:
- Each of the three bedrooms had a switch by the door and a fan/light in the middle of the ceiling, but the two had absolutely nothing to do with each other. The two weren't even part of the same circuit. Add to that an attic above that was too small to climb up into in order to rewire...
- Between the kitchen and family room is a half-floor offset, with a set of stairs between. Unfortunately, the lights for the family room (on the lower floor) were on a switch at the bottom of the stairs, and the light for the kitchen was on a switch in the kitchen at the top. No matter which way you were going, if you wanted to shut off the light behind you, you'd inevitably traverse the stairs in the dark. Again, totally different circuits, and I'd have needed to cut into a finished, load-bearing wall to run new wire between the two.
- The living room has no overhead lights. That's fine. It also has no switched outlets - ugh. Despite their fascination with switched outlets in the bedrooms, they couldn't have put one here. Therefore, I'd have to stumble through the living room to find the lamp switches in order to turn them on.
Given these examples, and other smaller ones I won't mention, the decision to pursue powerline carrier technologies was obvious. I could then easily rewire the house as needed, without all the hassles of actually pulling wire. Now, what protocol?
The Reasons for X-10 (over UPB, Zwave, Insteon, etc.)
I'd decided some sort of powerline carrier was the obvious choice. It came down to figuring out which of the various protocols (X-10, UPB, Zwave, Insteon, etc.) I would embrace. Whatever choice I made, I realized I would have to live with for at least a decade.
X-10, the protocol, is workable at best and craptastic at worst. Let's see - no acknowledgements, no checksums, rather sluggish, and not a terribly robust addressing scheme. Other protocols deal with each of these issues to varying extents, but each at the moment is mostly proprietary, and sourced by only one or two suppliers. When buying gear for the long haul, I don't want to worry about single-sourcing issues. I don't want to wind up with parts of the system missing because they failed and the manufacturer went under five years ago.
X-10 is still the de facto standard, and lots of suppliers make gear for X-10. From past experience, I knew that a well designed and implemented system should avoid most of the pitfalls and provide a reasonably stable and reliable system. Plus, any and all patents on it have expired, assuring a low cost of entry for manufacturers, hopefully assuring component availability for many years to come.
The usual consumer-grade X10 stuff is generally of bad to mediocre quality, but incredibly cheap. That's fine for some things, but personally I prefer to spend a bit more for components that are more solidly built. I strongly recommend Smarthome's line of products. I use their Keypadlincs and Switchlincs exclusively, and have had very good results.
The secret to making it all cheaper: use the power of eBay. Usually the prices are better there, and occasionally you'll get a really good deal.
Interfacing X-10 With The World
For tying your X-10 stuff into a computer (and, in my case, then onto the web), you'll want to look at the Linux X-10 Universal Device Driver, otherwise usually known as WiSH. It creates an entire tree of device nodes that correspond to X-10 addresses, and allows easy control, even from shell scripts.
- Not much to say here until I get into a more detailed look at my system, but be sure to check out 1-Wire Filesystem (OWFS). It, much like WiSH above, maps a 1-wire bus into a mounted file tree, and allows interaction with bus devices directly from the shell.
So MythTV technically doesn't qualify as home automation. Still, I decided to add a page about my MythTV adventures here.