Insteon PLM Support

Gonna resurrect this thread - the missing parts - keypad, IOLinc (think garage doors, etc), motion sensors, and wall outlets is killing me… I REALLY don’t want to have to build an entirely new backend for my Insteon devices - I have more than 50 :confused:

hey guys
i have two problems
1- i linked and configer insteon it works for one time and one button but the status doesn’t update in the platform and every time i have to restart the home assistant too use is also for one time ?

2- how i can link the insteon devices with the MQTT ?

I just started adding insteon devices (I have a hub) and noticed the insteonlocal python package says that it needs to be polled to get device updates. Am I correct in thinking that the PLM modems doesn’t have this problem since it’s seeing the broadcast directly?

And does anyone know if the USB dongle (https://www.smarthome.com/insteon-2448a7-portable-usb-adapter.html) works w/ this as well?

Thanks,
TD

I have finally achieved limited success with the Insteon PLM… I am using the Hassio version 0.51.2 of Home Assistant on a RPi3 with a PLM. In this configuration the RPi does not always pick up the PLM, but when it does all the devices that are linked to the PLM are downloaded and displayed on the user interface. As you add devices they are immediately added to the list of Insteon devices. I have one of the Insteon USB devices version 1.05 and it does not work with hassio.

I have had issues with this setup however, but have not yet debugged the exact problem. The issue is either one of two things: a) when changing a configuration file for insteon devices (adding the friendly names, etc) and restarting hassio I have lost the capability to control the PLM in real-time but the database of devices and their current state still download if the device is detected. b) when linking a new device to the PLM if the process fails it appears to cause issues and real-time control is lost. For both of these issues, I have had to reset my PLM and relink all the devices… if I have not changed the configuration file after this process everything seems to continue working. I have then been able to use the emulated_hue to link these to my google home device. When everything works it is nice!

Just connected a USB PLM module and I’m having a few problems. I have the modem connected and a single lamp dimmer module plugged in. If I run insteonplm_monitor, I get some weird output. It says there is a thermostat even though I don’t have one and then it throws an asyncio error.

INFO:insteonplm.protocol:New INSTEON Device 3C.4F.C5: Thermostat (05:0b)
INFO:insteonplm.protocol:New INSTEON Device 43.AF.9B: ToggleLinc Relay (02:1a)
INFO:insteonplm.connection:Connecting to PLM on /dev/insteon
INFO:insteonplm.protocol:New callback <function console.<locals>.async_insteonplm_light_callback at 0x7fbb2ee86a60> with {} (2 items already in list)
INFO:insteonplm.protocol:retroactive callback device 43.AF.9B matching {}
WARNING:insteonplm.tools:New Device: {'subcat': 26, 'address': '43.AF.9B', 'model': '2466SW', 'address_hex': '43af9b', 'product_key': None, 'capabilities': ['switch'], 'description': 'ToggleLinc Relay', 'firmware': 0, 'cat': 2}
INFO:insteonplm.protocol:retroactive callback device 3C.4F.C5 matching {}
WARNING:insteonplm.tools:New Device: {'subcat': 11, 'address': '3C.4F.C5', 'model': '2441TH', 'address_hex': '3c4fc5', 'product_key': None, 'capabilities': ['climate'], 'description': 'Thermostat', 'firmware': 0, 'cat': 5}
INFO:insteonplm.protocol:Connection established to PLM
INFO:insteonplm.protocol:Requesting PLM Info
INFO:insteonplm.protocol:Requesting First ALL-Link Record
INFO:insteonplm.tools:Are you ready to rumble?
INFO:insteonplm.tools:Relay Status
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<console() done, defined at /opt/homeassistant/lib/python3.4/site-packages/insteonplm/tools.py:11> exception=KeyError()>

I stopped the monitor and started up HASS - that gives me a different error saying command 0269 was unsuccessful.

2017-09-09 17:48:29 INFO (MainThread) [homeassistant.setup] Setting up insteon_plm
2017-09-09 17:48:29 INFO (MainThread) [homeassistant.components.insteon_plm] Looking for PLM on /dev/insteon
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.connection] Connecting to PLM on /dev/insteon
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.protocol] New callback <function async_setup.<locals>.async_plm_new_device at 0x7fe240762840> with {} (0 items already in list)
2017-09-09 17:48:29 INFO (MainThread) [homeassistant.setup] Setup of domain insteon_plm took 0.0 seconds.
2017-09-09 17:48:29 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=insteon_plm>
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.protocol] Connection established to PLM
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.protocol] Requesting PLM Info
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.protocol] Requesting First ALL-Link Record
2017-09-09 17:48:29 INFO (MainThread) [insteonplm.protocol] PLM Info from 44.85.11: category:03 subcat:15 firmware:9e
2017-09-09 17:48:29 WARNING (MainThread) [insteonplm.protocol] Sent command b'0269' UNsuccessful! (15)

Any thoughts on what I can try to fix this?

I saw the exact same thing. Same device ID’s and the whole works. I restarted HASS and the PLM started to behave.
I’m not sure if there’s a situation where HASS is up and running before the PLM has cleared it head or something?

Well it turns out that was just debugging code left in that module by the author. So to use that you have to edit the file and remove a bunch of stuff and maybe put in your own device addresses, I don’t remember.

FYI I’m starting to work on an insteon<->MQTT bridge application that I think will work better (at least for my needs). The idea is to combine some of what the insteon terminal app does (handling all the more complicated associations that need to get created automatically) into a library that understands the insteon devices including what all the scenes will trigger (so it will be able to keep the devices in the scenes up to date properly) and converts everything to MQTT for use in any home automation system. I’m been digging through the docs for misterhouse, openhab, and insteon-terminal app and think I have a pretty good handle on how it all works at this point. I’ll post something when I get a little further along if anyone wants to try it.

1 Like

Any progress on your Insteon PLM <–> MQTT project? I have a bunch of Insteon stuff because 8 years ago it seemed like the best of all the bad choices. I’ve been using the insteon_plm module, but it regularly crashes and doesn’t support all features. I need to find some time to contribute to the intsteon_plm module, rip out all my insteon hardware and replace it, or find something else…

@kestrel Actually yes. I’ve made a bunch of progress last week and the basics are working well. You can find the repository at Insteon <-> MQTT Bridge. The architecture is working well and seems like it will be easy to expand. I’ve documented most of the code and am starting on a full suite of unit tests. It can currently download the link database from modem and devices, command some of them via MQTT, report state changes, and correctly report state changes for scenes. I should have time this week to add linking (automatically connect devices and the modem), discovery, an easier to use main application, and a basic users guide. Feel free to try it out and suggest improvements or ask questions via github issues.

1 Like

Awesome! …and thanks for the link to the project. I will be away most of the next week, but will pull it down when I can.

@kestrel (and anyone else who cares): The first version of my alternative system for integration Insteon PLM modems using MQTT is now available in this respository. It’s working well for my Insteon/HASS set up and has an initial cut at user’s guide and setup docs. The sample config.yaml file in that repository includes examples of how to configure HASS components to work with the MQTT topics and payloads that are defined. Feel free to try it and report any problems or suggestions as github issues.

1 Like

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