Insteon Thermostat 2441TH for ISY

Please feel free to test from my fork linked above. I’m currently waiting for changes made to PyIsy to be incorporated before Home Assistant will review the changes.

If you don’t want to use the whole fork, you should be able to test my changes using a custom component in the config folder… When I figure out how to do that myself I’ll post some instructions.

Just started on Hass this week. Going to check this out! I have isy with zwave thermostat. Thanks.

I believe I figured out the custom_component part, and now I’m ready to add the thermostat to my configuration. Could you drop a sample snippet of your configuration.yaml that invokke the thermostat?
Thanks

Has anyone figured out how to add this to their instance? I’ve tried adding all of the files to my custom_components directory in the structure as they are from the GitHub fork, but no luck

I have an Insteon thermostat and would be willing to test.

TO TEST AS A CUSTOM COMPONENT:
This assumes you have ~/.homeassistant as your config directory, update as needed

  1. Copy all of the files from the isy994 component folder from my fork to ~/.homeassistant/custom_components/isy994/ (either download the whole repo zip file and copy just that folder, or download and save each file 1-by-1).

EDIT: The following steps are no longer required:
2. Install the custom PyISY instance (still waiting for it to be updated on PyPi): *
- Run pip3 install https://github.com/shbatm/PyISY/archive/develop.zip#PyISY==1.1.2 --target ~/.homeassistant/deps --system. If you use a virtual environment, make sure you activate it first.

3. Run Home Assistant with the --skip-pip flag to make sure it uses the custom module.
e.g. hass --skip-pip

EDIT: Working in Hass.io instance now too. No need to use --skip-pip, it automatically installed my version of the PyISY module in the main dependency folder. If it doesn’t work right away, check your logs and see if there was an error, I had some DNS issues with the Docker container preventing the installation the first time (couldn’t find github.com). END EDIT

Also, I had to remove the option to set “Program Auto” mode by request of the reviewers. This is not an “approved” climate mode in Hass–I completely disagree with limiting the functions that are supported by a device because they don’t match a Hass standard; if you want to weigh in on the conversation and direction the Climate module is taking: here’s your chance!

2 Likes

Thanks for the instructions! This is working wonderfully.

Just a few notes: this has been updated for the breaking changes introduced in 0.92b3. Also, due to some restrictions in getting this component added officially, I have split off the version to be used for custom_components to the isy994-climate-dev branch:

Primary differences:

  • This will install the requirements for PyISY from my repo until it is updated in PyPi to the next version.
  • Current operating status is used as the state (heating/cooling/idle) instead of the mode it is set to (heat/cool/auto).

Please add ‘5.11.16.’ in ‘insteon_type’: [‘5.11.13.’, ‘5.10.14.’, ‘4.33.1.’] for newer version of the thermostat.

Also with pip3 and homeassistant 0.92.2 i get

(homeassistant) homeassistant@hassbian:/home/pi $ pip3 install https://github.com/shbatm/PyISY/archive/develop.zip#PyISY==1.1.2 --target ~/.homeassistant/deps --system

Usage:
pip3 install [options] [package-index-options] …
pip3 install [options] -r [package-index-options] …
pip3 install [options] [-e] …
pip3 install [options] [-e] …
pip3 install [options] <archive url/path> …

no such option: --system

This has been added and pushed.

This should not be required now if you use the isy994-climate-dev branch. I pushed a PyISY_beta package to PyPi which the component should pull when it loads.

Thanks - yes i tried isy994-climate-dev and it worked fine.

When will this be available in a HA release?

The PR request is in on GitHub and has been reviewed. Currently, I am waiting for the PyISY changes to be accepted (the Hass reviewers are also considering accepting my temporary fork of PyISY)

Tl;Dr: soon.

anybody tested this with zwave thermostats yet? I’m just installing it in my dev hass instance, and it’s bombing, but I need to dig into it to make sure it’s not a misconfig…

@shbatm fwiw, here’s the stack trace I’m getting:

  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step
    result = coro.send(None)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 365, in _async_add_entity
    await entity.async_update_ha_state()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 256, in _async_write_ha_state
    attr.update(self.device_state_attributes or {})
  File "/home/homeassistant/.homeassistant/custom_components/isy994/__init__.py", line 484, in device_state_attributes
    for name, val in self._node.aux_properties.items():
AttributeError: 'list' object has no attribute 'items'

EDIT: here’s what the _node.aux_properties contains:

[{'id': 'CLIMD', 'value': 1, 'uom': ['67'], 'prec': '0'}, 
{'id': 'CLISPC', 'value': 77, 'uom': ['17'], 'prec': '0'}, 
{'id': 'CLISPH', 'value': 70, 'uom': ['17'], 'prec': '0'}]

@jon102034050 – I don’t have a Z-Wave T-Stat to test with so thanks for helping and reporting the issue.

A couple things to try:

  1. Make sure you’re using the latest version from this branch: https://github.com/shbatm/home-assistant/blob/isy994-climate-dev/homeassistant/components/isy994 – I had a similar error show up in one version that I was trying to get through review. Hass tries to get the aux_properties from the wrong place (__init__.py instead of climate.py).

  2. Please enable debug logging for this component in your config and share the logs back (here, or create an issue at my branch in GitHub to track).

logger:
  default: info
  logs:
    custom_components.isy994: debug

Hm, I’m pretty sure I pulled the custom component files from your latest release, but I’ll double check this. I’ve enabled debug logs and created an issue for you - thanks!
https://github.com/shbatm/home-assistant/issues/1

edit: confirmed I cloned out of the correct branch, all files md5 the same.

I just followed the above steps with hassio and am getting an error in the logs and no climate device showing up in the UI. I am using an ISY994i with a Venstar T1800.

2019-06-06 13:55:00 ERROR (MainThread) [homeassistant.core] Error doing job: Tas
k exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 3
65, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 225, in as
ync_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 255, in _a
sync_write_ha_state
    attr.update(self.state_attributes or {})
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", li
ne 211, in state_attributes
    self.precision),
  File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 22, i
n display_temp
    "Temperature is not a number: {}".format(temperature))
TypeError: Temperature is not a number: None

@sjthespian – Can you please enable debugging and post the logs somewhere (pastebin, here, or my Github fork) so I can try and diagnose?

@jon102034050 – I haven’t forgotten about you, sorry, I’ve been a little busy (work, wedding, etc…).

1 Like