Honeywell Lyric Thermostat

Just a update.
When nothing else seemed to work in my HA configuration I concentrated more on the api from honeywell.
I copied this error from my home-assistant log.
2018-01-18 08:22:57 ERROR (Thread-7) [lyric] HTTP Error Lyric API: 500 Server Error: Internal Server Error for url: https://api.honeywell.com/v2/locations?apikey=******************************
and forward it onto [email protected] with a explanation of my trouble.
The following afternoon the thermostat was back on my HA desktop. I never did receive a reply from Honeywell Support but my errors disappeared and everything has been working.
About seeing the other outputs. I don’t see them either. I use the component Dark Sky Sensor which is quite accurate for my longitude and latitude.

I am able to extract the current room temp from my thermostat information and use a automation to forward a message to my cell using telegram if my home temp drops below 50 degrees.

  • action:
    • data:
      message: Alarm Home temp below 50
      service: notify.telegram
      alias: ***** Home Temp 50 degrees. Temp Alarm
      condition: []
      id: ‘**************’
      trigger:
    • below: ‘50’
      entity_id: climate._thermostat
      platform: numeric_state
      value_template: '{{ states.climate.
      _thermostat.attributes.current_temperature
      }}’

I get the API error as well, but the thermostat still seems to function most of the time. The times that it fails seems rather random. It very well could be the API. Honeywell has added cameras and security to the API so ???

Looks like 0.62 broke Lyric again :frowning:

Log Details (ERROR)
Sat Jan 27 2018 09:51:53 GMT-0500 (Eastern Standard Time)

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/tasks.py", line 180, in _step
    result = coro.send(None)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity_component.py", line 429, in _async_add_entity
    yield from entity.async_update_ha_state()
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 219, in async_update_ha_state
    attr = self.state_attributes or {}
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/climate/__init__.py", line 528, in state_attributes
    if self.fan_list:
  File "/home/homeassistant/.homeassistant/custom_components/climate/lyric.py", line 278, in fan_list
    return self._fan_list
AttributeError: 'LyricThermostat' object has no attribute '_fan_list'

TOTALLY AGREE!! Moved back to 0.61.1 pip3 install homeassistant==0.61.1 and Lyric is back!!

Ok…I added another bugfix. Here’s the code that works with 0.62. I hope @Bram_Kragten can find some time to give us a clean version and, hopefully, a PR.

Sorry guys for the delays… Hectic here at the moment.
I think/hope I can find some time this week to finish a PR, it’s getting a bit annoying all those changes :wink:

3 Likes

Did you ever find any resolution to this? Mine has been throwing the 400 Client Error intermittently for a few months. If I wait 10 minutes and try again, it usually works.

It gets annoying though because as of late, my actual Honeywell Lyric app rarely opens up.

I guess there is a possibility that it’s an indication Honeywell is having issues.

Nothing other than updating @arsaboo patched lyric.py file 4 posts up. I still get the occasional similar error. Honeywell is adding devices to the Lyric line, so it is possible they are making API and other backend changes. ???

Hello

I’m new in home assistant.

I just bought a T6 thermostat and I want to install this component, but it’s impossible for me.

I have hassbian 0.63.3 on my raspberry. I tried to download to 0.61.1 but I don’t know why I can’t in hassbian.

When I check on configuration-> general configuration, the system say that there aren’t errors but when I go to about->information a can see this error

