Unable to Connect ISY994 Pro - Resolved

Hi All,

Been trying to get HA to connect to ISY from some time now with no luck. Can a developer or someone please assist? It seems to be connecting but then fails setting up.

I have tried various configurations but here is how it is setup now:

isy994:
host: https://10.0.1.16:443
username: USER
password: PW
tls: 1.2

When I start HA I get the following errors:

2017-10-25 16:15:17 ERROR (MainThread) [homeassistant.setup] Error during setup of component isy994
Traceback (most recent call last):
File “/usr/src/app/homeassistant/setup.py”, line 194, in _async_setup_component
component.setup, hass, processed_config)
File “/usr/local/lib/python3.6/asyncio/futures.py”, line 332, in iter
yield self # This tells Task to wait for completion.
File “/usr/local/lib/python3.6/asyncio/tasks.py”, line 250, in _wakeup
future.result()
File “/usr/local/lib/python3.6/asyncio/futures.py”, line 245, in result
raise self._exception
File “/usr/local/lib/python3.6/concurrent/futures/thread.py”, line 56, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/app/homeassistant/components/isy994.py”, line 192, in setup
use_https=https, tls_ver=tls_version, log=_LOGGER)
File “/usr/local/lib/python3.6/site-packages/PyISY/ISY.py”, line 85, in init
self.programs = Programs(self, xml=self.conn.getPrograms())
File “/usr/local/lib/python3.6/site-packages/PyISY/Programs/init.py”, line 55, in init
self.parse(xml)
File “/usr/local/lib/python3.6/site-packages/PyISY/Programs/init.py”, line 169, in parse
pname = feature.getElementsByTagName(‘name’)[0]
AttributeError: ‘NoneType’ object has no attribute ‘toxml’

I dont have a Pro, so I havent tested TLS, but is your yaml actually structured like that or is that just how it pasted? It should look like

isy994:
  host: http://192.168.12.32:80
  username: isy_user
  password: isy_password

Also, I believe TLS requires version 4.5.4 or higher - so be sure you’re on that

Thanks for the feedback. I do have my yaml the same as yours with the addition of tls. Just forgot to fix it when I pasted it. The HA version is 0.56.1 and ISY is on 4.6.2.

Any other ideas? I really hope to get this working.

Mine looks exactly as boojew … and it’s been working fine.
Did you try removing the “tls:” entry? My configuration does not have it although I use TSL:1.2 on my ISY

Yea I have tried this option a few times as well. I just removed the docker and then reinstalled everything into a fresh folder
and added this:

isy994:
  host: http://10.0.1.16:80
  username: USER
  password: PW

I still get the same error as listed before. :frowning:

I’m wondering if there is an issue with communication since I am running within a docker on unraid. Is there anyone on here that could help me understand the error I am getting to track the root cause?

Here is the most recent error with my current config:

        2017-10-25 23:53:41 ERROR (MainThread) [homeassistant.setup] Error during setup of component isy994
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/setup.py", line 194, in _async_setup_component
    component.setup, hass, processed_config)
  File "/usr/local/lib/python3.6/asyncio/futures.py", line 332, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/local/lib/python3.6/asyncio/tasks.py", line 250, in _wakeup
    future.result()
  File "/usr/local/lib/python3.6/asyncio/futures.py", line 245, in result
    raise self._exception
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/app/homeassistant/components/isy994.py", line 192, in setup
    use_https=https, tls_ver=tls_version, log=_LOGGER)
  File "/usr/local/lib/python3.6/site-packages/PyISY/ISY.py", line 85, in __init__
    self.programs = Programs(self, xml=self.conn.getPrograms())
  File "/usr/local/lib/python3.6/site-packages/PyISY/Programs/__init__.py", line 55, in __init__
    self.parse(xml)
  File "/usr/local/lib/python3.6/site-packages/PyISY/Programs/__init__.py", line 169, in parse
    pname = feature.getElementsByTagName('name')[0] \
AttributeError: 'NoneType' object has no attribute 'toxml'
2017-10-26 00:45:56 ERROR (MainThread) [homeassistant.core] Error doing job: Fatal error on transport TCPTransport (error status in uv_stream_t.read callback)
OSError: [Errno 113] No route to host

This error looks different. Last line is “No route to host”, which means there is a routing issue between your docker instance and the ISY. My assumption would be that the container has a bad network config. I’m not docker pro, but on my containers, I give them “host” access.

