Honeywell Lyric Thermostat

I know there’s a test for the API servers before the call to the API, but it would be good if there were some controls on the developer page to control the repeats, wait, retry timers, packet length, etc.

It would also be good to be enable extra logging for just the initial auth and token validation.

The fact that mine was broken, then magically got better is odd. I wonder if there’s other API calls we could do to verify the health of their network? Maybe they keep updating the service at night? Perhaps they limit the maximum connected clients?

I may be able to see from my firewall logs if the traffic from their end is on ascending source ports when they reply. Sometimes these are randomized but if they ascend then go back to lower ports that would make me think the service at their end was restarted.

For all we know, they have a load balancer setup and one or two of the balanced servers In the pool aren’t right.

Cheers,

Ambi

I noticed I’m seeing a 500 error when attempting to configure my lyric thermostat, and here is the excerpt from the logs:

2019-11-09 23:37:39 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/real_ip.py", line 40, in real_ip_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 73, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 136, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 122, in handle
    result = await result
  File "/usr/local/lib/python3.7/asyncio/coroutines.py", line 120, in coro
    res = func(*args, **kw)
  File "/config/custom_components/lyric/__init__.py", line 199, in get
    data = request.GET
AttributeError: 'Request' object has no attribute 'GET'

I’m also seeing intermittent error 500’s. Most of the time, my Lyric thermostat works fine with Home Assistant, and I can live with occasional errors (if Honeywell’s API servers aren’t reliable, that’s certainly not HA’s fault) if they affect only the functionality of those devices in HA.

However, since the 500 errors appear to be happening on the main thread (see the logs others have posted above), it seems to bring down my entire HA system whenever those errors happen - at least for the time the errors are happening (it keeps running, but it becomes unresponsive to other requests), and according to my logs, that can last for hours at a time.

Ideally, I would think those checks/updates should happen on a background thread, but I’m unfamiliar with the concurrency architecture of HA, so that recommendation may be misguided.

1 Like

However, since the 500 errors appear to be happening on the main thread (see the logs others have posted above), it seems to bring down my entire HA system whenever those errors happen

Yeah I have suddenly been seeing the same thing and makes HA inaccessible while it’s happening…nasty bug actually if I can’t access HA because of it.

2019-11-11 06:58:54 ERROR (MainThread) [lyric] HTTP Error Lyric API: 504 Server Error: GATEWAY_TIMEOUT for url: https://api.honeywell.com/v2/locations?apikey=***********************
2019-11-11 06:59:54 ERROR (MainThread) [lyric] HTTP Error Lyric API: 504 Server Error: GATEWAY_TIMEOUT for url: https://api.honeywell.com/v2/locations?apikey=***********************
2019-11-11 07:00:54 ERROR (MainThread) [lyric] HTTP Error Lyric API: 504 Server Error: GATEWAY_TIMEOUT for url: https://api.honeywell.com/v2/locations?apikey=***********************

Github shows no development on this for 4 months, so not sure if this is a plug-in that is going to really go anywhere.

https://github.com/home-assistant/home-assistant/tree/92082b687a46c17a9a94a598b245728a8832b179/homeassistant/components/lyric

I may give up on this plug-in and try Homekit instead although I guess that is deprecated, but if it works…

1 Like

Using HA 0.100 the default homekit component worked great for me. After upgrading to 0.101 my thermostat isn’t being discovered at all though.

Bummer. Experiencing the same! Already was wondering why HASS was sometimes not avail for few hours last few days…

@kylerw do you know who is maintaining this component?

