Websocket issues with ISY integration (possible climate issue?)

Well I’ve been beating my head against the wall for too long now and it’s time to ask for assistance. I’ve been looking through this forum and through various github issues and nothing seems to entirely fit what I’m experiencing (that I’ve been able to find) but I’m not perfect, if you have suggestions where I may be better to post up my issues please feel free to point me in the right direction.

Back Story:

I have been using a bunch of Insteon gear and an ISY 944 for about a decade now. I’ve been doing so without issue, but I want more! I was introduced to Home Assistant by my brother and set up an instance… months ago - and I guess that’s really when the issues started, though I wasn’t entirely sure what was up. It started with Google Home integration directly to the ISY controller not working consistently anymore, it gives errors stating it can’t reach the device - yet it sometimes still does what was asked.

The Issue:

Fast forward to presently and I’ve determined there is something weird going on with websocket connections between HA and the ISY controller, to the point it sometimes crashes the ISY Controller (or it needs to be manually restarted). When I disable the integration within HA my issues go away, but so does the integration with 55 devices and a boat-load of automations.

Necessary Info:

I am running HA on a Linux based VM inside a docker container. I forget just where I found where to set it up like this but it was some form of official documentation. It runs along side a couple of other VMs which resize on a vSphere instance on an old enterprise level workstation I’ve been using for 5-6 years now.

System Health

version core-2022.2.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.91
arch x86_64
timezone America/Halifax
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4964
Installed Version 1.22.0
Stage running
Available Repositories 1039
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 7.2
update_channel stable
supervisor_version supervisor-2022.01.1
docker_version 20.10.9
disk_total 30.8 GB
disk_used 13.0 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons File editor (5.3.3), Studio Code Server (3.7.0), Home Assistant Google Drive Backup (0.105.2), ESPHome (2021.9.1), Mosquitto broker (6.0.1), Network UPS Tools (0.9.0), Terminal & SSH (9.3.0)
Universal Devices ISY994
host_reachable failed to load: unreachable
device_connected true
last_heartbeat February 6, 2022, 6:20 PM
websocket_status connected
Lovelace
dashboards 4
resources 0
views 10
mode storage

Network Information

I run a Ubiquiti USG, 24 port gigabit switch and a wireless mesh network. Everything related to this scenario is hard-wired to the same switch.

Log Messages

Within my log files in HA I get the following error show up every few seconds:

Logger: pyisy.events.websocket
Source: /usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py:259
First occurred: 6:12:13 PM (406 occurrences)
Last logged: 6:26:10 PM

Websocket disconnected unexpectedly. Check network connection.

as well as a few others:

Logger: pyisy.events.websocket
Source: /usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py:238
First occurred: 6:15:35 PM (10 occurrences)
Last logged: 6:26:02 PM

Error during receive Received frame with non-zero reserved bits

Logger: pyisy.events.websocket
Source: /usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py:263
First occurred: 6:15:35 PM (10 occurrences)
Last logged: 6:26:02 PM

Websocket disconnected unexpectedly with code: WSCloseCode.ABNORMAL_CLOSURE

The log files on the ISY controller are also full of error messages related websocket issues:

|Sun 2022/02/06 18:26:30|System|-5012|8129||
|---|---|---|---|---|
|Sun 2022/02/06 18:26:54|System|-5012|8130||
|Sun 2022/02/06 18:27:18|System|-5012|8131||
|Sun 2022/02/06 18:27:38|System|-5012|8132||
|Sun 2022/02/06 18:27:55|System|-5012|8133||
|Sun 2022/02/06 18:28:09|System|-5012|8134||
|Sun 2022/02/06 18:28:18|System|-5012|8135||
|Sun 2022/02/06 18:28:38|System|-5012|8136||
|Sun 2022/02/06 18:28:56|System|-5012|8137||
|Sun 2022/02/06 18:29:20|System|-5012|8138||
|Sun 2022/02/06 18:29:38|System|-5012|8139||
|Sun 2022/02/06 18:30:30|System|-5012|8140||

Additional Information:

I had two devices on the ISY controller which didn’t always respond. They’re remote, in my garage, and while they work via the Insteon Remote I have paired to them in the garage, they’ve never worked properly within the ISY interface. Communication issues.

I have attempted to remove them, they’re gone from the ISY interface but still remain within the integration of the ISY Controller in HA. I have attempted to remove them as devices (I have disabled them) and Entities but the delete button is grey’d out. They’re currently disabled as Entities also but my Integration in HA shows the same number of devices.

Possibly Related/additional issue:

Another error I’ve noticed is related to climate. I live in Northern Canada and I don’t heat my garage unless I’m in it. My Insteon Thermostat out there shows 0 regardless if it is 0 or below. When this happens the ISY interface shows something like 127.5 degrees. Within HA I am getting a couple related errors:

