Honeywell Lyric Thermostat

I would recommend not using this custom component until it hits the main branch - it’s a headache and flakey, no fault to @arsaboo, just things keep changing each version and this could cause indirect things to break (like recorder).

Sure, there are bugs to be worked out when HASS updates. But when you have lyric thermostats and you want them on your HASS, you just stick with it. @arsaboo and @Bram_Kragten have done a great job on this component and have been very helpful with any troubles along the way.

I tried searching within this thread but I didn’t see anything. Has anyone had 500 Internal Server Error when trying to go their the configurator? It comes up when I select next after selecting my 3 thermostats. I am using HASSIO on RP3. Everybting was working when I had Ubuntu 16.04 on it.

Here’s what i see in the hassio logs

@kevinw, any idea when this will hit the main branch? You are correct that it breaks for nearly every update but when you own a Lyric T5, there’s not really another good option.

2 Likes

So I upgraded to 0.66.1 and this is the only component that broke. I’m going to try to work through whats wrong but here is my error if anyone knows a “quick” fix:

Error during setup of component lyric

Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py”, line 145, 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 133, in setup
cache_ttl=cache_ttl)
File “/srv/homeassistant/lib/python3.5/site-packages/lyric/init.py”, line 655, in init
self._lyricAuth()
File “/srv/homeassistant/lib/python3.5/site-packages/lyric/init.py”, line 716, in _lyricAuth
self._token = json.load(f)
File “/usr/lib/python3.5/json/init.py”, line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File “/usr/lib/python3.5/json/init.py”, line 319, in loads
return _default_decoder.decode(s)
File “/usr/lib/python3.5/json/decoder.py”, line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “/usr/lib/python3.5/json/decoder.py”, line 357, in raw_decode
raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Looks like @Bram_Kragten has been busy off late. At this point, I am hoping that someone picks it up and submits an official PR. I would not recommend newbies to use this component for now.

Yes, sorry :disappointed_relieved:, I’m in the middle of a renovation… I will certainly not be able to finish it in the coming week, so if someone wants to get it, that would be great… (although everything seems to work here?)

1 Like

Don’t sweat @Bram_Kragten

Good luck with the renovation and I hope we can finish it soon after.

I would be willing to take this on but my time is limited for the next week or two. Also, I’m not a Python pro and it would take me some warm up time to get rolling. I would be glad to assist someone else though (debugging, testing, etc).

Many thanks @Bram_Kragten for the work you have put in. Hope your renovation goes well.

@arsaboo

Fyi, On April 30 Honeywell had an outage an a lot of customers could not connect (with mobile app or with api calls)

This got fixed yesterday around 5 PM EST. After that,the mobile app allowed the device and also Google home and all the other apps allowed to add device again.

in HA, I deleted the lyric.conf file so I can get to lyric config… I was getting the config Lyric at the top and when I click on configure, I was taken to Honeywell website and after click on “allow” then got 500 internal service error. Yes, I had my correct link with my internal IP on Honeywell dev website.

I could not get around it so this morning I downgraded to 0.63.3 and that allow me to pass auth when I click on configure and add the Thermostat to my HA

After that I upgraded to 0.68.1 and Thermostat was still in HA.

I hope it helps others who lost connection 2 days ago.

Looks like Lyric is broken again with the latest beta (0.69.0b0):

018-05-06 11:42:25 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform lyric
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py", line 125, in _async_setup_platform
    task = async_create_setup_task()
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py", line 90, in async_create_setup_task
    None, platform.setup_platform, hass, platform_config,
AttributeError: module 'climate.lyric' has no attribute 'setup_platform'

I think it is related to this #14304

Probably fixed under#14317

Indeed it was. The issue is fixed in 0.69.0b2

Unfortunatly I can’t re-auth my lyric even in the new beta

Error handling request

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 381, in start
resp = await self._request_handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/aiohttp/web_app.py", line 322, in _handle
resp = await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/aiohttp/web_middlewares.py", line 88, in impl
return await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/static.py", line 68, in staticresource_middleware
return await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/real_ip.py", line 27, in real_ip_middleware
return await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/ban.py", line 68, in ban_middleware
return await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/auth.py", line 54, in auth_middleware
return await handler(request)
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/view.py", line 104, in handle
result = await result
  File "/usr/lib/python3.6/asyncio/coroutines.py", line 210, in coro
res = func(*args, **kw)
  File "/home/homeassistant/.homeassistant/custom_components/lyric.py", line 201, in get
data = request.ARGS
AttributeError: 'Request' object has no attribute 'ARGS'

Well…just hope that one of the devs get us an official version soon :slight_smile:

You will need to downgrade to 0.63.3, then it will allow you to authorize your Thermostat.

After that you can update to latest Beta.

Hi all!

I posted on the github issue I think once or twice. I’m back again. :slight_smile:

Reason I’m back is it looks like every time someone deploys this, you’re grabbing your own API key. Well a self-service API key only gets 250 requests/hour. I can change this, but we need to make it so the “official” version has it’s own API key. Now I see lots of requests coming from one key, (tens of thousands of calls have been rejected in the last 7 days on this one key).

Should we use that one?

Joe

Finally got it working again. I had to set up a new virt-env and install 0.63.3 in there because downgrading gave me some weird errors. Afterwards I upgraded my original virt-env to 0.69.0b2 and everything is working again!

During the authorization process, I get the following error when it tries the callback.
image
I am using https and duckdns for my URL
https://MYNAME.duckdns.org:8123/api/lyric/authenticate
Any ideas?