4.3.1 Insteon binding does not properly read the PLM all link database

Understood, but using your device 24.F2.7E as an example, I don’t think local key press events would be picked up by the modem (unless you have monitor mode enabled on your PLM). Only commands can be sent from the modem to that device, based the links in your modem database. Anyway, I don’t recommend using the addMissingLinks command at the moment as I need to release a fix.

Thanks for providing that information. To be clear, the modem database records for that device are downloaded consistently but it’s the product information that isn’t. On the first load, the product request timed out while on the second one, it got a response. I will look to add some retry logic.

2025-01-11 07:37:02.077 [DEBUG] [ding.insteon.internal.transport.Port] - writing: OUT:Cmd:0x62|toAddress:31.6F.4B|messageFlags:0x0F=DIRECT:3:3|command1:0x10|command2:0x00|
2025-01-11 07:37:02.077 [TRACE] [ternal.device.database.ModemDBReader] - starting product request timer for 31.6F.4B
2025-01-11 07:37:02.107 [DEBUG] [ding.insteon.internal.transport.Port] - got msg: IN:Cmd:0x62|toAddress:31.6F.4B|messageFlags:0x0F=DIRECT:3:3|command1:0x10|command2:0x00|ACK/NACK:0x06|
2025-01-11 07:37:02.545 [DEBUG] [ding.insteon.internal.transport.Port] - got msg: IN:Cmd:0x50|fromAddress:31.6F.4B|toAddress:24.11.9D|messageFlags:0x23=ACK_OF_DIRECT:0:3|command1:0x10|command2:0x00|
2025-01-11 07:37:05.077 [DEBUG] [ternal.device.database.ModemDBReader] - product request timed out for 31.6F.4B
2025-01-11 07:41:56.162 [DEBUG] [ding.insteon.internal.transport.Port] - writing: OUT:Cmd:0x62|toAddress:31.6F.4B|messageFlags:0x0F=DIRECT:3:3|command1:0x10|command2:0x00|
2025-01-11 07:41:56.162 [TRACE] [ternal.device.database.ModemDBReader] - starting product request timer for 31.6F.4B
2025-01-11 07:41:56.192 [DEBUG] [ding.insteon.internal.transport.Port] - got msg: IN:Cmd:0x62|toAddress:31.6F.4B|messageFlags:0x0F=DIRECT:3:3|command1:0x10|command2:0x00|ACK/NACK:0x06|
2025-01-11 07:41:56.495 [DEBUG] [ding.insteon.internal.transport.Port] - got msg: IN:Cmd:0x50|fromAddress:31.6F.4B|toAddress:24.11.9D|messageFlags:0x2B=ACK_OF_DIRECT:2:3|command1:0x10|command2:0x00|
2025-01-11 07:41:56.785 [DEBUG] [ding.insteon.internal.transport.Port] - got msg: IN:Cmd:0x50|fromAddress:31.6F.4B|toAddress:07.00.41|messageFlags:0x87=BROADCAST:1:3|command1:0x01|command2:0x23|
2025-01-11 07:41:56.785 [TRACE] [eon.internal.device.database.ModemDB] - set product data for 31.6F.4B as deviceCategory:0x07|subCategory:0x00|productKey:0x00001A|description:I/O Linc|model:2450|vendor:Insteon|deviceType:SensorsActuators_IOLinc|firmwareVersion:0x41|hardwareVersion:0x23

I just verified that on/off events are properly received by the binding when manually turning the dimmer on/off.

From the logs you provided, I was able to confirm that monitor mode is enable on your PLM. This explains why your modem picked up these events. I will add this condition to the missing links determination logic.

2025-01-11 07:37:54.013 [DEBUG] [ternal.device.feature.MessageHandler] - IMConfigMsgHandler: IM monitorMode is ON

For reference: “In Monitor Mode, the IM will also notify the host of received INSTEON messages that contain a From Address matching any INSTEON ID in the IM’s ALL-Link Database, even if the To Address does not match the IM’s INSTEON ID or the IM does not belong to an ALL-Link Group associated with the message. In other words, if the message originator is in the IM’s ALL-Link Database as either a Controller or Responder, the IM will pass the message to the host even if it is not specifically directed to the IM. In this way you can monitor messages between other INSTEON devices as long as the sender is in the IM’s ALL-Link Database.”

I am not sure if you had the chance to run this test.

I just uploaded a new beta release build including the fix for missing links. This includes trying to get product data, during the modem database loading process, up to 3 times before giving up, considering the monitor mode state to determine which links are missing in the modem database, and allowing default link data3 (component id) mismatch on device that only have one component. I would expect no missing links for your device 24.F2.7E.

I started from scratch again, and this appears to solve the problem I had with random devices staying in CONFIGUATION_PENDING state during initial configuration of the plm.

Yes, I don’t see any for 24.F2.7E, but I’m getting missing links for a couple other devices:

  • 22.F8.74 - Insteon 2334-232 Keypad Dimmer 6-Button
  • 17.93.87 - Insteon 2484DWH8 KeypadLinc Dimmer Countdown Timer

Here you go, the devices have been giving faulty data for awhile and haven’t used them for awhile. I just plugged them in to see how they would behave with your version of the binding.

