Insteon Device Status Incorrect when controlled via remote/keypad

I’ve used Smarthome Insteon products since the early 2000’s. When Insteon went down I swapped over to HOOBS and basically bridged everything into Homekit. This includes Insteon(~90 devices of all types), Tuya (10+ smart plugs and IR blasters), Ecobee (Thermostat +10 Smart Sensors), Leviton (2 fan controllers), and 6 IP Cams plus some HK native devices like Logi Circle doorbell.
Apple Home was now main interface for myself and the entire family. Problem is Homekit automations are limited (even with 3rd party software) and I wanted more ability while keeping Homekit populated for the family.

So I also ran Insteon HouseLinc software with a PLM for some stuff that Homekit automations couldn’t do, but they were limited to the Insteon ecosystem devices.

I now want to step my automations up to another level and hopefully centralize everything with HA, but I am having an issue replicating one of the features of HomeBridge/Insteonlocal plug-in. I have many different physical methods to control lighting around the house such as Keypads, Mini Remotes and Switch Dimmers controlling multiple plug-in devices like Lamplinc and plug-in On/Off modules.

One of the awesome improvements of using HomeBridge/Insteonlocal was using the json config file to group devices together so that when a remote/keypad/switch event occurs it would update all the other devices to the current state. This was great because when turning off a light via mini remote it would update all 4 keypads and/or switches and the device in Home app to the correct current state. An example of the device config:
“name”: “Left Floor Lamp”,
“deviceID”: “1AF97F”,
“dimmable”: “yes”,
“deviceType”: “dimmer”,
“controllers”: [“3930F8,52DA67,505758,20FBC0,4EB26D,4C0B54”],
“groupMembers”: “3930F8,52DA67,505758,20FBC0,4EB26D,4C0B54”,
“targetKeypadID”: [“505758,20FBC0,20FBC0,4EB26D,4C0B54”],
“targetKeypadBtn”: [“D,B,C,C,C”],
“targetKeypadSixBtn”: [false, false, false, false, true]

What is the best method to replicate this functionality in HA? I have tested HA in a few fashions (VM on Windows, NUC image on Lenovo Mini) with multiple controller types (PLM, 2245 Hub) but whenever I use a mini remote or physical keypad button to toggle a light (could be a Switchlinc Dimmer or plug-in device) the target device state does not update in HA. This is creating issues for conditional triggers and device history as HA doesn’t update the device level state unless HA is restarted.
I read about some folks who setup an automation that cycles update_entity status every few minutes. I really don’t want to do that due to the extra signaling noise those polling requests will create.

I looked at the insteon_devices.json config file in HA but I don’t totally understand all the entries in there and couldn’t find advanced documentation for using this file for advanced config.

Perhaps using a Helper or script for every time a remote button or keypad button is pressed to also update the other entities? Seems like that would be a lot of work based on the number of devices I have.

Any assistance would be appreciated. Thanks

1 Like

Hi. Did you figure this out? I have a few 3-way and 4-way setups and HA only updates if I use the switch with the load.

Nope. Seems the HA Insteon integration has many issues, and people are moving away from Insteon in general, so no one is bothering updating the Integration. Should be an easy way to define device group configs but good luck with the insteon_devices.json file. LOL

I still use Homebridge (on a separate device from the HA PC) and then feed those devices into HA via Homekit Controller. This way I can still custom configure my large array of Insteon devices while having HA do the automations.

The Insteon integration uses the All-Link Database content to determine which devices are linked together. So if there is a link between 2 devices and device 1 is manually changed triggering device 2 to change, the Insteon integration will see this change and update HA with the updated state of device 2. I have a bunch of 3 way switches setup in my house and it works great. This only works however, if the All-Link databases are loaded in HA. You can load the ALDB using the “Insteon” panel on the sidebar.

By the way, the other issue that may be causing problems is not having the “Default Links” on the devices. The default links ensure that the modem hears the changes that the device transmits.

Links are not the issue. Have loaded ALDB. (Bench tested this in a total test environment with new hub and new PLM as well as KP’s and switches. On a busy network (I have 100 devices) the ACK’s for groups just don’t seem to register within the integration even though the hub/plm gets it, (I can see the ACK’s being sent by the devices but its like the hub/plm is busy for a second or so after initiating an event so it doesn’t record and update the status of the group devices) so device status is almost always incorrect)
Switches seem ok as main issue are the Keypads and mini remotes. I have tons of the keypads and those seem to the main type affected.

The inconsistent firing and super long delays based off keypad triggers through the Insteon integration seem to also be a pain point so I just pair an unused plug in on/off to a keypad and use that on/off module as a relay for HA automation. (I see this more with ones that needed a device override to get a 6 button to act like the 8 button)

I appreciate your work on the Insteon integration and I know it is difficult to code since they do some odd things on the Insteon side. Have you ever spoke/worked with Bruce over at Insteon? I get the feeling they may work with you to make the integration even better. They have a newish developer partner program.

If you want to see what is happening in detail you can set the following lines in your configuration.yaml file:

logger:
  default: warn
  logs:
    pyinsteon.a1b2c3: debug

Where a1b2c3 is a device ID. This will produce a log of all the traffic for that device. You can also have multiple devices in debug mode at a time. You need to restart HA to get this to take effect.