I've been looking to set up a home automation system in my house for a while now, but I'm having trouble committing to any one starting point. I'd like to set up an initial system that controls maybe two or three outlets and one or two overhead lights and that can be accessed over the internet and from my iPhone. Ideally, I'd like the initial setup to cost less than $100 (or at most $150), and I'd like to be able to add control of more outlets and lights over time. Here's my background:

  • I work with computers on a daily basis, and I have several old desktops sitting around that I would have no trouble converting into a dedicated Linux server. So I would not count that part in the $100.
  • I am not an electrical engineer, but I'm not completely inept with electronics. I have toyed with the idea of getting an Arduino, but haven't yet. (Just to give you an idea of what level I'm at). I'm also not afraid of circuit diagrams. I am afraid of high currents and meddling with wall outlets while holding a screwdriver.
  • I'm not diametrically opposed to proprietary software, but I would definitely prefer an open-source solution that I could do some hacking on myself.
  • I'd like it to be something my wife, who is not in a technical field of any kind, can use. If permanently installing outlets into the wall is involved, I'd like it to be something that could be used by potential future owners of my house, and I'd like it to be something that looks good enough and works reliably enough to improve the value of my house.

I know my question contains a lot of things specific to my situation, but I also believe that there are a lot of other computer-science-type technophiles like myself out there who are in a very similar situation.

  • I worked for a company installing home automation systems. You may want to consult a retailer / installer and ask if they carry Control4. While not as cheap as X10 and some of the other answers, it was among the cheaper solutions especially compared to Vantage.
    – JYelton
    Nov 20, 2010 at 23:43

4 Answers 4


X10 is a very cheap way to go, but it's not a very good system. The $20 switches you get are pretty low quality. More importantly though, the X10 protocol is pretty bad. It was designed in the 70's, and is very low bandwidth (I can't find a bps rating, but it takes about 3/4 of a second to send one command). If you don't use scene-capable switches (like Smarthome makes) you will notice a delay when activating different scenes.

I have a large Smarthome X10 installation at my parent's cottage/future home. The hardware is nice, but it suffers from reliability problems (eg, Sometimes when you hit a button, not all the lights activate; sometimes noise caused by power spikes/outages causes all lights to turn on, even though I have whole-house surge protection). I wired the place specifically to support X10, and have signal boosting/bridging in place (which helps), but honestly, I wouldn't do X10 ever again.

Programming the X10 devices is a pain: you have to send arcane commands to set up scenes.

At my house, I have a couple Smarthome Insteon switches in my basement for my home theatre. Again, I really like the hardware, and in fact it's even nicer than the Smarthome X10 stuff.

With insteon, they tried to simplify programming. What they ended up doing is making the very basic options (linking a single light to a button) a bit easier -- you just have to hold one for a few seconds till it blinks, then hold the other, and they're linked -- while at the same time making anything mildly more complex incredibly difficult. There are dumb limitations, like it's not possible to have a scene where one light goes to 0% and others turn on/dim to 10% (think "movie time" scene).

I purchased a computer interface for it, which is really the only way to do anything beyond the simple button-press-linking, and the best software I found to program it was Insteon Explorer. I wasn't willing to spend $150 for the Smarthome software to program 3 devices, so I can't say if it's better or not. Every time one device controls another, there are two links - one on each side. This means if you ever replace a device, not only do you have to reprogram the new device, but you also have to reprogram everything it controlled or was controlled by. This would be a HUGE pain with a keypad (8 buttons + integrated dimmer).

One thing that was relatively easy is integrating to PC. I was not able to actually activate "scenes" (this again, was easy with X10, but is now apparently not possible with Insteon), so I have to go device-by-device. Since I only have two main lighting circuits, it's not a huge deal. I use a Smarthome PLM and plmtools, and then small shell scripts that invoke plmtools for my various scenes. I can invoke the shell scripts in several ways:

  • Using LIRC, from my Harmony remote. While watching Tv/movies, I have buttons that say "Bright", "Movie", etc.
  • Using the XML interface on my Aastra IP phone. I have buttons programmed with scene names
  • Using a small web site (running on a local server) I wrote using jQtouch, as well as a bookmark on my iPod touch, I can change scenes using my iPod. (also works on all smartphones/tablets).

I haven't tried the actual hardware yet, but the Simply Automated UBP stuff looks very appealing. They have the concept of a "base" switch, plus a faceplate - and there are face plates with various combinations of rockers/buttons.

The software looks amazing. You can basically set the entire system up completely offline, and then dump the programming to all devices. If I remember properly, switching a device was as easy as changing the address in the setup, then dumping programming again.

The individual options for what you could program was amazing: you could set up different physical buttons to be toggle, push buttons, rockers, single-button dimmers (hold to go up/down), one, two, or three-click buttons (different commands for each). You could then set commands to turn off, on, dim, activate a scene, etc. I think there were even timer buttons ("press the button, then 5 seconds later, turn off scene B").

I am considering a remodel of my kitchen, which would include some new lighting. I'm almost certain right now that I'll be using these switches to control the different lights (main, under cabinet, etc) from different entrances.

For lighting, I would go with one of the existing protocols/companies as mentioned above (there are many others as well, such as Zwave). You get a switch that is the dimmer circuitry, network interface, and human interface. You just won't be able to make something that quality yourself.

Using one of the existing home automation controllers is also not bad - it's like using a domain specific programming language. The common things to do in an automation system are timers, schedules, responding to events (motion sensor activated = turn on lights for x minutes, if it's currently dark outside but not past 12am). The commercial controllers let you set this up pretty easily. If you're doing it all yourself, you are more prone to bugs simply because you have to do more of the mundane stuff yourself, and you have more code.

I think there is a place for things like an Arduino though, for very specific, localized tasks, and have it integrate into the rest of your system if needed.

I'm of the mind I'd like to develop the UI for this myself (the existing systems are very expensive, and/or are not flexible enough so for example, I couldn't do the integration onto my Aastra phone with any off-the-shelf automation system), which means I need a way to control everything from a PC basically using the command-line (or some API). From there, I'd mix and match. Eg:

  • SimplyAutomated stuff for all my lighting control,
  • a standalone DSC alarm system that has a couple I/O interconnects to tell my computer its status, and let me arm/disarm
  • An ardino programmed to run my pool filter and lights based on a motion sensor to detect how much the pool has been used. I can then have a web UI that I can access on a PC, wall-mount touch screen, or iPod/Pad/blackberry that interfaces to all this stuff.

I know my first inclination as a programmer is to have one master controller that runs everything, but from an industrial control perspective, this is actually opposite of what you want. Decentralized, specialized systems are more reliable, and you're less likely that a single failure is going to be catastrophic (eg, my ardino pool controller could blow up, and my lighting and security will continue to be just fine). The centralized bit brings the systems together and provides oversight/interaction.


Points (1) and (2) seem to be difficult to reconcile with your final point: wife and future owners.

If you want to start hacking on the cheap, as suggested, look into X10.

If you want the wife to find it easy-to-use, and to potentially increase resale value, you might need to up your costs a bit (say $200-$300-ish initial outlay, rather than $100 (but I'm really just guessing on that price point)) and wait about 6 months. I expect that next spring, or summer at the latest, there will be a few new products that will do what you want. I am thinking of (and waiting myself for) EnergyHub products, although there are many other companies with products coming to market soon.

Disclaimer: I'm friends with a bunch of EnergyHub people, but have no personal/financial stake in their products or success.

  • +1 for the EnergyHub mention. I was looking for something exactly like this but couldn't find anything available at a reasonable price yet.
    – BQ.
    Nov 19, 2010 at 22:11

You might consider X10. This TW523 would allow a computer to connect to the X10 network, and these outlet adapters work for switching loads. I've seen Arduino code for working with the TW523, but I'd assume that there's Linux software for it, too. Then it's just a matter of writing the web interface. How hard can it be? ;-)


Every time I go to remodel a room, this question comes up for me again; I run a search on google again and find the same results.

X10 is ok - as some of the other posters have said before, they have reliability problems.

Although it will completely blow your budget out of the water, I would look into Control 4 or another; forgot the other major player name.

Both have iPhone / iPad apps and both are expandable for future growth. Both have in wall LCD panels to control the system as well as table top devices.

But, its not cheap; the controllers begin around $600 i think. And that doesn't include dimmers, speakers, outlets, etc... (can find the equipment cheaper on ebay used, but not by much)

I personally have been building a system (until i'm ready for control 4):

Main iMac in the family room for music / video storage (moving an old Apple G5 to the basement to do this soon) Airport Express in my D-Mark connected to a also temporary RCA receiver

Speakers connect to the RCA receiver and are located in the walls of the dining room and kitchen

Via AirTunes on the iPhone or iPad, i control the music going to the Airport Express. Theres a 2nd gen Apple TV in the family room which I can send video to as well.

This is fine for now, but I find I'm more listening to Pandora than my music; so I use Airfoil to send the music to the airport express / apple tv - but i cant control that with my iPhone or iPad

A benefit of this system is the wifes laptop can serve as the iMac or any guests laptop.

The downside to this is I cant control which speaker i output to from iPhone / iPad. Which is fine; the 1st floor is filled with music, but when I put a speaker in the hallway upstairs, it may be a problem.

Airfoil can stand in for the Airport Express if you don't have one and runs on Windows. My solution doesn't account for lights / outlets (yet)

Search for Arduino - those guys are pretty bright and an Arduino with an ethernet shield and some relays can be had for under a couple $$$, but now your really talking a custom solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.