If I call de api directly (http://hassbian.local:8123/api/lyric/authenticate?code=XXXXX) the response is 404: not found.

I’ve create a honeywell api count and an API
I’ve installed the components in components and components/climate and in custom_components too.

Thank you very much!

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassistant/.homeassistant/custom_components/lyric.py", line 116, in setup
    import lyric
  File "/srv/homeassistant/lib/python3.5/site-packages/lyric/__init__.py", line 6, in <module>
    from requests_oauthlib import OAuth2Session
  File "/srv/homeassistant/lib/python3.5/site-packages/requests_oauthlib/__init__.py", line 9, in <module>
    if requests.__version__ < '2.0.0':
TypeError: unorderable types: module() < str()[quote="arsaboo, post:1, topic:3520, full:true"]
Would love to see [Honeywell Lyric](http://yourhome.honeywell.com/en/products/thermostat/lyric-thermostat) thermostats integrated with HA. Honeywell has a well documented [API](https://developer.honeywell.com/content/getting-started-guide) to access the thermostat. I will be happy to work with you on this. I have the thermostat and can also test it out for you.

Did you replace the lyric.py file from @arsaboo post. Honeywell Lyric Thermostat Place that file in the custom_components/climate folder, replacing the existing lyric.py file.

I updated my home-assistant to version 0.64.1. Now i get the following error on the Lyric component. Can anyone help.

2018-02-28 21:35:08 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform lyric
Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py”, line 84, in async_setup
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File “/usr/lib/python3.5/asyncio/tasks.py”, line 400, in wait_for
return fut.result()
File “/usr/lib/python3.5/asyncio/futures.py”, line 293, in result
raise self._exception
File “/usr/lib/python3.5/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/home/homeassistant/.homeassistant/custom_components/climate/lyric.py”, line 65, in setup_platform
for location, device in hass.data[DATA_LYRIC].thermostats()]
File “/home/homeassistant/.homeassistant/custom_components/climate/lyric.py”, line 65, in
for location, device in hass.data[DATA_LYRIC].thermostats()]
File “/home/homeassistant/.homeassistant/custom_components/climate/lyric.py”, line 119, in init
self._fan_list = self.device.settings[“fan”][“allowedModes”]
KeyError: ‘fan’

Solved! Find the new lyric.py from @arsaboo

does anyone know, if you need the lyric thermostat itself in order to read a lyric leak detector/humidity. i have a leak detector, but not the lyric thermostat

I just updated my custom component to match @arsaboo latest updates. Now my fan mode dropdown is empty and not selectable (They are set to ‘circulate’). Is that expected? Otherwise it works great now.

As a side note, I don’t mind creating a PR from your code to @Bram_Kragten 's repo. I’m a git whiz :smiley:. I may be able to keep the commit history and I would just show up on the merge commits.

I am hardly a git whiz…but feel free to modify the code and bring it to a reasonable standard (there are a few things that are not working, e.g., hold_mode). It will be great if we can get a official PR in.

Not sure what I am missing here. I was having some issues so I completely removed HA from my PI and when I try to get everything back up and running, I get some errors with Lyric. I have the latest patch @arsaboo put out. It was working before. Any help would be appreciated.

`2018-03-05 17:22:17 ERROR (MainThread) [homeassistant.setup] Error during setup of component lyric

Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py”, line 148, in _async_setup_component
component.setup, hass, processed_config)
File “/usr/lib/python3.5/asyncio/futures.py”, line 361, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.5/asyncio/tasks.py”, line 296, in _wakeup
future.result()
File “/usr/lib/python3.5/asyncio/futures.py”, line 274, in result
raise self._exception
File “/usr/lib/python3.5/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/home/homeassistant/.homeassistant/custom_components/lyric.py”, line 116, in setup
import lyric
File “/srv/homeassistant/lib/python3.5/site-packages/lyric/init.py”, line 6, in
from requests_oauthlib import OAuth2Session
File “/srv/homeassistant/lib/python3.5/site-packages/requests_oauthlib/init.py”, line 9, in
if requests.version < ‘2.0.0’:
TypeError: unorderable types: module() < str()`

I get this error
2018-03-06 17:35:48 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/local/lib/python3.6/asyncio/tasks.py", line 182, in _step result = coro.throw(exc) File "/usr/src/app/homeassistant/setup.py", line 57, in async_setup_component return (yield from task) File "/usr/local/lib/python3.6/asyncio/futures.py", line 327, 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 243, in result raise self._exception File "/usr/local/lib/python3.6/asyncio/tasks.py", line 180, in _step result = coro.send(None) File "/usr/src/app/homeassistant/setup.py", line 104, in _async_setup_component component = loader.get_component(domain) File "/usr/src/app/homeassistant/loader.py", line 142, in get_component module = importlib.import_module(path) File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 674, in exec_module File "<frozen importlib._bootstrap_external>", line 781, in get_code File "<frozen importlib._bootstrap_external>", line 741, in source_to_code File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/config/custom_components/lyric.py", line 7 <!DOCTYPE html>

I don’t understand a word of it :slight_smile:

It means that your file lyric.py is not good. Probably a copy and paste error when you copied the contents.

Can you tell me where I can find the right lyrc.py’s ?
Thanks

Check my repo…those files are working for me right now.