Calling all ISY994 users!

Yep, I will be adding Thermostat support pretty soon. A Home Assistant user kindly donated their old thermostat to me so that I have one to develop against. And it’s getting cold, so I’ve got strong motivation to add it :slight_smile:

awesome, thats great news, thanks!

Just added the new Motion Sensor II to my ISY and after restarting HA I get the following error:

Error while setting up platform isy994
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/binary_sensor/isy994.py", line 55, in setup_platform
    subnode_id = int(node.nid[-1])
ValueError: invalid literal for int() with base 10: 'D'

This seems to have the affect of not finding any of the binary_sensors for ISY (old and new motion sensors).

I think I found the solution. When I added the new sensor ISY did not group the sub sensors (motion enabled and motion tamper, with it) I selected group sensors and that seemed to correct the issue.

I think the error you are seeing is the Home Assistant ISY Component assuming the node number is decimal instead of hexadecimal. Previous Insteon devices only had a few nodes so this was not a problem. The new Motion Sensor II (well new to ISY-994 users which only recently supported the Motion Sensor II) has a bunch of nodes and the number extends into the hexadecimal range (above 9).

Node D is the Motion Enabled node and is enabled by default. If you look at the Options page in the ISY-994 Admin Console for your Motion Sensor II you will see at the bottom of the list “Misc Nodes” and “Motion Enabled”. Set it to “None” and the node will disappear. Note there are other nodes you can enable like Low Battery.

Your second message indicated grouping the nodes together fixed your error. While this is true it fixed your error by hiding all nodes except the top node in Home Assistant. This is true for all grouped Insteon nodes in Home Assistant. I don’t know if this is a feature of the ISY-994 or the ISY-994 component in Home Assistant.

Just curious…what type of thermostat do you have? Insteon or zwave?
I have two zwave thermostats and would be happy to help test.
Well assuming I have access to the ISY at the time.
Still struggling with this off and on:

Insteon thermostat.

Thus far I have not done any development or testing of Z-Wave devices via the ISY994, as I do not have a Z-Wave module in my ISY, and I have been personally satisfied using a Z-Stick managed directly by Hass.

I would like to eventually dive in to making Z-Wave work via the ISY994 component as well as everything else, but it’s way down on my priority list.

So I tried this today since I have once again come across the issue with the ISY component not working and getting the following errors:
018-12-14 18:08:45 ERROR (MainThread) [homeassistant.setup] Error during setup of component isy994
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/homeassistant/setup.py”, line 148, in _async_setup_component
component.setup, hass, processed_config) # type: ignore
File “/usr/local/lib/python3.6/concurrent/futures/thread.py”, line 56, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.6/site-packages/homeassistant/components/isy994.py”, line 379, in setup
use_https=https, tls_ver=tls_version, log=_LOGGER)
File “/usr/local/lib/python3.6/site-packages/PyISY/ISY.py”, line 84, in init
self.nodes = Nodes(self, xml=self.conn.getNodes())
File “/usr/local/lib/python3.6/site-packages/PyISY/Nodes/init.py”, line 52, in init
self.parse(xml)
File “/usr/local/lib/python3.6/site-packages/PyISY/Nodes/init.py”, line 238, in parse
Group(self, nid, nname, members, controllers), ntype)
File “/usr/local/lib/python3.6/site-packages/PyISY/Nodes/group.py”, line 43, in init
self.update()
File “/usr/local/lib/python3.6/site-packages/PyISY/Nodes/group.py”, line 83, in update
if self.parent[m].status > 0:
File “/usr/local/lib/python3.6/site-packages/VarEvents/init.py”, line 255, in gt
return self._val > other
TypeError: ‘>’ not supported between instances of ‘NoneType’ and ‘int’

So I took my time and deleted everything that had isy in it which is a lot for me.
No dice same issue.

So I took a spare sd card, downloaded the latest hassio image and loaded it up.
I did nothing else for configuration other than add the basic isy stuff of:
isy994:
host: ISY_ADDRESS
username: ISY_USERNAME
password: ISY_PASSWORD

and rebooted and got the same as above again.
I am using the latest 5.0.14 firmware, but it has worked while I was on this firmware…just intermittently.

I have tried to make sure all the names of all the things in ISY have no spaces, tried nothing grouped in ISY.
Tried adding variables and removing them all to no avail. Config checker says valid as it always has.

Anyone think of anything I can look at to try and make this work again?

Michel from UDI replied to a post of mine on their forum here:

Seems PyISY may need to be updated as the more updated firmwares are changing the way things work.

1 Like

Yes, this is without a doubt an issue that needs to be fixed in the integration, which will require some PyISY changes as well. It’s on my list; I’ve just been busy :frowning:

Not trying to rush you to do it…I’m just trying all I can to figure out what is going on with it all so I’m digging for as much info as I can find.

Thanks for all the work you are doing on the component!

I’m curious if garage door support (through an IOLinc) is working through Home Assistant yet. When I connect up my ISY, it sees the sensor and relay separate, but there seems to be no way I can see to specify these things as a single garage door in Home Assistant like there is in Homebridge.

I doubt there will ever be a Garage Door Cover component for HA ISY994 for the simple reason there is no garage door Insteon device. It you look at the bottom of the ISY994 Control page you will see a “Creating Custom Devices” section which uses programs to create unique components one of which is HA.cover. This approach will give you exactly what you need.

Here is what my garage door HA.cover looks like and it works perfectly. With my setup I get the following covers…cover.garage_door_1, cover.garage_door_2, and cover.garage_door_3. My garage door have the typical single switch to open, stop and close so my actions script is the same for both then and else paths.

1 Like

This seems like a really round-about way (more complex than it is in Homebridge) to make your garage door work. Are there plans to improve this?

The ISY-994 does not support the concept of a “Cover”. The ISY994 Home Assistant Controller component allows you to emulate a cover using the approach I described above. Once this cover is available in Home Assistant you can use Homebridge to control it. This is the only way you are going to get what you want.

@OverloadUT How do you trigger Insteon Scenes from automations? I’m relatively new to HA, but i’ve made use of these scenes in OpenHab for the same reason you mentioned and it works great.

Well I’m not OverloadUT but I’ll answer your question. ISY994/Insteon scenes show up in Home Assistant as switches. Say your scene is called “Christmas Lights” in your ISY994; it will show up in Home Assistant with an entity_id of switch.christmas_lights. In automations you can use service calls to turn on/off scenes like below.

automation:
  # Christmas lights turn on at 8:00PM
  - alias: "Christmas Lights Automatic On"
    trigger:
      platform: time
      at: "20:00:00"
    action:
      - service: switch.turn_on
        entity_id: switch.christmas_lights

That’s nice that ISY scenes are auto detected. What about scenes stored on the PLM under a Group?

ISY scenes are PLM groups. When you create a scene in the iSY it will create a corresponding group on the PLM with the devices specified and PLM as a controller/responder automatically so the ISY can manage it.

Any word on the PyIsy fix for the “TypeError: ‘>’ not supported between instances of ‘NoneType’ and ‘int’” issue?