X10 working! Requires about $115 in hardware, but is fully self-contained!

So I have x10 working back and forth with SmartThings. First, I’ll tell you what it requires…

Netduino board… $40
Rs232 shield… $11
Cm11a x10 interface… $30
SmartThings shield… $35

To build it, you just stack the rs232 on top of the Netduino, and the smartthings shield on top of the rs232 shield. Plug the cm11a into the rs232 shield and an outlet, and your hardware is ready.

For the software, the Netduino has to have the custom app I wrote loaded.

To get it working, you join the shield to SmartThings (it will look like a switch), and then you use one of two smartapps I wrote.

The first smartapp lets you send an x10 command when a switch or contact sensor is activated.

The second smartapp lets you turn a switch on or off when a certain x10 command is received.

I know that sounds like a lot, but the only relatively complicated thing is building the hardware stack and loading the program on the Netduino. Once you’ve done this, you stash the little stack anywhere you want with the cm11a being plugged into it, and you never think of it again!

Is anyone interested in this?


Btw, here’s a link to a pic of the hardware stack I put on onedrive.


@johnwest80 This looks very nice and clean. I was pondering building something similar to this, only using an Arduino instead of the Netduino.

Curious why you chose the Netduino? I am not familiar with the Netduino. From their website, it appears to use a different CPU (vs the Arduino), and runs some flavor of a .Net Micro Framework for an operating system. Were you able to reuse the Arduino Thing Shield library?

If you could post the code on GIST, that would make it easy to share with others. I’d love to take a look, if you don’t mind.

I am a C# guy, so it’s much easier for me. Plus, the Netduino supports more memory and generally is a much better dev experience overall thanks to advanced language features like strong typing, automatic garbage collection, etc.

I couldn’t reuse the smartshield library, however, but that wasn’t a big deal. The smartshield is just sending text over the serial port anyway, so it’s not that hard to parse out what you need!

As for posting on GitHub, my code is a wreck right now! I’ve hacked it to pieces trying to get it running. But I’m going to try to clean it up soon :).

Ok, the source for the Netduino app is on GitHub. The link is below. If you want extra credit, you can add an oled display so you can see the statuses go back and forth :).

Here are pictures of the device. I printed a 3d container to package it up, and added an oled display for status display.


Looks amazing! Thank you for sharing!

X10 is great. Any idea if a similar solution exists for Insteon?

This does not support Insteon. Working with it would require some interface for Insteon that could be connected to the duino, and code to support the incoming and outgoing Insteon protocol information from/to said device.

With that said, however, many insteon devices can also be assigned an X10 code. I am using this to control Insteon light switches that support X10 with no problems.

I am very interested in expanding SmartThings X10 capabilities. I would like to know why you chose Netduino over Arduino. Was it based on being more comfortable in a C# environment?

@Mark_S_Groves, I answered that earlier in the thread :).

Great demo. Has anyone done this with a raspberry pi?

Umm love the bridge setup. I think I’m going to try and use this hardware set up to bridge ST with radioRA2.

Does this work with the CM15a as well. I would assume so but just checking.

@johnwest80, how does the SmartThings side of this look? Will each X10 item show up as an individual tile, or does SmartThings still not allow that?

1 Like

Hi John - this looks great. Any chance you have the model for the 3d container (so I can print a similar one)?

I’m an old x10 advocate and have a few dozen wireless sensors that I was hoping to recycle for my new smartthings … I liked what I was reading in this thread but it appears the interest has worn off.

Any more recent advances?

I think the consensus is that it’s time to retire X10. I’ve been using it myself until a couple of years back, and even attempted to integrate with ST, but eventually decided it’s not worth the trouble.

There was a big stink in digital media around May 2016 about security holes in SmartThings, particularly related Z-Wave door locks. But the truth is, Z-Wave and Zigbee are pretty darn secure. X10, on the other hand, is wide open. An X10 motion or a door sensor can be easily spoofed. It was OK when the only thing you could control ware light switches. Nowadays people have their thermostats, door locks, garage doors, appliances and what not connected to their hubs, which can be a big security risk.


A similar but perhaps simpler approach uses a Raspberry Pi (or similar small Linux machine) to connect to the CM15A X10 controller. You then run mochad on the Pi to connect to the X10 controller port, and a simple Bash script to monitor for X10 commands, and then use curl to send them out to IFTTT. IFTTT has decent integration with Smartthings, and an “app” to connect an X10 command to a Smartthings switch is straightforward, no real programming required. I’ve been using this approach for years now on a Pi that I use for other node.js projects.

For details on mochad, check it out on github at https://github.com/SensorFlare/mochad/blob/master/README

1 Like