Insteon control panel

Same for me. The micro module has toggle modes, switching modes and multiple settings for the beeper and led. Just went through setting properties with the set button. What a pain. Forgot how many cycles of holding the button I had done and had to wait for it to clear and start all over. And I can never hear the beeps. Would really love to be able to set the modes in the Insteon integration.

Has the issue with needing to refresh the page after leaving and returning to the Insteon tab been fixed yet? I only see it in a Safari browser. Not Firefox or the mac app. Makes me wonder if there is some setting I can adjust in Safari to stop this?

Easy to work around though.

I also see that the friendly names are not shown in the Insteon tab if “show as” is set. It looks like the devices are showing as whatever name was being used before “show as” was set.

hmm that’s what I’m doing, it just beeps once and the light starts flashing green. I don’t get the normal double beep that you would expect when linking devices. I also have 1 lamp dimmer that does the same thing.

Got it to work, after having a few devices not link I started thinking the hub might not getting put into linking mode. The hub should beep and light should flash green. I unplugged it and after a few minutes it automatically went into linking mode, maybe HA was still trying? @teharris1 is there any known issues with the hub not entering linking mode?

Not that I am aware of.

Just to show what I am thinking (needs work still). But here is something I think everyone can use.
Reads ALDB from insteon_devices.json. Populates some things. Now I can at the very least see what devices are in what scenes when I use the rest of the screen to add/modify scenes.

insteon

1 Like

I still need deeper parsing to exclude multi-button Keypadlinc devices that are not really in the scene as I only maped to the XX.XX.XX values for now.