2025-01-13 09:57:25.355 OUT:Cmd:0x62|toAddress:19.8B.65|messageFlags:0x0F=DIRECT:3:3|command1:0x82|command2:0x00|
2025-01-13 09:57:25.370 IN:Cmd:0x62|toAddress:19.8B.65|messageFlags:0x0F=DIRECT:3:3|command1:0x82|command2:0x00|ACK/NACK:0x06|
2025-01-13 09:57:27.370 IN:Cmd:0x50|fromAddress:19.8B.65|toAddress:24.11.9D|messageFlags:0x2B=ACK_OF_DIRECT:2:3|command1:0x82|command2:0x00|
2025-01-13 09:57:28.283 IN:Cmd:0x51|fromAddress:19.8B.65|toAddress:24.11.9D|messageFlags:0x1B=DIRECT:2:3|command1:0x82|command2:0x00|userData1:0x00|userData2:0x0C|userData3:0x01|userData4:0x0D|userData5:0x00|userData6:0x91|userData7:0xFF|userData8:0xF8|userData9:0xFF|userData10:0xFF|userData11:0x58|userData12:0x69|userData13:0x5A|userData14:0xE4|
2025-01-13 09:57:28.969 IN:Cmd:0x51|fromAddress:19.8B.65|toAddress:24.11.9D|messageFlags:0x1B=DIRECT:2:3|command1:0x82|command2:0x00|userData1:0x00|userData2:0x0C|userData3:0x01|userData4:0x0D|userData5:0x00|userData6:0x91|userData7:0xFF|userData8:0xF8|userData9:0xFF|userData10:0xFF|userData11:0x58|userData12:0x69|userData13:0x5A|userData14:0xE4|
2025-01-13 09:57:29.658 IN:Cmd:0x51|fromAddress:19.8B.65|toAddress:24.11.9D|messageFlags:0x1B=DIRECT:2:3|command1:0x82|command2:0x00|userData1:0x00|userData2:0x0C|userData3:0x01|userData4:0x0D|userData5:0x00|userData6:0x91|userData7:0xFF|userData8:0xF8|userData9:0xFF|userData10:0xFF|userData11:0x58|userData12:0x69|userData13:0x5A|userData14:0xE4|

I’m now seeing intermittent COMMUNICATION_ERROR for devices after I restart OH. Initially, all devices show up ONLINE. I enabled TRACE logs and when I restarted, none of the things are loading in the OH UI, it’s keeps showing loading… and is flashing. I stopped OH after 6 minutes. I shared the logs with you.

I would need to the standard output to troubleshoot. I would expect these to be valid.

insteon device listMissingLinks 22.F8.74

insteon device listDatabase 22.F8.74

insteon modem listDatabase --records | grep 22.F8.74

Using the data returned by the device, the energy and power are reported as negative values. Although I would still expect values to be published, 0 kWh and -7W.

I’m not getting the error now for 22.F8.74, but still getting it for 17.93.87

openhab> insteon device listMissingLinks 17.93.87
There are 1 missing links from the link database for device 17.93.87:
dimmer: 24.11.9D CTRL group: 0x01 data1: 0x03 data2: 0x1C data3: 0x01
openhab> insteon device listDatabase 17.93.87
The all-link database for device 17.93.87 contains 1 records:
0x0FFF 00.00.00 LAST group: 0x00 data1: 0x00 data2: 0x00 data3: 0x00
openhab> insteon modem listDatabase --records | grep 17.93.87
17.93.87 CTRL group: 0xFE data1: 0x01 data2: 0x05 data3: 0x2D
17.93.87 RESP group: 0x01 data1: 0x00 data2: 0x00 data3: 0x01

24.11.9D does not exist on my network.

@jeshab The 5.0.0.202501122238 version of the binding is really flakey. For example here’s one of the devices from events.log:

2025-01-14 15:48:53.310 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from UNINITIALIZED (HANDLER_MISSING_ERROR): Handler factory not found to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2025-01-14 15:48:53.494 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2025-01-14 15:48:54.169 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from INITIALIZING to UNKNOWN: Waiting for modem database.
2025-01-14 15:48:59.049 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from UNKNOWN: Waiting for modem database. to ONLINE
2025-01-14 15:54:39.404 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Device not responding.
2025-01-14 15:54:40.891 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from OFFLINE (COMMUNICATION_ERROR): Device not responding. to ONLINE
2025-01-14 16:02:45.838 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'insteon:device:808bad547e:1794b0' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Device not responding.

I’ve PM’ed you the log files

Just noticed this event from a Insteon 2450 I/O Linc:

2025-01-14 17:42:12.754 [INFO ] [openhab.event.ChannelTriggeredEvent ] - insteon:device:808bad547e:316f4b:event-button triggered PRESSED_ON
2025-01-14 17:43:29.783 [INFO ] [openhab.event.ChannelTriggeredEvent ] - insteon:device:808bad547e:24308f:event-button triggered PRESSED_ON
2025-01-14 17:43:38.200 [INFO ] [openhab.event.ChannelTriggeredEvent ] - insteon:device:808bad547e:316f4b:event-button triggered PRESSED_OFF

The prior binding returned OPEN/CLOSE events.