Calling all ISY994 users!

@shbatm What is the current status of this in Home Assistant?
I am using this in the Core Integrations, but I cannot determine which version it is.

Everything from the beta version above is in HA Core. If you have the HACS version installed it can be removed.

Iā€™m trying to get started with home assistant. Iā€™ve had a fairly sizeable ISY & Insteon installation for many years. Not really an experienced Forum Poster.
Iā€™m getting an index error during the initial setup of the integration.

ISY994 Initial Setup - IndexError: list index out of range

This post ā€œCalling all ISY994 usersā€ seems to be a place where a lot of conversation has happened. I thought I would link to my issue from here in case I should have put it here to begin with.

I have a small problem with my isy994i integration. I have a controllinc as part of a scene. If it turn on a scene with the controllinc, and off with another device, such as a keypadlinc, Home Assistant sees the scene as still on since the controllinc state stays ā€œonā€ even though the rest of the scene is off. Iā€™m unable to turn the scene back on until I hit the off button on the controllinc. Anyone else run into this and have a suggestion?

This sounds similar to the Mini Remotes not updating status. Iā€™ll have to go back and see what we did to manage those, I think we exclude them from Group (Scene) ā€˜ONā€™ status, but sounds like we need to add the ControlLinc to the same logic.

Can you please provide the node definition for the ControlLinc and Iā€™ll see if thereā€™s a better workaround when I get a chance?

In a web browser, go to http://isy-address/rest/nodes/control_linc_insteon_address and post the response here or on the github issue.

That sounds exactly right. Iā€™ve posted the XML for the node in the github issue, thanks!

Which firmware version are you on for the ISY? Looks like an earlier version of 4.x from the nodedef you posted, unless maybe the ISY doesnā€™t have a definition for a ControlLinc.

Unfortunately, with an empty type (0.0.0.0) and without a nodeDefId (newer firmware) thereā€™s no good way to ā€˜categorizeā€™ the device appropriately and reliably in Home Assistant.

Two options:

  1. Upgrade the ISY firmware, if youā€™re willing to, and I can update PyISY to look for the correct NodeDefId
  2. Create a duplicate scene in the ISY with all the same devices in the original (excluding the ControlLinc) and use that scene in Home Assistant for control.

Iā€™m running 4.9.0. Iā€™ve avoided upgrading until I was sure everything would work with HA. Can you confirm all is well?

Yes to HA working with the latest version. I built the latest version of PyISY off of 5.x, running 5.3.x now myself. Only caution I have is that there are some differences in the ISY Scene editing for Insteon (on the ISY Admin Console), that was the only thing that tripped me up. Read the release notes on the ISY Forums before making the leap.

Itā€™s interesting if youā€™re on 4.9 though that thereā€™s no valid Type value for the ControlLinc. It looks like it may be because of the special way it has to be linked, but Iā€™m curious if they actually have a nodeDefId for it in V5 if thatā€™s the case (these are the ā€˜flagsā€™ that were added which makes nodes easier to identify with the API, e.g. ā€˜DimmerSwitchOnlyā€™ instead of Type 1.2.57.3).

If youā€™re not ready to take the leap to V5, option 2 above would be the best and simplest way I can recommend.

I made the leap to 5 and now have

<node flag="128" nodeDefId="DimmerSwitchOnly">
<address>0 6F 45 1</address>
<name>ControlLinc-ControlLinc</name>
<parent type="3">10256</parent>
<type>0.0.0.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>0 6F 45 1</pnode>
<property id="ST" value="" formatted=" " uom="0"/>
</node>

Great! I hope it wasnā€™t too much trouble getting everything moved over.

Let me check on my node list and a few people have submitted to me to make sure that excluding DimmerSwitchOnly from a scene status wonā€™t be a breaking change and Iā€™ll push the PyISY update when I get a chance.

Ooof, things are much worse now but I think your update to PyISY will fix it. Now anything that has a remotelinc in a scene is handled improperly as the scene is kept ā€œlockedā€ to the last state of the remotelinc or controllinc.

Are they original RemoteLincs or RemoteLinc2?

Also, how are you running Home Assistant? I can give you a one-line change to try the fix until I can push the update.

In one scene, itā€™s a (2342-242) Mini Remote Switch v.38. The other one is a (2342-222) RemoteLinc 2 Keypad, 8 Scene v.37 The original issue is with a (2430) ControLinc v.00. Iā€™m running in a docker container on Ubuntu.

Fixed the models.

From the Docker command prompt (e.g. docker exec -it homeassistant bash)

Run these commands then restart Home Assistant, it will wipe the Python cached files for PyISY and make the change to the module (temporary until next upgrade of Home Assistant).

find /usr/local/lib/python3.9/site-packages/pyisy/ -regex '^.*\(__pycache__\|\.py[co]\)$' -delete
sed -i '743i \ \ \ \ \"DimmerSwitchOnly\",' /usr/local/lib/python3.9/site-packages/pyisy/constants.py
exit

If you look at your nodes xml for the Mini Remote Switches, let me know if they show anything besides DimmerSwitchOnly for the nodeDefId. I only have the Mini Remotes with the scene buttons, and those are already included in the ā€œdo not use for group statusā€ list.

Commands have been run. For the mini remote and the remotelinc keypds:

<node flag="128" nodeDefId="RemoteLinc2_ADV">
<address>2E 84 E8 1</address>
<name>Melissa Office Remote - B</name>
<parent type="3">10256</parent>
<type>0.18.55.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>2E 84 E8 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node>

Are you seeing any change? RemoteLinc2ā€™s were already excluded from the status; their state shouldnā€™t matter for the scene in HA, only the rest of the devices. In the ISY Admin Console are you seeing any other devices listed as ON for the Scene?

RemoteLinc2 and Mini Remote Switch are now behaving properly. Thanks!

Scratch that. After more tests, Iā€™m running into scene issues with the Mini Remote Switch. If itā€™s left ā€œonā€ the scene canā€™t be turned on until I turn it back off.

Anything different about the xml for the mini switch vs scene remote? I donā€™t have a mini switch to test with and realized my mini remotes havenā€™t been set up in my new houseā€“if thereā€™s an issue with those I wonā€™t be able to test until a couple weeks from now.

Not really

This one doesnā€™t work correctly

<node flag="128" nodeDefId="RemoteLinc2_ADV">
<address>35 A1 58 1</address>
<name>GarageSwitch - A</name>
<parent type="3">44140</parent>
<type>0.28.56.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>35 A1 58 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node
<node flag="128" nodeDefId="RemoteLinc2_ADV">
<address>35 A1 58 1</address>
<name>GarageSwitch - A</name>
<parent type="3">44140</parent>
<type>0.28.56.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>35 A1 58 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node<node flag="128" nodeDefId="RemoteLinc2_ADV">
<address>35 A1 58 1</address>
<name>GarageSwitch - A</name>
<parent type="3">44140</parent>
<type>0.28.56.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>35 A1 58 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node<node flag="128" nodeDefId="RemoteLinc2_ADV">
<address>35 A1 58 1</address>
<name>GarageSwitch - A</name>
<parent type="3">44140</parent>
<type>0.28.56.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>35 A1 58 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node>

This one is working correctly

<node flag="0" nodeDefId="RemoteLinc2_ADV">
<address>2E 84 E8 2</address>
<name>Melissa Office Remote - A</name>
<parent type="3">10256</parent>
<type>0.18.55.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>2E 84 E8 1</pnode>
<property id="ST" value="0" formatted="Off" uom="100"/>
</node>