Insteon configuration panel

Roger that!

Thanks for all the work! It has been great and an awesome learning experience!

Good news and bad news. Good news is the scene manager is in 2023.3.0b2 which is out tonight. Bad news is I found some bugs already.

  1. Editing a scene can delete the scene. There is a workaround which is to go into each devicesā€™ ALDB and show deleted records. From there look for the record with the group number corresponding to the scene number. Open the record and check the ā€œin useā€ box. Write the record and the scene is back. Donā€™t forget to do that for the modem too.
  2. Keypad link buttons (b - h on an 8 button and a-d on a 6 button) are broken.

Please give version 2023.3 a try and see if you find any other bugs. It will be in full production on March 1 or so.

The scene and KPL issues mentioned above are fixed with the release I just pushed. It should be in 2023.3.0 so all good.

1 Like

@teharris1 is there anything special to do here? I am currently running 2023.3.5.
I go to the new Insteon Control Panel.
I select ā€œInsteon Scenesā€ section, I see many.
So far so good.

Iā€™ll take one scene ā€¦ Insteon Scene 51.
I get a completely blank screen.
Debugging in browser I see this:

Row clicked received: 51
typography.js:181 Current Page: scene in insteon-router
typography.js:181 Route /scene/51 in insteon-router
typography.js:181 Scene ID: 51 in insteon-router
insteon-scene-editor.ts:321 
        
       Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'attributes')
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at r.value (insteon-scene-editor.ts:321:1)
    at r.value (insteon-scene-editor.ts:321:1)
    at r._$AE (typography.js:181:1)
    at r.performUpdate (typography.js:181:1)
    at r.scheduleUpdate (typography.js:181:1)
    at r._$Ej (typography.js:181:1)
(anonymous) @ insteon-scene-editor.ts:321
(anonymous) @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ ha-config-section.ts:127
(anonymous) @ typography.js:181
setTimeout (async)
subscribe @ typography.js:181
n @ typography.js:181
d @ 862f816a.js:1
value @ ha-config-section.ts:127
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
u @ typography.js:181
v @ typography.js:181
k @ typography.js:181
(anonymous) @ insteon-scene-editor.ts:876
r @ 862f816a.js:1
r @ ha-config-section.ts:127
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
j @ typography.js:181
_$AI @ typography.js:181
p @ typography.js:181
$ @ typography.js:181
_$AI @ typography.js:181
j @ typography.js:181
update @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ styles.ts:353
v @ styles.ts:353
y @ styles.ts:353
value @ 3c774a29.js:1
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
value @ app-drawer-layout.js:189
value @ typography.js:181
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
t @ app-drawer-layout.js:189
(anonymous) @ app-drawer-layout.js:189
i @ entrypoint-805dad43.js:2
s @ entrypoint-805dad43.js:2
value @ insteon-scenes-panel.ts:217
handleEvent @ typography.js:181
i @ entrypoint-805dad43.js:2
(anonymous) @ ha-data-table.ts:361
handleEvent @ typography.js:181
insteon-scene-editor.ts:321 
        
       Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'attributes')
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at r.value (insteon-scene-editor.ts:321:1)
    at r.value (insteon-scene-editor.ts:321:1)
    at r._$AE (typography.js:181:1)
    at r.performUpdate (typography.js:181:1)
    at r.scheduleUpdate (typography.js:181:1)
    at r._$Ej (typography.js:181:1)
(anonymous) @ insteon-scene-editor.ts:321
(anonymous) @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ ha-config-section.ts:127
(anonymous) @ styles.ts:353
setTimeout (async)
subscribe @ styles.ts:353
n @ typography.js:181
c @ ha-card.ts:80
value @ ha-config-section.ts:127
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
u @ typography.js:181
v @ typography.js:181
k @ typography.js:181
(anonymous) @ insteon-scene-editor.ts:876
r @ 862f816a.js:1
r @ ha-config-section.ts:127
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
j @ typography.js:181
_$AI @ typography.js:181
p @ typography.js:181
$ @ typography.js:181
_$AI @ typography.js:181
j @ typography.js:181
update @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ styles.ts:353
v @ styles.ts:353
y @ styles.ts:353
value @ 3c774a29.js:1
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
value @ app-drawer-layout.js:189
value @ typography.js:181
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
t @ app-drawer-layout.js:189
(anonymous) @ app-drawer-layout.js:189
i @ entrypoint-805dad43.js:2
s @ entrypoint-805dad43.js:2
value @ insteon-scenes-panel.ts:217
handleEvent @ typography.js:181
i @ entrypoint-805dad43.js:2
(anonymous) @ ha-data-table.ts:361
handleEvent @ typography.js:181
insteon-scene-editor.ts:321 
        
       Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'attributes')
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at insteon-scene-editor.ts:321:1
    at Array.map (<anonymous>)
    at r.value (insteon-scene-editor.ts:321:1)
    at r.value (insteon-scene-editor.ts:321:1)
    at r._$AE (typography.js:181:1)
    at r.performUpdate (typography.js:181:1)
    at r.scheduleUpdate (typography.js:181:1)
    at r._$Ej (typography.js:181:1)
