Insteon Programming PLM Basics X10  PLM Receiving Insteon Commands Ramp Rate Devices  i2cs Deus Ex Machina

Insteon Programming

This is a compilation of information I've found useful while programming for Insteon. My particular application is written in Visual Basic 2005, with Smarthome's PowerLinc Modem Serial Interface (2412S) (aka the PLM), and some support for the earlier PowerLinc Controller USB (2414U) (aka the PLC). Some of these notes will be useful to anyone programming for Insteon, other parts will be specific to VB2005 and/or the PLM.

For those programming the PLC in Visual Basic 6, a great place to start is Efundies. For programming the PLC in VB.Net, try I've had mixed success with the PLC. On some computers it mostly works, on another it never does. The PLC uses drivers which are no longer supported and which still have some bugs. The PLM is faster and more reliable, but there are no drivers available so you'll have to do more of the work yourself. I've provided sample code on the Programming pages below. All examples are for Visual Basic 2005. (Serial port handling is completely different in the earlier version of VB.Net and in VB6, but these examples should be fairly close in VB2008.)

Programming (VB2005)

PLM Basics
Sending X10 Commands via PLM
Receiving Events from the PLM

Insteon Reference

Insteon Commands
Ramp Rate Chart
Device Reference List
The i2cs Protocol

Other Sources

Insteon Whitepaper - somewhat out-of-date, but indispensable guide to Insteon communication
Insteon Modem Developer's Guide - documentation specifically for programming the PLM, gives all the commands it sends/receives
Efundies forum - discussion of Insteon hardware and software development and modifications
FluentDwelling - class libraries for .Net (Visual Studio 2010) for the PLM

Linux Home Automation - tools and lots of links for those programming Insteon on a Linux system
PLM Tools - a set of utilities for interfacing the PLM from Linux