Looks like timmo001 (the person working on the most recent implementation and pull request: https://github.com/home-assistant/home-assistant/pull/23015) pushed some changes to their fork (https://github.com/timmo001/home-assistant/tree/lyric) as recently as 17 days ago, but apparently they’re also hitting the 500 error. I’m guessing that’s making it harder to develop and debug.

I just tried the most recent code from that fork (and looking at the code, it appears to address the thread issues noted earlier), but it’s failing to load the component with this error:

2019-11-11 21:18:27 ERROR (MainThread) [homeassistant.config] Unable to import lyric: No module named 'homeassistant.components.lyric'
2019-11-11 21:18:27 ERROR (MainThread) [homeassistant.setup] Setup failed for lyric: Invalid config.

Not sure if this is caused by something left over from the version I had previously installed, a change in the configuration format, or just a bug.

1 Like

Oddly, my 2 thermos are T5’s. They’re on a schedule to turn down the heat at midnight.

Today, they’ve been on the same temp until I manually turned it down on both floors.

When I did that, the Hass.io saw it and updated the cards in Lovelace.

But could their server have had some maintenance around midnight? But even so, the T5 should hold the schedule even with no internet, no?

I could set up a job to connect to the service every 30 mins or so…but that may make things worse!

One way a service load balances is to allow then block CIDR blocks based on region. Perhaps this is what they do to us?

Maybe they say “nobody watches and changes their thermostats at 2AM, so shut off those time zones until 5 am!”, maybe?

Cheers,
Ambi

I’m fairly certain schedules do not require or use cloud services, but are stored on the thermostat itself. Is it possible you had put the thermostat into “Hold” mode?

1 Like

Unless Ambi’s T5’s behave differently than mine. They only hold until the next scheduled change at which point they resume their schedule

1 Like

Hmmmmm, maybe a coincidence, but my heat was turned off at 10:47pm last night mysteriously by HA! Everyone was in bed sleeping, house was damn cold this morning as we’re in a cold snap right now here.

As a network security expert beginning to wonder if Honeywell’s developer site has been hacked?

Since the homekit lyrics support is depricated I had to move back here, but I can’t seem to get it to authorize. I’m using nabu casa, could anyone help me out what to type in the dev app and what to set as base_url? http or https ? the nabu casa adres in both ? …

{"code":400, "message":"The redirect URL provided does not match the redirect URL registered for the app."}

Very much appreciated!

I believe you have to use the internal URL of HA at the Honeywell developers site…screen shot from the Honeywell developers site of what mine looks like pointing to my internal IP of HA.

1 Like

thanks, that did the trick for me :smiley:

Just got the following email…I suspect this isn’t with the app per say but more around their API servers…so if the HA plugin stops working around this time, it’s probably due to this maintenance window.

I consider a EU T6, integration with the hassio version of HA is mandatory for me. From the endless posts it has become really unclear to me whether a reliable and stable way of controlling it could be expected. Therefore your vision/knowledge counts :slight_smile:

  • can I expect in all cases to have it working fine?
  • is a consistent and complete setup process available (For noobs)
  • would you recommend the T6 with HA.

Looking forward to your responses…

  • can I expect in all cases to have it working fine?

I have the T5, for the most part it’s been working fine the majority of the time, I think awhile back Honeywell was having some trouble with their API servers that caused some inconsistencies. But I’ve had no problems since and the problems are just with communications to the Lyric…so even without internet the Lyric will continue to run at the set temp and/or schedule if you set one up on the unit.

I also used this plugin all last winter and it worked great.

  • is a consistent and complete setup process available (For noobs)

Unfortunately this is a PITA to setup right now as there is no real clear and easy setup process available. Seems most here have gotten it working just by reading the countless post :slight_smile: and then trial & error.

Also (at the moment) the original developer isn’t on this thread anymore and not much love seems to be giving to the Lyric from the HA developer community. The plugin works fine, but there is always concern a change with Honeywell’s API’s servers could break things with the plugin and a fix might not happen right away should the latter occur.

  • would you recommend the T6 with HA.

I think the majority of us here are using the T5, can’t speak to the T6, but not sure Honeywell would have changed the API calls that much between the T5 and T6…they both look the same outside of the screen. Then again engineers like to fix things that aren’t broken so it’s possible the T6 at the API level is completely different from the T5.

Thanks Ski, great feedback. As far as I’ve been able to find out, T5 and T6 are rather equal so I don’t worry about that. Setting it up properly will probably be fone for me, mostly I’m glad that it appears to be stable within HA. Simply hate to fix things for no reason…

My T5’s work fine on HA. image

But as you said, the Honeywell API changed. It took HA gurus a day or so to get a fix pushed through. I imagining, if Honeywell is anything like Rinnai, that it takes weeks or months to patch a problem with their app or service!

So, thanks again HA Team!

Cheers,

Ambi

I have a T6r working fine, but if I had to buy t now, I would probably choose another different one. One that could allow me different zones and controlling valves in different rooms. T6 works fine, but it seems quite basic in these cases.

About the HA integration, I configured it once and it’s been working fine. I can control it from Lovelace for usual things, but I don’t know if geofence (for example) can be managed from HA. I just didn’t test it, I don’t use it normally.