(anonymous) @ insteon-scene-editor.ts:321
(anonymous) @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
value @ insteon-scene-editor.ts:321
await in value (async)
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
u @ typography.js:181
v @ typography.js:181
k @ typography.js:181
(anonymous) @ insteon-scene-editor.ts:876
r @ 862f816a.js:1
r @ ha-config-section.ts:127
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
j @ typography.js:181
_$AI @ typography.js:181
p @ typography.js:181
$ @ typography.js:181
_$AI @ typography.js:181
j @ typography.js:181
update @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ styles.ts:353
v @ styles.ts:353
y @ styles.ts:353
value @ 3c774a29.js:1
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
value @ app-drawer-layout.js:189
value @ typography.js:181
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
t @ app-drawer-layout.js:189
(anonymous) @ app-drawer-layout.js:189
i @ entrypoint-805dad43.js:2
s @ entrypoint-805dad43.js:2
value @ insteon-scenes-panel.ts:217
handleEvent @ typography.js:181
i @ entrypoint-805dad43.js:2
(anonymous) @ ha-data-table.ts:361
handleEvent @ typography.js:181
insteon-scene-editor.ts:321 
        
       Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'entities')
    at r.value (insteon-scene-editor.ts:321:1)
    at r.value (ha-config-section.ts:127:1)
    at r.update (typography.js:181:1)
    at r.performUpdate (typography.js:181:1)
    at r.scheduleUpdate (typography.js:181:1)
    at r._$Ej (typography.js:181:1)
value @ insteon-scene-editor.ts:321
value @ ha-config-section.ts:127
update @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
value @ insteon-scene-editor.ts:321
await in value (async)
value @ insteon-scene-editor.ts:321
_$AE @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
u @ typography.js:181
v @ typography.js:181
k @ typography.js:181
(anonymous) @ insteon-scene-editor.ts:876
r @ 862f816a.js:1
r @ ha-config-section.ts:127
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
j @ typography.js:181
_$AI @ typography.js:181
p @ typography.js:181
$ @ typography.js:181
_$AI @ typography.js:181
j @ typography.js:181
update @ typography.js:181
performUpdate @ typography.js:181
scheduleUpdate @ typography.js:181
_$Ej @ typography.js:181
await in _$Ej (async)
requestUpdate @ typography.js:181
set @ typography.js:181
(anonymous) @ styles.ts:353
v @ styles.ts:353
y @ styles.ts:353
value @ 3c774a29.js:1
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
value @ app-drawer-layout.js:189
value @ typography.js:181
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
j @ styles.ts:353
_$AI @ styles.ts:353
p @ styles.ts:353
$ @ styles.ts:353
_$AI @ styles.ts:353
j @ styles.ts:353
update @ styles.ts:353
performUpdate @ styles.ts:353
scheduleUpdate @ styles.ts:353
_$Ej @ styles.ts:353
await in _$Ej (async)
requestUpdate @ styles.ts:353
set @ styles.ts:353
t @ app-drawer-layout.js:189
(anonymous) @ app-drawer-layout.js:189
i @ entrypoint-805dad43.js:2
s @ entrypoint-805dad43.js:2
value @ insteon-scenes-panel.ts:217
handleEvent @ typography.js:181
i @ entrypoint-805dad43.js:2
(anonymous) @ ha-data-table.ts:361
handleEvent @ typography.js:181

In fact, only a few of my scenes show anything, the rest are like the above with error.

I would note that I know nothing is broken because I can go to that scene in my Scene Explorer I wrote and I see all the devices and can interact with them.

In fact, I went through all the scenes in the scenes in the panel and this is the only one without a blank screen:

So I thought I would try and just create a new scene.
I could get two devices added, but when I tried to add the third (main button in a 6-button switch) it does not appear, the GUI breaks and errors again are thrown:

I am going to contact you offline to help debug this.

@teharris, I am back from business trip and I can get you what you need. I think you wanted my insteon JSON, not sure. Just let me know.

Yes please upload your insteon_devices.json file.

I posted in the ā€œHey Insteon Users!ā€ thread and didnā€™t get a response, so figured I would try here. Iā€™m having an issue with the Insteon integration. I can use HA to control the switches, but HA isnā€™t updating the status when I manually control switches. I also am curious if removing devices will become an option with the integration. More than once, I have changed the operation of a keypad (6 button to 8 button) and this would be a nice feature to have. Any help would be appreciated.

1 Like

I have a mix of 2477S and 2477D switches and they update just fine in Home Assistant when controlled manually.