I use docker-compose for my files, and this is what my config looks like. Key line there is network_mode: host

version: '2'
services:
  home-assistant:
    image: homeassistant/home-assistant:latest
    container_name: hass
    restart: always
    network_mode: host
    environment:
      - TZ=America/Montreal
    volumes:
      - /etc/docker/conf/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
      - /etc/docker/conf/letsencrypt:/etc/letsencrypt:ro
      - /usr/lib/python3/dist-packages:/usr/lib/python3/dist-packages

Interesting observation. Yesterday I thought there could be some networking issues as well so I decided to install CentOS in a VM on my unraid server, then install HA. I then setup ISY but I am left with the same initial error on connection. It does seem to be related to a communication issue for sure. Pinpointing is proving to be a challenge.

Here is the error from the CentOS install:

2017-10-27 17:55:08 ERROR (MainThread) [homeassistant.setup] Error during setup of component isy994
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py", line 194, in _async_setup_component
    component.setup, hass, processed_config)
  File "/opt/rh/rh-python35/root/usr/lib64/python3.5/asyncio/futures.py", line 358, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/opt/rh/rh-python35/root/usr/lib64/python3.5/asyncio/tasks.py", line 290, in _wakeup
    future.result()
  File "/opt/rh/rh-python35/root/usr/lib64/python3.5/asyncio/futures.py", line 274, in result
    raise self._exception
  File "/opt/rh/rh-python35/root/usr/lib64/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/isy994.py", line 192, in setup
    use_https=https, tls_ver=tls_version, log=_LOGGER)
  File "/srv/homeassistant/lib/python3.5/site-packages/PyISY/ISY.py", line 85, in __init__
    self.programs = Programs(self, xml=self.conn.getPrograms())
  File "/srv/homeassistant/lib/python3.5/site-packages/PyISY/Programs/__init__.py", line 55, in __init__
    self.parse(xml)
  File "/srv/homeassistant/lib/python3.5/site-packages/PyISY/Programs/__init__.py", line 169, in parse
    pname = feature.getElementsByTagName('name')[0] \
AttributeError: 'NoneType' object has no attribute 'toxml'

Been working on this some more.

  1. I bought a Rasberry Pi and installed Hass.io just to rule out any docker issues.
    2.) Set everything up
    3.) Entered in ISY994 settings as follows:
isy994:
  host: http://10.0.1.16:80
  username: user
  password: pw
  tls: 1.2

and 

isy994:
  host: http://10.0.1.16:80
  username: user
  password: pw

and

isy994:
  host: https://10.0.1.16:443
  username: user
  password: pw

and

isy994:
  host: https://10.0.1.16:443
  username: user
  password: pw
  tls: 1.2

and 

isy994:
  host: https://10.0.1.16:443
  username: user
  password: pw
  tls: 1.1

and 

isy994:
  host: https://10.0.1.16:443
  username: user
  password: pw
  tls: 1.0 

Unfortunately I get the same error during each of these configs. Actually with some of the configs Hass.io front end will not even load, however resinos does load allowing me to change the config. There has to be something wrong with the component within HA itself. I have other devices that communicate with ISY with no issues.

Can a developer of HA please help me with this? I really do not want to give up on HA but I am running out of steam at this point.

Thanks!!!

I was able to resolve this issue. It turned out that I have a folder in my ISY programs with no name. HA’s ISY994 component is not equipped to handled this situation. I have deleted the folder and created a ticket to correct this issue.

https://github.com/automicus/PyISY/issues/32

Can you show me how you get it to work with ISY994i? This is my first time install HA from Hassbian PI.

For me I just entered the following:

isy994:
  host: HTTPS://ADDRESS:PORT
  username: ISY_USERNAME
  password: ISY_PASSWORD
  tls: 1.2

You only need to set tls to 1.2 if that is what you have set in ISY, otherwise it defaults to 1.1. Let me know if you need more help once you try to connect.

Thanks it works all the lights and switches including remotes too. I did wrong because I use the local address instead of https address from internet. Will this takes longer to loop back to the local ip? When I do the testing the status works if lights are turn on/off from ISY console for HA but when I turn lights/switches manually from the wall it does not update the status to the HA. How do I make this to update the status correctly on HA?

Have you had a chance to read through this: https://home-assistant.io/components/isy994/

I think most of your questions would be answere there.