Insteon PLM Support

For those interested, the insteon_plm module has been updated significantly and is coming in HA version 0.65.0. It fixes a lot of the old issues with the module such as much better audodiscovery, hanging when the network is chatty, etc. It also added a few more devices like FanLinc and full support for I/O Linc. Working on KeypadLinc and Thermostat now.

2 Likes

My Insteon switches are not updating their status in the HA UI. I’m thinking this bridge would resolve my issue but I’m new to HA so I may have something misconfigured.

Thoughts?

@oliwa Can you share your insteon_plm configuration in the configuration.yaml file? Just to confirm, you have a PLM, not a hub, correct?

Yep, I have this guy: https://www.insteon.com/powerlinc-modem-usb

Here is my config…

# Insteon PLM
insteon_plm:
  port: /dev/ttyUSB0

I already had the switches paired because I’m upgrading from a Vera so I had the switches previously working with a Vera Edge.

Thanks. So the switches are showing up in HA but not updating status, correct? If you change the state via the UI does the physical switch update?

Correct. When I restarted HA my 3 switches showed up. When I turn them on/off in HA the physical devices responds and HA is updated correctly. If I manually toggle the physical switch HA does not display the updated status.

OK, that is likely a linking issue. You need to link the PLM as a responder to group 1 of the switch. This can be done in HA if you want or you can use other software to do that if you have it. To do it in HA click on the “Services” icon in the lower left corner of the side menu (it is under “Developer tools”). This will take you to a screen that will allow you to call a service. From the “Service” pull down select insteon_plm.add_all_link. In the "Service data` field enter the following:

{"mode": "responder", "group": 1}

Press the All Link button on the device first, then press “Call Service” button in HA. This should create the link you need.

Do you mean the SET button on the side? I don’t see an ALL LINK button.

Sorry, yes, the SET button

I tried and the device is still not updating in the HA UI.

I did the service call with the parameter you said and the green light on the plm started to flash. I hit the set button and tested. The device status in the UI did not update when I toggled the physical device.

If I just hit the set button the plm the green light does not flash.

I held the set button for a few seconds and the green light started to flash. I then tried the service call again. The green light was still flashing so I hit set. Tested again and no joy.

Did I miss a step? Any other suggestions?

Just to make sure, when you say you hit the set button, I assume you mean on the device, not the PLM correct?

Assuming you pressed the SET button on the device can you send me the link table for the PLM and the device. Here is what needs to be done.

  1. Make sure your log level is info. In your configuration.yaml file add the following lines (a restart is required to make any changes effective):
logger:
  default: warn
  logs:
    homeassistant.components.insteon_plm: info
  1. From the Services tool under Developer Tools run the insteon_plm.print_im_all_link_database service. It does not require any parameters in the Service Data field.

  2. You should now have a table printed at the bottom of the home-assistant.log file. Please send me the contents of that table. It should look like this:

2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm] ALDB load status is LOADED
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm] RecID In Use Mode HWM Group Address  Data 1 Data 2 Data 3
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm] ----- ------ ---- --- ----- -------- ------ ------ ------
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  004e    Y     R   N      8 44.89.9F     0     0     0
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  004d    Y     R   N      2 41.89.CF     0     0     0
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  004c    Y     R   N      1 44.89.9F     0     0     0
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  004b    Y     C   N      0 20.48.75     5    10    14
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  004a    Y     C   N      0 14.61.9B     2    13    56
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0049    Y     C   N      0 45.E5.15     2    47    72
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0048    Y     C   N      0 47.01.47     2    26    65
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0047    Y     C   N      0 41.89.3F     2    57    68
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0046    Y     C   N      0 33.0A.FA     2    42    67
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0045    Y     C   N      0 20.48.75     1     0     0
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0044    Y     R   N    239 20.48.75     0     0   239
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0043    Y     R   N      4 20.48.75     0     0     0
2018-07-19 09:52:44 INFO (SyncWorker_1) [homeassistant.components.insteon_plm]  0042    Y     R   N      3 20.48.75     0     0     0

No, I pressed the SET button on the PLM. Since the switches were already paired with the PLM when I used Vera I thought the command you gave me was to update the PLM.

Since I misunderstood, are these the steps I should try before the debugging info…

  1. Press the button on the physical switch (I think it beeps or flashes)
  2. Call the insteon_plm.add_all_link service with the parameters: {“mode”: “responder”, “group”: 1}
  3. Test

To be clear, the set button on the PLM is not to be pressed.

Yes, that is correct.

Tried a few combinations of running services and pressing buttons…still no joy. Here are the logs…

2018-07-19 22:11:11 INFO (MainThread) [homeassistant.components.insteon_plm] Looking for PLM on /dev/ttyUSB0
2018-07-19 22:11:12 INFO (MainThread) [homeassistant.components.insteon_plm] New INSTEON PLM device: 295d4e (lightOnOff) switch
2018-07-19 22:11:12 INFO (MainThread) [homeassistant.components.insteon_plm] New INSTEON PLM device: 2969a2 (lightOnOff) switch
2018-07-19 22:11:12 INFO (MainThread) [homeassistant.components.insteon_plm] New INSTEON PLM device: 2a4cbb (lightOnOff) switch
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] ALDB load status is LOADED
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] RecID In Use Mode HWM Group Address Data 1 Data 2 Data 3
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] ----- ------ ---- — ----- -------- ------ ------ ------
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] 0002 Y C N 1 2A.4C.BB 2 42 67
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] 0001 Y C N 1 29.69.A2 2 42 67
2018-07-19 22:14:08 INFO (SyncWorker_19) [homeassistant.components.insteon_plm] 0000 Y C N 1 29.5D.4E 2 42 67

The ALDB data shows that the links are in one direction only. The PLM can control the switch. But we need to get it so that the PLM responds to the switch. Let’s try this:

  1. Press the SET button on the switch
  2. Press the SET button on the PLM

The order is important.

Ok, I finally got this working!

Here is what I did.

I held down the SET button on the switch until the light (on the switch) started to flash. Then I held down the SET button on the PLM until it’s light started to flash. The light on the PLM flashed once or twice and then stopped and then it made a “click” sound.

I tested and now I have 2 way communication!

Thanks @teharris1 for all of your help!

No problem. Sorry it was so hard. In general the way INSTEON works is based on links. But links go in both directions. There are controllers and responders. As you would suspect, controllers control responders and responders respond to controllers. This can be short cutted by having the PLM as a controller always ask the responder for status since a responder will always respond if a controller asks for status. However, the better way is for two way links to be set up, this way the PLM is a responder to the other device (in your case a switch). This way whenever the switch state changes the PLM hears it and responds to it. Hope that helps.

1 Like

A breaking change is planned to both insteon_plm and insteonlocal. Please see this thread and give your input:

1 Like

I would also go with option 1 just to keep it simple. I currently use Insteon-MQTT bridge which allows Home Assistant to talk to Insteon-MQTT through Mosquito and then Insteon-MQTT will do the rest. If the new Insteon component can talk to my Insteon 2242-222 hub through a networked PLM interface, that would allow me to get rid of Insteon-MQTT bridge and Mosquito.

1 Like