What would be a awesome to have would be …

  1. when the insteon Hub/PLM is first added, all the scenes are imported to HA. Now, I understand that the scene names are not in the ALDB so the user would have to name them at that time (but could change them later … or they are named like “Insteon Group 99” but the devices are put into named groups in HA so that they could be changed.

  2. as new scenes are created, this is maintained

  3. as new devices are added to scenes

But I do see the issue here where someone adds some device through editing the group and that doesn;t really reflect “an Insteon group”. Maybe they are not “HA groups” but maintained only in the Insteon model. I do not know.

All I do know is that the internet is full (as well as this forum) from comments about trying to understand where scenes went, how to find them and how to control them.

Is there no one else using the new “show switch as…” feature in HA???

I have 5 devices and 4 are switches which control lights so I used the “show switch as light” which creates a new light domain entity and hides the switch domain entity. When I do that, two of the switch entities appear in the Insteon panel but two do not…

I’m seeing something similar. None of mine disappeared but they lost the friendly names or had the wrong ones.

“Show As” is really new in HA and looks like there are still some issues to work out.

yes I use 2 “show switch as light” and the original device no longer appears, one is a SwitchLinc Relay (Dual-Band) and the other is an On/Off Module

The switch entities are there in HA and if you tick show hidden they appear on that HA page but not the new Insteon panel

After playing with show switch as light, deleting the helpers and recreating them with inconsistent behaviour i.e. all would show in the panel except for front porch light, I restarted HA after installing some other updates and now it is consistently NOT showing the hidden switch entities so it is useless as is to me. It needs to be able to show the hidden switch entities…

What if you just leave them as default?

Or perhaps “it” refers to the show as function and not the Insteon integration? If that’s the case I agree, show as still has a limited appeal.

Then I would need to return to my old method of manually creating a light entity for each switch if I want to use light for those switches that control lights.

Why not just have the Insteon panel display hidden switch entities???

Show as... is here to stay and integrations should keep up with the times…

Would be excellent to have your lovelace page and any helper entities on github to track the progress/changes.

Biggest hangup right now is time and testing. I know one thing is wrong and I kinda know how to fix it ,

I get the modem’s ALDB database:

- platform: command_line
  name: insteon_modem_aldb
  command: "jq '.[0]' insteon_devices.json"
  value_template: "{{ value_json[0].address }}"
  json_attributes:
    - aldb

I get the list of scenes that exist:

sensor:
  - name: "defined_insteon_scenes"
    state: "{{ 'OK' }}"
    attributes:
        in_scenes: >
            [{% for item in (state_attr('sensor.insteon_modem_aldb','aldb') ) %}
            "{{state_attr('sensor.insteon_modem_aldb','aldb')[item]['group']}}"
            {% if not loop.last %},{% endif %}
            {% endfor %}]

I can grab the XX.XX.XX from that:

  - name: "insteon_device_groups"
    state: "{{ 'OK' }}"
    attributes:
        in_groups: "
{% set aldb = state_attr('sensor.insteon_modem_aldb','aldb') %}
{% set gp = namespace(groups=[]) %}
{% for key, value in aldb.items() %}
{% if (value.group | int == states('input_select.insteon_modem_groups') | int) %}
{% set gp.groups = gp.groups + [(value.target[0:2]+'.'+value.target[2:-2]+'.'+value.target[-2:]) | upper] %}
{% endif %}
{% endfor %}
{{ gp.groups | unique | sort | list }}"

Now I can push that out, like this:

  - name: insteon_group_entities
    state: "{{ 'OK' }}"
    attributes:
        scene_entities: "
{% set gp = namespace(groups=[]) %}
{% for ent in integration_entities('insteon') %} 
{% if state_attr(ent,'insteon_address') in state_attr('sensor.insteon_device_groups','in_groups') %} 
{% set gp.groups = gp.groups + [ent] %}
{% endif %} 
{% endfor %} 
{{ gp.groups | unique | sort }}"

The issue here is it is a blind match, meaning XX.XX.XX matches every device. So like this picture:

XX.XX.XX matches every button in the 6-button switchlinc. I need to deepen that match to filter out controllers or something. But that code can give you some start. IN reality, the bottom left screen should only show the named entities which are all “on” and not the “button A”, button B" etc.

However I have not thought it through … I think of it like I use it. I would rip out every 6-button/8-button in my house tomorrow as HA makes them worthless really (for me) because I can say “Alexa, turn on dogs” … which is linked to scene 51 … which does it. I do not push buttons much anymore.

The upper left input_select is populated through an automation:

service: input_select.set_options
data_template:
  entity_id: input_select.insteon_modem_groups
  options: >
    {% set aldb = state_attr('sensor.insteon_modem_aldb','aldb') %} {% set gp =
    namespace(groups=[]) %} {% for key, value in aldb.items() %} {% if
    value.group > 9 %} {% set gp.groups = gp.groups + [value.group] %} {% endif
    %} {% endfor %} {{ gp.groups | unique | sort }}

Right now I just have a Time trigger that populates this every minute.

The left vertical stack is in this type of card:

type: vertical-stack
cards:
  - type: custom:auto-entities
    card:
      type: entities
      title: Insteon Group Explorer
      show_header_toggle: false
      state_color: true
    filter:
      include:
        - entity_id: input_select.insteon_modem_groups
          options:
            state_color: true
            icon: mdi:devices
      exclude: []
  - type: custom:auto-entities
    card:
      title: Scene Devices
      show_header_toggle: false
      type: entities
    filter:
      template: '{{ state_attr(''sensor.insteon_group_entities'',''scene_entities'') }}'

So when the value of the input_group on the top left changes, the template for the auto-entities card changes and the list is redrawn with the devices in the selected group. As I said, this is where I want to work next to change that list to only the devices in the group. Now if any button of the 6-button pad is in the list, they are all in the list because I build the list by matching “XX.XX.XX”. Because the 6-button is one address, they all appear which is not right.

OK, in my GUI I fixed the issue with the interface showing all buttons in multi-button devices as all outlets in multi-outlets with only those in the actual group.

insteon2

In my sensor.yaml:

# Get the ALDB record for the modem
- platform: command_line
  scan_interval: 30
  name: insteon_modem_aldb
  command: "jq '.[0]' insteon_devices.json"
  value_template: "{{ value_json[0].address }}"
  json_attributes:
    - aldb

In my template.yaml:

sensor:
# Given a group, get all the targets for that group
# This requires two pieces of information, the target address as well as the group number for multi-button, multi-outlet devices
  - name: "insteon_device_groups"
    state: "{{ 'OK' }}"
    attributes:
        in_groups: "
{% set aldb = state_attr('sensor.insteon_modem_aldb','aldb') %}
{% set gp = namespace(groups=[]) %}
{% for key, value in aldb.items() %}
{% if (value.group | int == states('input_select.insteon_modem_groups') | int) and (value.in_use) %}
{% set gp.groups = gp.groups + [(value.target[0:2]+'.'+value.target[2:-2]+'.'+value.target[-2:]+'_'+value.data1 | string) | upper] %}
{% endif %}
{% endfor %}
{{ gp.groups | unique | sort | list }}"

# Given the targets for a group, return a list of the entities 
  - name: insteon_group_entities
    state: "{{ 'OK' }}"
    attributes:
        scene_entities: "
{% set gp = namespace(groups=[]) %}
{% for ent in integration_entities('insteon') %} 
{% if state_attr(ent,'insteon_address') + '_' + state_attr(ent,'insteon_group') | string in state_attr('sensor.insteon_device_groups','in_groups') %} 
{% set gp.groups = gp.groups + [ent] %}
{% endif %} 
{% endfor %} 
{{ gp.groups | unique | sort }}"
1 Like