Using X10 Hardware: Computer-Controlled Home Automation

Sign in to queue


  This article showcases usage of X10 technology to interact with hardware devices. It is first article in Computer Controller Home Automation series.
Tony's Blog

Difficulty: Intermediate
Time Required: 1-3 hours
Cost: $50-$100
Software: Visual Basic or Visual C# Express Editions
Download: Download

What is X10

X10 is a home automation technology that anyone can use to do some pretty amazing things:

  • Add a wall light switch without running any wires
  • Turn your porch light on from your car
  • Add a light switch to your bedside table
  • Turn off all the lights in your house by pressing a single button
  • Sound an alarm if someone opens a door or window

X10 is Programmable

You can also combine X10 technologies with your computer and custom applications written with Microsoft Visual Basic Express or Microsoft Visual C# Express. With logic provided by your custom application, you can make some stunning upgrades to your home:

  • Receive an e-mail notification if someone unexpectedly opens a door or window
  • Send a message to your mobile phone if your basement floods
  • Monitor video of your property across the Internet—for less than $200 in hardware
  • Turn on your home air-conditioning from work, so your home is cool when you arrive
  • Control whether your kids can watch TV or play games from work
  • Monitor pets to make sure they're healthy and eating while you're on vacation
  • Have your porch light turn on when it gets dark in the evening, and turn off after everyone is home
  • Build a complex security system that uses any logic and alarm mechanisms you can dream up


How X10 Works

X10 works by sending communication signals through your home's power lines, much like the way computers communicate across a network. X10 is a very simple network, though, and signals consist mostly of messages like, “Device A1: turn on” or “Device N5: turn off.” X10 is also capable of a few other commands, including dimming lights, or controlling all the lights in your house.

When you connect a light switch, lamp module, or other X10 device, you have to assign it a house code (A-P) and unit code (1-16). Typically, you will choose a single house code for all of the X10 devices in your house. While the default is A, it's a good idea to change the default, because X10 signals sometimes cross from one house to the next—and you don't want your neighbor to accidentally turn your lights off.

If you assign X10 devices the same house and unit codes, all the devices will respond simultaneously to a signal. For example, I have two lamps in my bedroom that I always want to turn on or off at the same time. So, I assigned them both the N1 house and unit code. When I push a switch to turn N1 on or off, they both respond.

There's a wireless version of X10 that allows you to send X10 signals from wireless motion detectors, keychain remotes, and wireless wall switches. As shown in Figure 1, an X10 wireless transceiver receives wireless X10 signals and sends them across your power lines so that wired X10 devices can respond to the commands.

Wireless X10 devices

Figure 1: Wireless X10 devices require a wireless transceiver.

The video shows me tackling two very common problems in my 1950's era home. First, in my bedroom (Figure 2), I use two lamps to light the room. It's annoying to have to walk across the room in the dark to turn them on, and then to reach across the bed to turn them off at night. I fixed this in about ten minutes with about $100 in X10 hardware. Now, I can turn both lights on and off from a wall switch, or control them from my bedside table. As an added bonus, I can now dim the lights.

Adding remote switches

Figure 2: In the first project, I add remote switches to control two bedside lamps.

The second problem is in my office. I have a light switch, but the light it controls is too dim. So, when I go into my office, I flip the light switch on, and then walk across my office to turn on a floor lamp. With another $100 investment in X10 hardware and about 30 minutes time, I replaced my wall switch with an X10 switch capable of controlling both the built-in light and my floor lamp, as shown in Figure 3. Now, with a single flick, I can control all the lights in my office.

Replacing light switch

Figure 3: In the second project, I replace an existing light switch so it can control an additional lamp.

This video provides an important background in X10 technology and shows you how easy it is to hook everything up. I'm really just getting started, though, because in future videos I'll connect the whole X10 system to my computer. I've got several projects in mind, and I might even use that new wall switch in my office to have my computer start automatically downloading my e-mail for me in the morning, and backing up my computer in the evening.

The Discussion

  • User profile image

    Hi Tony

    For my final year project at University I am creating a speech enabled home automation application using voicexml. A user will be able to communicate to the PC via Bluetooth, in turn the pc will be attached to a cm12u (I believe you call it cm11a on your side of te pond). Feel free to check out my blog to check out my progress and things I learn along the way:

  • User profile image
    Insteon software

    Do you have any code samples from what you were using for X10 control?  I'm looking at software and don't really know what to look for...

  • User profile image

    @Insteon software, I have no clue what happened to the source code for this article as it is over 4 years old.  This means I guess we need to do a x10 article now Smiley

  • User profile image

    @marin click the "Email blog author" link in the upper right and we can chat about you doing an article!

  • User profile image

    I’m really interested. & I’d like to cooperate developing some fun applications.

Add Your 2 Cents