Insteon Library / Interface for Arduino

I'm looking to control a couple INSTEON dimmer switches via an Arduino. I'm aware they are "X10 ready" but I'd really love to use the more advanced INSTEON protocol. Are there any libraries to help me do this? Any projects which I could reference to help me make one?


I am looking for a similiar solution too. :|

The misterhouse project has a lot of information on the protocol (; go to wiki and search for insteon. MH works with insteon devices and is open sourced. I used to have a bunch of links to lower level protocol information but lost them in an unfortunate hard drive incident :(

One of the problems with Insteon is that it's a closed protocol and the manufacturer isn't exactly open source friendly - folks have managed to reverse engineer most of it and there is no shortage of documentation available. The easiest route to making this work would be to use one of the Insteon serial PLMs as an interface via RS232, or perhaps via one of their web-based controllers.

The other issue with Insteon is that it's really a single-vendor solution; you may also want to look into ZWave, as it's more of an industry consortium with more devices and manufacturers available. (Note: I'm somewhat biased, as I'm the author of the Python port of OpenZWave. YMMV.) I've found ZWave to be much more robust in a typical home environment - line noise is still an issue with Insteon devices. My house is about 50/50 ZWave and Insteon; any new devices I purchase will be ZWave.

BTW, frustration with the expense and generally poor quality of available HA systems is what drove me to Arduino in the first place. The commercial devices tend to be massively overpriced, severely limited in functionality, and are often quite buggy. My current position is to only use these systems for direct lighting/AC control and to use microcontroller-based solutions for everything else. I've spent a ridiculous amount of money on HA equipment over the last few years - please feel free to ask questions and learn from my experiences!!!

Thanks for mentioning Z-Wave! After looking into the technology it seems that it'll do just what I'd need it to do. ;) Do you have any resources or links to places where I can get started with it and learn to implement it into a microcontroller like an Arduino? is a good place to start. The forums are very active, don't be afraid to ask questions. Do know that this is still a pretty low-level project - expect to get your hands dirty. If it's a shrink-wrapped solution you're after, then this ain't it :P

Thanks for the quick response in shedding some light on this.

Like you said, may be since InsteON is proprietary, you hardly find any Arduino references ?

But from the price point of view, Insteon looks more affordable.

If you find Arduino references for either solution, I'd like to hear about it. You won't find official Arduino references for either technology.

Pricing is comparable for Z-Wave and Insteon. You will find more high-end (read: massively overpriced) offerings in the Z-Wave realm - look around at devices from Cooper for examples. Both technologies have "budget" lines that are best avoided. BTW, If you decide to go with Insteon, avoid the low-end "Icon" switches, I've found them to be terribly unreliable.

Both technologies are expensive. This is still a niche market, and prices are set accordingly. If you want to go cheap, then X10 or DIY are your best bets. If you do go with X10, set your expectations accordingly - it's klunky.

Insteon is based upon X10, and despite the vendor's insistence to the contrary the devices are still subject to that technology's limitations. Even after addressing issues of phase bonding and aggressively filtering noisy electrical devices (computers, UPS, etc), I've still got mysterious "black holes" with Insteon devices that won't communicate. IMHO it's not worth the hassle, especially when every Z-Wave device i've installed has been plug-and-play; also, since Z-Wave is based upon wireless mesh networking, the more devices you have installed the more reliable the whole network becomes. It works very well in practice.

The newer "dual-mode" Insteon devices are also based upon mesh networking technology, and they do work fairly well. They are, however, a bit more expensive than their line-only counterparts.

My favorite Z-Wave switches are the Leviton RZI06-1LX dimmers, they are extremely well built, feature rich, quiet, and reliable; I bought a bunch during an online sale for about $30 ea. I believe that MSRP is somewhere around $60 each (!) The GE Z-Wave switches are OK as long as you're using them with incandescent fixtures; if you're thinking of LED lighting, I'd avoid them - they seem to have issues with newer LED solutions, even those marked as "dimmable".

Aeon labs has some new products coming on the market that look promising, including modules that you install directly in your switch and outlet boxes along with your existing switches and outlets. These provide automated dimming and power control, and the outlet devices provide metering capabilities. Apparently the devices are still in UL testing. The "Mi casa verde z-wave smart switch" is a nice solution as well, providing remote power control plus metering in a small power dongle - I use a couple of these in my house.

Skip the motion sensors altogether. They are massively overpriced and extremely limited in function. I've actually found the cheap X10 PIR sensors to be extremely reliable, and they are very, very inexpensive. Combined with an X10 wireless receiver like the WGL W800 they make a quite reliable motion/occupancy system.

Keep in mind that any of these technologies require a controller to be useful. I use the HomeSeer Z-Troller as my primary Z-Wave interface; it's a serial device that also acts as an inclusion controller (for adding devices to the network). I've used several different models and have found this to be the most trouble-free one. My current Insteon controller is a dual-mode serial PLM.

I found the Leviton RZI06-1LX you mentioned and it appears to be unavailable for purchase. Is the VPI06-1LX the same thing? I find it to be somewhat less attractive.

Thanks again! Your direction and experience here is much appreciated. One of my projects this year is to automate (to some useful degree) my basement which is being finished.

Sorry, was posting from work and grabbed the wrong model. I actually have the vri06-qlx. The picture doesn't really do it justice. Your local home depot probably has a bunch of different models on display, id suggest messing around with a couple before buying a bunch. You probably won't want to buy there though, their markup can be pretty crazy.

By all means pick a design you like. They are pretty pricy so you'll probably be looking at em for a while. One of the reasons I like the leviton models is that they also make dumb switches with the same style. You don't have to automate everything! I have a leviton motion sensing switch in my downstairs bathroom that is just a basic dumb occupancy sensor; I didn't see any value in zwave for that location. Style wise it fits in well, which gets spouse approval.

Don't underestimate the benefit of that last point. If the S.O. doesn't like how it looks, it ain't gonna fly :P

A couple of months ago I started using Arduino to interface with my Insteon home automation system. Here's my equivalent of "hello world" where I use my arduino to switch a lamp on and off:

I've made a ton of progress since then, using an graphical floorplan interface exactly like this one to control the lights and appliances in my home (as well as monitor data) using Arduino connected via ethernet:

Now I'm working on a simple shield which you can plug atop the arduino ethernet board to turn it into an Insteon home controller. I should have it ready sometime in the next couple of weeks. If anyone has an interest in testing the first batch of these boards, please get in touch.


Wow, this is awesome. I'd love to help you test out your boards. I plan to use a host of Insteon dimmer switches in my basement. They aren't cheap, but if I can get them talking to an Arduino, the possibilities are endless and worth the price. Invite all my friends over and show the awesomeness off. Haha

I'm definitely interested in an Arduino Insteon Interface Shield. I'd be available for beta testing if you need it. Thanks!

GoodRobot: A couple of months ago I started using Arduino to interface with my Insteon home automation system. Here's my equivalent of "hello world" where I use my arduino to switch a lamp on and off:

Excellent news! Do you have more details? How are you interfacing with Insteon (RF, serial->insteon PLC, direct AC?) Would love to hear more about this...

Great to hear there's some interest in testing this out! It's going to be a rather simple board designed to plug into the ArduinoBoardEthernet with an RJ45 jack so that it can be easily connected to the Smarthome PowerLinc (and from there control all the AC stuff). I'm using serial commands to talk directly with the PowerLinc, which works quite well.

To make sure the shield isn't just wasted board space with a RJ45 jack on top, I hope to have a couple of relays and dry contact sensing terminals to facilitate interaction with other sensors and home automation equipment too.

Will keep you posted on progress, but the board design should be finished within a couple of weeks, and I can begin testing the first PCBs soon after.

One of the things I was wondering about the design of the board is the placement of the RJ45 jack (used to connect to Insteon powerlinc modem).

The jack could either be mounted atop the shield (which increases the board height substantially). Or it could be mounted on the bottom and extended out the back - that keeps the overall height of the combined arduino/shield much lower, but makes it a little bit longer in the back. See attached photo below for an image of what that jack placement looks like.

What do you think? Is it better to keep the board low by hanging the jack over the back (then I can make smaller enclosures for a combined arduino/shield unit), or put it atop the shield which keeps the footprint the same but increases overall height?


I'm personally a fan of putting it on top, since I'm quite fond of the Arduino's footprint. Would this make it a little harder to break as well? Keeping it uniform like most other shields is a visual advantage, but this is prototyping after all. Go with whatever's most functional.

Shield design is progressing well. It looks like it should fit nicely within the footprint of the Arduino.

I’ve attached a snapshot of the still-in-progress circuit board design.


Keep up the good work, GoodRobot! I am excited to try this shield! As for me, I would prefer to keep the footprint the same, but I would be just as happy with the RJ45 connector hanging off the back.

Hi All,

Sorry for the radio silence the past few days. The design of the board is now finished, and it’s time to order and then test the board to see if it works as intended.

To get the ball rolling quickly I was grateful to receive the help of a local college who was able to mill out the circuit. It looks terrific, but upon closer inspection I realized that there were a lot of bridges on the traces which risk shorting things out, so I’m going to have to wait for another board instead.

Still, I thought you might be interested in seeing photos of it (attached). Taking your advice, the design tries to stick within the confines of the Arduino footprint. The first photo is the PCB only. The second photo shows what it looks like placed above the Arduino Board Ethernet.

Alan (aka GoodRobot)

In addition to the ability to connect to the Insteon modem, the shield should also allow connections to the terminals of a security alarm system (e.g. PGM terminals to know the status of the alarm system or a zone), or to a dry contact device - allowing you to wire it to a contact sensors and read the status for example.

I'm curious about people's opinion of these extra features and the usefulness of any add-on home automation capabilities. Are most people interested in Insteon only, or is there some other home automation features that you'd like to see in such a board?