@feistyacorn Can you confirm that your devices have the ā€œdefault linksā€ setup? For these devices that would be 1 link between the modem and the device on group 0 where the modem is the controller and the device is the responder. And 1 link on group 1 where the modem is the responder and the device is the controller.

Regarding the question of deleting devices, yes that is on the roadmap. I have a few more changes I am looking to introduce to the integration:

  1. Add configuration entities - This will move the device configuration properties from the Insteon Panel to the Device panel in the standard HA setting area. This will allow you to use configuration items in automations to do things like set the default on level to a lower level at night or turn the LED on/off via an automation.
  2. Manage device links - This will create a new tab in the device view of the Insteon panel to more easily manage links between devices. Rather than needing to use the ALDB and edit both devices the new tab will allow you to select two devices and decide which is the controller and which is the responder or if they are bi-directional and automate the update of the ALDB.
  3. Entity and device level events exposure - Currently you need to know the name of the event that a device or an entity raises in order to use that event in an automation. There is a way in HA to assign those events to a device or an entity to make their use in automations appear in the dropdown list.
  4. Utilities - This will be a new tab in the Instoen panel that will help perform a few tasks:
    • Remove a device completely from the Insteon network
    • Identify / fix broken links (i.e. responder missing a controller link or vs versa)
    • Ping devices to see if they are still active

Let me know if any of you have a preference for the priority of these changes. The first one is already in development by the way.

1 Like

@teharris1 I really appreciate the help. Iā€™ll have to test tonight when I get home. I just looked and didnā€™t have any links for group 1 and selecting ā€œAdd Default Linksā€ added group 1 in addition to group 0. So Iā€™m guessing this is my errorā€¦ Doh!

Thanks for the roadmap updates and all of the work on the Insteon integration! Really looking forward to having native Insteon in HA.

@teharris1 ā€¦ I assume the issue I reported should be closed as after installing the latest all seems to work. I assume I can rename the scenes which is great. I can just toss my old code now and use this as it seems to work perfectly.

1 Like

Been playing with the Insteon integration for a little bit now. Whatā€™s the best/recommended way for creating 3 way switch scenes? Manual cross linking, editing the ALDB or something else?

If you have physical access to the devices, I would probably manually cross-link them.You can edit the ALDB and create controller and responder links in each device but then you have to be careful to create them correctly. If you do create them using the cross-linking method, you should reload the ALDB to ensure it sees the dependency.

1 Like

Iā€™ve been wanting to really like Home Assistant (Iā€™m currently an avid Openhab user). I am currently seeing two problems.

  1. Trying to load the aldb from a remote link 2 (2444A2) and get the following entry in the log:
    await func(has, connection, msg) file
"/usr/src/homeassistant/homeassistant/components/insteon/api/aldb.py", line 79, in websocket_get_aldb aldb.update(device.aldb.pending_changes) attributeerror: 'noaldb' object has no attribute 'pending_changes'

I have hit the button on the bottom to assure that the devices is awake.

  1. I canā€™t get the UI to match the devices. I really understand the Insteon messaging and the expectation that the controller (in my case a PLM) would see messages and reflect the changes. Unfortunately this does not happen for devices controlled directly by the remote link. Same for an Insteon scene triggered by another device (not the PLM). It really seems that there is a need for some way to add some polling to back up the message traffic. All devices are correctly linked to the PLM. Iā€™ve tried adding some actions triggering ā€œHome Assistant Core Integration: Update entityā€ but that doesnā€™t seem to poll the device. Any additional approaches to synchronize the UI would be appreciated. FYI, Openhab does poll.

I really appreciate the work you are doing to keep a great automating controller for Insteon growing and getting better.

Thank you.
Charles

For the interface not syncing, have you made sure to click the ā€œAdd Default Linksā€ button. I missed that when setting up my devices, but everything is synced now after enabling it.

Iā€™m most excited for this feature. I have five ceiling fan controllers and keypads that Iā€™m holding on moving from my ISY. With all of the links, Iā€™m sure I would mess something up trying to manually link them or edit the ALDBs wrong. lol

Iā€™m curious about ā€œin_useā€ links. Are these only stored in HA or are they still stored on the device? Shouldnā€™t there be a way to fully delete a link? I am moving my devices from a PLM connected to an ISY to a Hub and I think the links to the old PLM are still there (not all my devices are easily reachable). I would hate to have to do a factory reset on all devices, especially if what I mention below is a fully manual processā€¦

Are there a way to program actual scenes on the devices (controller/responder type) from the Insteon Panel? I am coming from the ISY which has itā€™s own issues, but programming scenes that run locally on the devices is quite easy to do (and once set donā€™t need the ISY to execute). From what I can tel I need to create the links manually for each device, which would be giant PITA.

I did see the ā€œScenesā€ tab, but this seems to be only for setting up scenes triggered by the hub/PLM (no controller as it were).

A simplified way to configure scenes between two devices is coming this year (I hope). Currently, you can only do this by editing each deviceā€™s ALDB.