Logger: pyisy.events.websocket
Source: components/isy994/climate.py:136
First occurred: 6:12:08 PM (30 occurrences)
Last logged: 6:25:42 PM

Unexpected websocket error '0'
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py", line 234, in websocket
    await self._route_message(msg.data)
  File "/usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py", line 191, in _route_message
    self.isy.nodes.control_message_received(xmldoc)
  File "/usr/local/lib/python3.9/site-packages/pyisy/nodes/__init__.py", line 268, in control_message_received
    node.update_property(node_property)
  File "/usr/local/lib/python3.9/site-packages/pyisy/nodes/nodebase.py", line 228, in update_property
    self.status_events.notify(self.status_feedback)
  File "/usr/local/lib/python3.9/site-packages/pyisy/helpers.py", line 179, in notify
    subscriber.callback(event)
  File "/usr/src/homeassistant/homeassistant/components/isy994/entity.py", line 54, in async_on_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 530, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 563, in _async_write_ha_state
    state = self._stringify_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 536, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 210, in state
    return self.hvac_mode
  File "/usr/src/homeassistant/homeassistant/components/isy994/climate.py", line 136, in hvac_mode
    return UOM_TO_STATES[uom].get(hvac_mode.value)
KeyError: '0'

Logger: homeassistant.helpers.template
Source: helpers/template.py:1822
First occurred: 6:15:55 PM (2 occurrences)
Last logged: 6:15:55 PM

Template variable warning: 'mappingproxy object' has no attribute 'current_temperature' when rendering '{{ state.attributes.current_temperature }}'

So again, not entirely sure if this is the right spot to be posting this but I have to start somewhere.
I am very much willing to provide any additional logging information I can.

I should also point out that the integration mostly works, sometimes haha

When I really noticed there being an issue was when I recently set up a 2nd stage heat in a feed-room in a barn controlled by HA. The Insteon thermostat initially provided feedback to HA perfectly fine, then it stopped updating regularly. This lead to HA thinking the room was at one temperature when it was really at another and automation not happening as a result.

Thinking my ISY was on its way out I moved some nightly automated tasks (turning on some yard lights) over to HA. These tasks don’t always execute properly. Sometimes they’re fine and other times not so much.

Devices NOT connected to the ISY (using other integrations/protocols via HA) work just fine.

I have also noticed the same behavior. Homeassistant is also logging a websocket error and then the ISY which was rock stable for > 1 year before integration with HASS needs to be restarted.

‘Logger: pyisy.events.websocket’
'Source: components/isy994/climate.py:136 ’
'First occurred: 7:54:49 PM (13 occurrences) ’
‘Last logged: 8:08:05 PM’

‘Unexpected websocket error ‘0’’
‘Traceback (most recent call last):’
’ File “/usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py”, line 234, in websocket
await self._route_message(msg.data)’
’ File “/usr/local/lib/python3.9/site-packages/pyisy/events/websocket.py”, line 191, in _route_message
self.isy.nodes.control_message_received(xmldoc)’
’ File “/usr/local/lib/python3.9/site-packages/pyisy/nodes/init.py”, line 268, in control_message_received
node.update_property(node_property)’
’ File “/usr/local/lib/python3.9/site-packages/pyisy/nodes/nodebase.py”, line 228, in update_property
self.status_events.notify(self.status_feedback)’
’ File “/usr/local/lib/python3.9/site-packages/pyisy/helpers.py”, line 179, in notify
subscriber.callback(event)’
’ File “/usr/src/homeassistant/homeassistant/components/isy994/entity.py”, line 54, in async_on_update
self.async_write_ha_state()’
’ File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 530, in async_write_ha_state
self._async_write_ha_state()’
’ File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 563, in _async_write_ha_state
state = self._stringify_state()’
’ File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 536, in _stringify_state
if (state := self.state) is None:’
’ File “/usr/src/homeassistant/homeassistant/components/climate/init.py”, line 210, in state
return self.hvac_mode’
’ File “/usr/src/homeassistant/homeassistant/components/isy994/climate.py”, line 136, in hvac_mode
return UOM_TO_STATES[uom].get(hvac_mode.value)’
‘KeyError: ‘0’’

Did either of you ever figure this out?

Thank you!

Everything has been, overall, working much better - though I can’t exactly remember why… seems to me there was issues with wireless thermostats that I had to remove from HA which restored primary functionality. Sorry I don’t remember more to assist. Not sure why I didn’t get notified of this response to my question.

I’ve started to notice similar issues as well. The ISY service stops responding after a few hours/days and then needs to be restarted. The ISY itself doesn’t seem to need to be reset- just the service