[download] Insteon PLM Driver


Active Member
File Name: Insteon PLM Driver
File Submitter: John in VA
File Submitted: 08 Aug 2013
File Category: Premise
Author: GeorgeInVA
Contact: PM me

Since Smarthome no longer sells the Insteon PLC, I was forced to re-write my driver to use the PLM.  The PLM isn't as smart as the PLC, but basically does the same sort of functions.  Because it is different, the new driver doesn't behave exactly the same way as the old driver.  
The usual disclaimers apply.  It hasn't been thoroughly tested and is at the Alpha stage.  As always, I'm interested in feedback.
This release of the Premise Insteon Minibroker PLM Driver provides basic functionality to link Insteon devices to an attached Insteon Power Line Modem (PLM) and control those devices.   The driver uses the Premise Minibroker component so it can be hosted on any machine on the home network as long as there is TCP/IP network connectivity between that machine and the Premise server.  However, it is recommended that the Insteon Minibroker driver run on the same machine as the Premise Server. 
  • Insteon PLM with firmware version 9B or greater
  • Premise SYS Home Control System V2.1
  • Due to the limitations of the Premise Minibroker component, this driver will only run on certain Windows 32 bit operating systems (Windows XP and Windows 7 with DEP mode disabled)
Key features
  • Devices are generalized into four categories (see Insteon Device Categories and Product keys document version 20081008)
    • Dimmable lighting control – DevCat 0x01
    • Switched lighting control – DevCat 0x02
    • Generalized controller including multiple switches – DevCat 0x00
    • Health, Safety, and Security (A specialized motion detector device has also been added for this category to support its unique functionality) – DevCat 0x10
  • General categorization allows for future versions of Insteon devices to be supported without modification of the code as long as they use the device categories assigned to the generalized devices listed above.
  • Insteon groups are supported by creating a “Group” device within Premise.  The “Group” device can be bound to any home-level object and will act like any device with the PowerState property.  Currently only on/off functionality is implemented.
  • ON/OFF/DIM commands (as supported by devices)
  • Synchronization of Switch state and Premise objects (when crossed linked)
  • PLM Link mode initiated from within Builder (no requirement to press PLM button to put it in Link mode)
  • Support for link modes where the PLM is both a Master and a Slave.
  • Automatic registration of devices within Premise after a link
  • Builder-initiated read of the PLM database and automatic population of Premise with detected Insteon devices.
  • X10 support is not provided
  • The builder can specify into which group to put a device during the linking process.  The Set_Group property under Insteon PLM Root must be set to the proper group number PRIOR to beginning the link process.
  • Installs as a Windows Service
  • Insteon device status is requested at driver startup to synchronize Premise SYS state with actual state of the Insteon device
  • Support for multi-switch devices (i.e. RemoteLinc, KeypadLinc, etc.).  MultiSwitchController, InsteonDimmer, and InsteonSwitch Premise device classes have an attribute to set the number of switches or buttons available on the physical device.  When set, the driver automatically creates the underlying premise objects as children of the device.  Each button or switch must be independently linked using the LinkModeSlave switch under the InsteonPLMRoot object.
  1. Import the InsteonMiniBrokerPLMDriver .XDO file into Premise
  2. Double-click setup in the installation directory
  3. Update your Premise Server name, userID and Password when prompted.  Also, enter the COM port the PLM is connected to.  There is no automatic detection of the COM port on this version.  If you enter the incorrect COM port, you will need to use the registry editor to enter the correct port. 
  4. Using the registry editor, find the key associated with the service:  HKLM\Software\GeorgeCo Professional Services\PremiseInsteonPLM
  5. Under the PLM subkey, edit the entry called Port and provide the COM port that is connected to your PLM
  6. Under the PremiseServer subkey, edit the entry called ServerName and provide the name or IP address of the server running Premise in your setup (localhost works if the driver runs on the same server as Premise)
  7. Go into “Services” under Windows Administrative tools and locate the Premise Insteon PLM Driver. 
  8. Click Start to start the driver.  The event log should have entries that indicate the driver is up and running.
  9. To add a device as a slave:
    1. Put the PLM in Link Mode using the LinkMode property in the InsteonPLMRoot object.
    2. Link the remote device using its particular linking instructions.  This usually involves setting and holding a “set” button or “on” switch on the device until an indicator or attached load flashes twice.
    3. Take the PLM out of Link Mode by unselecting the LinkMode property in the InsteonPLMRoot object.
    4. Repeat to add multiple devices
  10. To add a device as a master:
  11. Put the device Link Mode using the device-specific instructions.
  12. Select the LinkModeSlave property under the InsteonPLMRoot Premise object.   The device should immediately link.
  13. Take the PLM out of Slave Link Mode by unselecting the LinkModeSlave property in the InsteonPLMRoot object
  14. Repeat to add multiple devices
To Do:
  • Implement Unlink mode for PLM
  • Implement COM port change functionality from within Builder
  • Synchronize LinkMode property in Builder with the actual LinkMode of the PLM.  Currently the user needs to remember to reset the link mode property after every linking operation.
  • Put the PLM into LinkMode to support linking to multiple devices.
  • Implement RampRate support for Dimmers.
  • Implement dimmer functionality for Insteon groups
  • Implement AutoShutoff functionality

Click here to download this file
Nice job, John!  Also glad to see you're still active!
I'll give it a try and report back, as soon as I get done w/ the JQM Minibrowser...
  • Due to the limitations of the Premise Minibroker component, this driver will only run on certain Windows 32 bit operating systems (Windows XP and Windows 7 with DEP mode disabled)
Is this still true. I'd like to implement some Insteon (or Z-wave; I dunno) wireless stuff and found this. Was sad that it has this 32 bit issue because my host is x64.
Charlie - I don't recall specifics, but I had used John's Insteon module. Worked well, once I got it working. I don't recall the 64 vs 32 issue; I was using Windows Server 20XX (I don't remember which version). Should it make a difference if you load it as a 32-bit (I simply don't know...)
I have a version that I've been running that will work with 64 bit Windows.  The issue was not with 64 bit windows, but with Visual Studio.  VS2013 generates code that allows minibroker to work in a 64 bit environment.  The down side is that MS no longer supports installer projects and you need to use Install Shield (a third party product) to build the installer app.  They do offer a limited version for "free", but it won't allow for customization of the installer screens.  If you like, I can post an update that uses the "brain-dead" installer and you can go into the registry to enter key info like COM port and Premise Server name...