Honeywell Thermostat Outside Temp and Humidity

I use the current Honeywell WIFI Thermostat integration. The product I use has the ability to integrate an externally connected sensor to return the local outside temperature and humidity. The somecomfort client library is written to return these attributes if the sensor data is available. I would like to see them also included in the Home Assistant integration. It would seem to be a simple addition and would eliminate the need for redundant system components to integrate local weather data.

Agreed, and seconded. I have the same system, and it is a great tool but it is somewhat useless unless I am standing in front of my thermostat. Would love to have it part of HA.

Yes, please. Outdoor temp and humidity sensors would be awesome. It looks like the somecomfort library can expose the data.

I also would like to be able to see my outdoor temp and humidity in home assistant.

I agree, outdoor temp and humidity would be wonderful

Add this please!

I tried making a copy of the climate component and adding to custom components and changing a few lines for outdoor but cannot get it working. not sure how to see if it’s in the somecomfort library or not.

Guess it isnt as simple as this :frowning_face::

    @property
    def outdoor_temperature(self) -> Optional[float]:
        """Return the current outdoor temperature."""
        return self._device.outdoor_temperature

    @property
    def outdoor_humidity(self) -> Optional[int]:
        """Return the current outdoor humidity."""
        return self._device.outdoor_humidity

@contactcr contractcr, I tried the same as you, no luck. I think outdoor temp and humidity may need to be added as a weather component, I don’t think the climate component in home-assistant has these attributes. Ecobee integration seems to use a weather.py file to get forecast attributes, maybe someone can implement similar for honeywell platform?
Looking at this further, the Netatmo and Fibaro integrations use sensor.py files to get outdoor temp and humidity, this looks promising.

Hey guys, I also have this thermostat and would love to see sensors for outdoor temperature and humidity. Unless @contactcr or @Hackashaq666 feel they are close to a solution already, I’d be happy to work on this as a contribution to home-assistant/core.

1 Like

Go for it!

I just use openweathermap for current temp and it’s close enough for me. I compare outside temp to current temp in house and alert when I should open windows.

I’m using openweathermap now for outside climate and have found it to be pretty far off at times.

Any love on this?

I just got a honeywell system and recently discovered home assistant. I had the same wish, to be able to display the outdoor sensors. I started working on this. I had to rearrange the code a bit, but I have it somewhat working on my system. There’s still some stability issues that I still need to fix related to hitting the honeywell api too many times and getting blocked. I also want to add proper humidification support, although it appears the somecomfort library doesn’t have that.

Created https://github.com/home-assistant/core/pull/42381/. Let’s see what they think. This is my first home assistant contribution, so it may take some back and forth.

1 Like

Hi @cfairfax, I have been using your “work in progress” for a couple of days as a custom component. Thanks for working on this! I am looking forward to you improving the stability, since it does become “unavailable” to home-assistant after a few hours. It would be great to have this accepted as a PR in home-assistant, but a custom component could be a short-term option for many users if the configuration requirements for a PR are an obstacle.

Thanks for testing out my change! I think I fixed the stability thing by bringing back the code that automatically retried the updates when it failed. I updated the branch. Can you try copying that into your custom_components and try it for a bit and let me know if it works better for you?

I’ll update and let you know if stable for me. Thanks again!

So far, your updated branch is working well for me as a custom component!
No stability issues so for over 10 hours.

My thermostat just became unavailable after 4 days.


Logger: custom_components.honeywell
Source: custom_components/honeywell/__init__.py:61 
Integration: Honeywell Total Connect Comfort (US) (documentation) 
First occurred: November 6, 2020, 8:38:19 PM (56 occurrences) 
Last logged: 8:33:40 PM

SomeComfort update failed. Trying again - Error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
SomeComfort update failed. Trying again - Error: You are being rate-limited. Try waiting a bit.

After restarting, it was stable for 3 more days but became unavailable again:

Logger: custom_components.honeywell
Source: helpers/update_coordinator.py:166
Integration: Honeywell Total Connect Comfort (US) (documentation)
First occurred: 7:31:58 AM (1 occurrences)
Last logged: 7:31:58 AM

Error fetching honeywell_update_coordinator data: You are being rate-limited. Try waiting a bit.

Logger: somecomfort
Source: /usr/local/lib/python3.8/site-packages/somecomfort/client.py:404
First occurred: 8:56:58 AM (9 occurrences)
Last logged: 9:07:01 AM

Login as [email protected] failed


Logger: custom_components.honeywell
Source: custom_components/honeywell/__init__.py:50
Integration: Honeywell Total Connect Comfort (US) (documentation)
First occurred: 8:56:59 AM (3 occurrences)
Last logged: 9:07:01 AM

Unexpected error fetching honeywell_update_coordinator data: Login failed
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 452, in _retries_login
    self.keepalive()
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 495, in keepalive
    raise SessionTimedOut('Session timed out')
somecomfort.client.SessionTimedOut: Session timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 144, in async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 132, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/honeywell/__init__.py", line 127, in async_update_data
    await __some_comfort_refresh_async_wrap(device)
  File "/config/custom_components/honeywell/__init__.py", line 40, in run
    return await loop.run_in_executor(executor, pfunc)
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/honeywell/__init__.py", line 60, in __some_comfort_refresh_async_wrap
    raise exp
  File "/config/custom_components/honeywell/__init__.py", line 50, in __some_comfort_refresh_async_wrap
    device.refresh()
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 87, in refresh
    data = self._client._get_thermostat_data(self.deviceid)
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 467, in _get_thermostat_data
    with self._retries_login():
  File "/usr/local/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 454, in _retries_login
    self._login()
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 49, in wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/somecomfort/client.py", line 405, in _login
    raise AuthError('Login failed')
somecomfort.client.AuthError: Login failed