No announcement yet.

Getting Started/Documentation for Insteon PLM Plug-in

This topic is closed.
This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • mnsandler
    Plugin Supported Insteon Devices

    Plugin Supported Insteon Devices

    See the following post for the most up to date list of supported devices

    Access Point
    Alert Module
    Blue Line Innovations ZBPCM device
    ControLincs (fw 23 has issues with programmed links)
    DIN Rail Dimmer & On/Off devices
    Door Sensors
    Energy Display (good for temperature display)
    Hidden door sensors
    ICON Switches
    IO Linc
    IRLinc Receiver (basic support)
    KPL Timers
    Leak Sensor
    LED bulbs
    Load Controller
    Micro sensors (on/off, open/close, dimmers)
    Motion Sensors
    Outdoor Appliancelinc
    Range Extender
    RemoteLinc 2
    Triggerlinc and Open/Close Sensor (these are the same)

    via an extra 3rd party plugin
    - Simplehomenet devices (via simplehomenet plugin)
    - Thermostats (see the Sage Thermostat adapter HS2 plugin, or the new HS3 Insteon Thermostat plugin)

    Unsupported Devices
    - IRLinc Transmitter (2411T)
    Last edited by mnsandler; August 20, 2017, 07:12 PM.

    Leave a comment:

  • mnsandler
    Scripting commands and control

    To control groups via a script use hs.setdevicevalue

    Values are:
    1 ' On
    2 ' Off
    3 ' Brighten one step
    4 ' Dim one step
    5 ' Start Ramp Bright
    6 ' Start Ramp Dim
    7 ' Stop Ramp

    Note: You cannot set a group to a specific dim level. You would need to program each group participant to the desired level.

    Custom Plugin Script methods:

    Public Sub TransmitInsteonCommand(ByVal HC As String, ByVal DC As String, ByVal InsteonCmd1 As Byte, ByVal InsteonCmd2 As Byte)
    Public Function SetDeviceSetting(ByVal InsteonID As String, ByVal SettingName As String, ByVal NewValue As String) As Boolean
    Public Function SetDeviceOpFlag(ByVal InsteonID As String, ByVal SettingName As String, ByVal NewValue As String) As Boolean
    Public Function GetDeviceOpFlag(ByVal InsteonID As String, ByVal SettingName As String) As String
    Public Function GetDeviceSetting(ByVal InsteonID As String, ByVal SettingName As String) As String

    Example calls:
    hs.plugin("Insteon").setdevicesetting "AA.BB.CC","LED Brightness","116"
    hs.plugin("Insteon").setdeviceopflag "AA.BB.CC","Backlight","On"

    Get current setting or Op Flag:
    hs.plugin("Insteon").getdeviceopflag("AA.BB.CC","Key Beep") returns Setting as string
    hs.plugin("Insteon").getdevicesetting("AA.BB.CC","LED Brightness") returns Setting as string

    Leave a comment:

  • mnsandler
    Frequently Asked Questions for the Insteon PLM Plugin

    Q: The plugin doesn't recognize my PLM

    A: Make sure the you have the correct com port selected on the homeseer setup/interface page. Correct and restart homeseer as necessary. If you have a 2413U, make sure to install the FTDI chipset drivers and then connect the PLM and determine the new/correct com port from the Windows Device Manager Ports section. Try a different usb port and verify the virtual com port is created in the windows device manager. Try a manual factor reset on the PLM and restart HS. Use the Update Interface Database function to reprogram the PLM after the plugin can connect.

    Q: I can't register a device.

    A: Noise on the powerline can be the culprit. Try running an extension cord from the plm to an outlet near the device being registered. And try again. Also, try doing a factory reset on the new device. The final step is to do a hardware reset on the PLM via the plugin.

    Q. My PLM isn't updating the status of the HS devices on the status page

    A: Try running the Interface Reset and Reprogram from the plugin main config page.

    Q: I just bought some new devices, but they won't register.

    A: Devices purchased from SH after March 2012 require plugin v1.7 or later. Try manually linking the devices to the PLM: put the PLM into linking mode, then put the new device into linking mode. Then try registering the device with the plugin.

    Q: How do i use SimpleHomeNet devices?

    A: See the SimpleHomeNet plugin in the Insteon General Discussion forum.

    Q: How do I use an Insteon thermostat?

    A: See the Sage Thermostat plugin in the Insteon General Discussion forum.

    Q: I can't register an i2cs device, what can i do?

    A: factory reset the switch, then manually link the switch/device to the plm (put plm into linking mode, then put the switch into linking mode), then register the device with the plugin.

    Q: How do I register my triggerlinc, motion sensor, or other battery operated RF device?

    A: You need to put the device into linking mode and then register the device with the plugin. Linking mode is like Listening mode for battery operated devices. If that doesn't work, try moving the new device closer to a dual-band device or the dual-band PLM.

    Q: Homeseer isn't updating status from my wireless devices: Motion sensors, Leak sensors, etc. What can i do?

    A: This is most likely an RF communcations issue. Something is causing interference on the 915Mhz frequency: a weather station, old coldless phone, etc. Please investigate/research this possibility. You might consider buying a frequency scanner like the AirView9 so you can see what's happening. OR Try the Reset and Reprogram Interface function.

    Q: How do I use this plugin to control X10 devices?

    A: for HS3, enable X10 on the config page. Create HS devices from the dev mgmt page and use the Save as Insteon X10 button on the insteon tab. If you already have x10 device created, you can use the Update X10 Devices button to reassign any existing x10 device to the Insteon plugin so the plugin can control them.

    Q: Can I assign a Code to insteon devices on the device mgmt. page

    A: No, assigning a Code will change the Address value of the device which is the link between the plugin and the device.

    Q: I tried the Homeseer Insteon plugin, and now am trying the MNSandler Insteon plugin, but it isn't working. What am i doing wrong?

    A: Please uninstall the Homeseer plugin, and delete all its associated HS devices. Then restart my plugin so it can recreate the HS devices correctly.
    Last edited by mnsandler; September 14, 2017, 12:38 PM.

    Leave a comment:

  • mnsandler
    Troubleshooting a USB PLM when it stops responding

    This post applies specifically to the Smarthome 2412u and the 2413u.

    Excessive noise on the powerline can cause the usb connection between the PLM and the usb hub to fail. Here are some things to try if you find the plugin generating errors related to the PLM com port:

    1. Make sure you have the latest FTDI chipset drivers
    2. Move the usb cable away from power cords.
    3. Connect the usb cable to a different port on the hs server.
    4. Turn off power management for the usb hub in the Device Manager.
    5. Install a usb hub between the hs server and the PLM.
    6. Run an extension cord from another outlet on a different circuit to the PLM (as a test)
    7. Analyzing the powerline noise and add filters to major devices with motors, appliances, furnaces, etc.

    If none of the above help resolve the issue..the following is a possible work-around

    Version 1.5.3 and later of the plugin will attempt to restart the com port every 5 secs for two minutes. If a restart is unsuccessful, the plugin will initiate a 'Insteon Special Trigger' called 'Interface Crashes', you can use this in an event to restart hs or even restart the hs box which temporarily resolved the issue until next time.

    I hope you never need this information.
    Last edited by mnsandler; December 18, 2012, 09:53 AM.

    Leave a comment:

  • mnsandler
    Insteon Plugin API for other Plugins

    Two Events:
    1. HS.RaiseGenericEventCB("Insteon", new string() {"Ready for Registration"}, me). see Method #4 below
    Raised after the Insteon Plugin is completely intialized and ready for external device registration

    2. HS.RaiseGenericEvent("Insteon",New Object() {"Data Received", UniqueName, InsteonID, CmdStr}, "Insteon")
    cmdstr is the full cmd recvd. Byte 0 is bogus (it was put there to make the cmdstr compatible with the old SDM msgs). Your insteon id will start at byte 1.
    Raised when the PLM Plugin receives a msg from an externally registered device

    Public methods
    1. Public Function ExtDev_GetPLMAddress() As String
    gets the Insteon ID of the PLM

    2. Public Overloads Function ExtDev_TransmitToExternalDevice(ByVal UniqueName As String, ByVal FlagByte As Byte, ByVal Cmd1 As Byte, ByVal Cmd2 As Byte) As Integer
    send a standard cmd to your device

    3. Public Sub SetLogLevel(ByVal LogLevel As Integer)
    allows you to change the plugin logging level on the fly (0-3 are valid values)

    4. Public Function ExtDev_RegisterExternalDeviceSupport(ByVal UniqueName As String, ByVal InsteonID As String, ByRef GroupList() As Integer) As Boolean
    GroupList is just an integer array of group numbers: eg. 1,2,3,0xEF. Providing the list of Group Numbers (from your device) allows the Insteon Plugin to reprogram the PLM with the correct values after a PLM Reset.
    Doesn't return anything useful.

    To get started, you need to register your plugin with HS in order to get the generic Events the Insteon plugin raises:

    Sub RegisterGeneric()
    hs.RegisterGenericEventCB("Insteon", Me)
    End Sub

    Then you need to trap any Events raised, like this

    Public Sub HSEvent(ByRef Parms() as Object)
    If parms(0) = EV_TYPE_GENERIC Then
    ' Handle the event
    End If
    End Sub

    Leave a comment:

  • mnsandler
    Plugin Documentation and Supported Device List

    Please see the "Getting started with the PLM Insteon Plugin & Homeseer" before referencing this document. Once you have the PLM and plugin installed and working, this document will help you understand the features and capabilities of the plugin.

    Main Configuration Page

    Interface Port Enter COM1, COM2, etc if you are using a serial or usb PLM. enter an {IP Address}:{Port Number} (eg if you are using the Insteon Hub. Enter the username and password for the Hub only. The default user name is admin, and the default password is the Hub's Insteon ID in all capitals.

    Insteon Hops Allowed Specifies the number of times an Insteon msg is repeated within the network. I would suggest leaving it at 4. Lowing it may cause messages to not reach their destination.

    Number of retries on communication failure Specifies the number of times the plugin will attempt to transmit a message to a destination.

    No Response Timeout for devices Specifies the number of seconds the plugin will wait for a response from the destination before the plugin retransmits the message.

    Logging Level Specifies the level of detail the plugin sends to the HS log. Please use Detailed Logging when posting logs to the forum for help.

    Sort Device Links Specifies the sort used for the links on the device page either by number or by the type of link.

    Perform group clean-ups when transmitting group commands After a group message is sent from the plugin, individual message are sent to each member of the group to ensure they heard the group message.

    Disable automatic polling Use this to completely disable device polling for any device that has a non zero polling value. This is a good option when you are troubleshooting a specific device and don't want all the polling log entries.

    The following are unregistered Insteon addresses found in the network If you have old, unused, or unknown Insteon IDs in the network they can cause unnecessary traffic as source device will try to send messages to these non-existent devices. To clean this up, visit the source device and delete the links associated with the unregistered addresses.

    Save Changes on this Page Click this to save the configuration changes made to this page.

    Plug-in utility Functions

    1. Update Insteon Interface Address Database - this will check for and write missing Insteon IDs and links into the PLM.

    2. Hardware Reset and Reprogram Interface - this will execute a reset of the PLM and then completely reprogram the address database. There is also an Insteon Action so this function can be run from an event.

    3. Program and Replace/Swapped Interface - this will reprogram all the registered device with the new PLM address. you must provide the old insteon interface ID.

    Note: RF devices will have to be reprogrammed manually by entering linking mode, deleting the old links and programming the device for homeseer.

    4. Generate Support Log File - This will dump the detailed log information save in memory to a Insteon Error Report.log file.

    5. Display Interface Links - Read and display the PLM internal links to the screen. Useful if you if you suspect communcation issues with a specific device. Every registered and external device should be listed here.

    Manage Devices

    Use this page to register, program, create links, and change settings on devices.

    General Device Features:

    1. Sync linked responder devices - select this option to have the plugin update any linked device when this device changes. For example, if you have two switches in a 3-way circuit, you can control one switch from the hs status page and the plugin will automatically control and update the other one. This feature is only used when devices are controlled from the hs status page or from an event but not locally.

    Keypadlinc Features:
    1. Do not auto-sync keypad buttons - selecting this option will stop the plugin from updating the hs devices that associated with the KPL btns.

    Reprogram Device - This will reprogram the device with the existing links after the device is manually factory reset. Save the insteon.ini file before running this in case something goes wrong. you can reload the ini file, restart hs, and try again.

    Manage Groups

    Use this page to create, modify, program, and reprogram groups.

    Creating a Group

    1. Use the Select an optional Controller device for this group: field to select a device like a KPL button as a alternate controller for the group. This will all you to control the group from either the Homeseer status page or from the device itself. The plugin will update the related devices.

    2. Then check the devices you want included in the group and selecting the Setting and Ramp Rate.

    3. Click the Add and Program Group button at the bottom of the screen to initiate the link programming.

    Reprogram Selected Groups

    Select the groups to reprogram and click this button. This will reprogram missing links from the associated devices.

    Homeseer Events and Triggers

    Insteon Special Triggers
    Most of the special triggers capture unique conditions transmitted by switches and other controller devices.

    Transmits an On Command - a single tap on
    Transmits a Fast On Command - a double tap on
    Transmits an Off Command - a single tap off
    Transmits a Fast Off Command - a double tap off
    Transmits a Start Ramp Down Command - a press and hold off
    Transmits a Start Ramp Up Command - a press and hold on
    Transmits a Ramp Stop Command - the release after a press and hold (either way)

    Do not bother with the following two triggers in HS2 they don't seem to do anything anymore. They do not exist in HS3.
    Transmits a Local Load Control On Command
    Transmits a Local Load Control Off Command

    Resets iMeter - This trigger will fire if the selected iMeter is reset to zero. This can be handy if you are logging data from the iMeter.

    Interface Stops Responding - This trigger will fire when the Interface fails to transmit X number of commands consecutively. This can be used to notify you with a standard Homeseer email action for instance. The plugin will try to restart the interface port. X is defined by an insteon.ini setting as FailMargin. See below

    Interface Crashes - This trigger will fire if the plugin can't successfully restart the PLM after the FailMargin has been reached. This can be used to restart HS if necessary. You will need a script or some other mechanism to do this. Restarting HS is not a function of the plugin.

    Interface Recovers - this trigger will fire when the plugin can connect to the interface again after a crash

    Insteon Actions

    Send Device Command - send a custom Insteon CMD1 & CMD2 to the selected msg. You will need to know the command data.

    Set Light Level at Ramp Rate - set the on level at the selected ramp rate for i2 switches. May not be supported by older i1 devices.

    Reset and Reprogram Interface - perform the plugin function to do a hardware reset on the interface and then reprogram its database. Not recommended for regular use. You must have good communications with the interface to do this. Do not try to run this when the plugin is having trouble communicating with the Interface or if any of the Interface triggers have fired. This action will not work with those triggers.

    Reset iMeter - clear the accumulated data in the selected iMeter.

    Set Polling Interval - change the polling interval of the selected device. Polling is entered in minutes.

    Change Device Settings - change any setting avail on an i2 device edit page on the fly. Could be used to change the on level at light and back in the afternoon. Select the device first and then select the desired setting.

    Change Op Flags - same functionality as the above, but for the Op Flags on the device edit page. Select the device first and then select the desired op flag.

    Disable Interface - used to disable the processing of data from the interface; potentially used during a power outage.

    Enable Interface - used to enable the processing of data from the interface; used to restart the plugin after power is restored.

    Script methods
    hs.plugin("Insteon").setdevicesetting "Insteon ID", "Setting Name", "Setting value"
    hs.plugin("Insteon").setdeviceopflag "Insteon ID", "Setting Name", "Setting value"

    hs.plugin("Insteon").setdevicesetting "AA.BB.CC","LED Brightness","116"
    hs.plugin("Insteon").setdeviceopflag "AA.BB.CC","Backlight","On"

    Get current setting or Op Flag:
    hs.plugin("Insteon").getdeviceopflag("AA.BB.CC","Key Beep") returns Setting as string
    hs.plugin("Insteon").getdevicesetting("AA.BB.CC","LED Brightness") returns Setting as string

    Insteon.ini Settings (These are all available on the Advanced Tab within the plugin config pages)

    To adjust the Hub parameters, add the following section, and adjust the values


    ResponseTime (seconds) - how long the plugin will wait for a response
    GetXMLBufferInterval (msecs) - how frequently the plugin will poll the hub for new inbound messages.

    PortType=Serial | USB
    DisableRestart=True | False
    KPLGroupLinks=True | False
    ProcessACKs= True | False
    FailedPollThreshold = 2

    If you use the FTDI Chipset drivers, you may want to convert the plugin to use the FTDI drivers instead of the default serial port driver. Set one of the values for PortType: Serial or USB
    DisableRestart can be used to disable the automatic restart logic of the plugin in case the port because non-responsive.
    KPLGroupLinks is used to disable the use of links in the PLM to control KPL buttons. This is only need if you have dozens of KPLs.
    ProcessACKs forces the Insteon plug-in to process ACKs received for commands it did not send (ex: those from other controlers); it normally ignores them

    The following are for any interface
    FailedPollThreshold=0 to continue to poll devices that do not respond. The default value is 2. Disable polling after 2 failed attempts


    PLMClearDelay gives the hub time to clear itself before trying to send the same msg. increase in increments of at least 100. 250 is the default.

    SettleTime is a small delay between successful tranmissions; not sure this is necessary for your current issue. 150 is the default.

    FailMargin is the number of consecutive failed transmission attempts that occur before the Interface Stops Responding trigger is fired. 10 is the default.
    Last edited by mnsandler; June 1, 2019, 07:49 AM.

    Leave a comment:

  • mnsandler
    Getting Started with Insteon and Homeseer

    Recommendations for Getting Started with Insteon and Homeseer

    See the following post
    Last edited by mnsandler; March 22, 2017, 06:51 AM.

    Leave a comment:

  • mnsandler
    started a topic Getting Started/Documentation for Insteon PLM Plug-in

    Getting Started/Documentation for Insteon PLM Plug-in

    I consolidated all the individual threads/posts into this one thread so there aren't as many Sticky threads taking up so much room at the top of the forum.

    Documentation Reference List

    Getting Started with the Insteon PLM Plugin & Homeseer

    Insteon PLM Plugin Documentation

    Insteon Plugin API for other Plugins

    Troubleshooting a USB PLM when it stops responding

    Frequently Asked Questions

    Scripting commands and control

    Plugin Supported Insteon Devices

    Swap PLM

    Related useful threads

    Repair a non-functioning PLM

    Insteon Dual Band / RF Phase Bridging 101

    Keypadlinc - Example usage with the Insteon Plugin

    Serial PLM over Ethernet
    Last edited by mnsandler; November 10, 2018, 10:08 PM.