Honeywell Lyric Thermostat

As this is super fiddly, all I can suggest is check, check and check again the files you created. I am fyi using the t6r hw unit and it’s working great! Anyone want to buy a nest? :smiley:

Thanks, @uiguy. I got it working with a combination of what I had, your guidance, and the files recommended by @Bram_Kragten here: Honeywell Lyric Thermostat

Since it works, I’m rolling with it. You’re right, of course, implementation of this is hampered by the competing efforts to get something that works reliably.

Before i make another attempt, is this integration better than the homekit lyric setup?

thanks for the other info as well.

nevermind, now I realize that the homekit version isnt working-- i forgot because i setup the generic thermostat which looks the same.

last edit: Well that was easy enough. left the homekit integration setup this time. and added those files and all is working. thanks

1 Like

well i thought I had it setup right it worked once or twice, or maybe my thermostat just came on at the right time. Now I guess its still not right… anyway you can guide me @tarheelz ?

thanks

okay finally…

Here is how I did it:

Delete all your prior attempts… folders everything related to lyric.

setup the developers app on the Honeywell site as before. I have http://192.168.1.44:8123 set as the ip. my base_url is exactly the same.

copy the raw files exactly as mentioned from here: https://github.com/home-assistant/core/tree/92082b687a46c17a9a94a598b245728a8832b179/homeassistant/components/lyric

I reset my t5 and cleared the homekit stuff: hold down menu till the config options come up, go to reset -> homekit (not sure if this is needed, but i made sure to start fresh)

restart HA… profit.

and yes. its better, then the homekit version

EDIT:: Jan - 2021 The homekit version is much better now. Dont bother with this setup.

1 Like

Don’t get too used to it. API approach just quit on me. It was a good four days.

 HTTP Error Lyric API: 401 Client Error: Unauthorized for url: https://api.honeywell.com/v2/locations?apikey=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
HTTP Error Lyric API: 400 Client Error: Bad Request for url: https://api.honeywell.com/v2/locations?apikey=XXXXXXXXXXXXXXXXXXXXXXXXXXXX

getting the same. still seems to be working

Yeah I see these messages fairly often since I started using the plugin, but doesn’t seem to affect actual operation of the T-stat.

Thermostat entities (Upstairs and Downstairs) now both report as “Unavailable.” There is a report of “Restored: true” but no current information is exposed. I’ve reinstalled a couple of times but result is always the same. Might go back to homekit for awhile.

Anyone seeing this? Gosh. I had this working…

restored: true
hvac_modes:
  - 'off'
  - heat
  - cool
  - heat_cool
max_temp: 90
min_temp: 50
preset_modes:
  - NoHold
  - TemporaryHold
  - PermanentHold
  - VacationHold
supported_features: 17
friendly_name: Downstairs

Seems to go with this log ERROR:

Log Details (ERROR)
Logger: homeassistant.components.climate
Source: custom_components/lyric/climate.py:161
Integration: Climate (documentation, issues)
First occurred: 8:36:03 PM (1 occurrences)
Last logged: 8:36:03 PM

Error while setting up lyric platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 186, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 295, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 447, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 320, in _async_write_ha_state
    state = self.state
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 165, in state
    return self.hvac_mode
  File "/config/custom_components/lyric/climate.py", line 161, in hvac_mode
    return HVAC_MODES[self._mode]
KeyError: 'AUTO'

hmm still working for me.

I have an unavailable. but its been that way since I installed it:

yikes. screenshot is horrible. Why so compressed?
click download if its not clear enough to see.

Is there anyway to add the Fan states to this component ?

I would like to be able to change to Circulate, and Auto with HA.

I can’t control it at all with services, nor does it report any fan state.

However, the app shows it, and smartthings on my phone also has the fan state, so somehow its being reported…

Screenshot_20200418_230419

Smartthings:

I think the authentication issue is now fixed in my custom_component version if someone wants to validate. I tried to get my lyric component into home assistant, but it appears that their API is constantly changing, and their developer instructions are not very good at communicating what is required, in my opinion. At this point, I have zero interest in reworking everything yet again, to make my code use their newest whatever, especially since it is far cleaner than some already existing modules. If someone else wants to drive this, by all means, take a look or fork. I’m done. My code works and it works well enough for me.

1 Like

@shellster has clearly done some good work here building upon what others have done.

Here’s the repository he (she?) has left us: https://github.com/shellster/lyric
It installs without a problem via HACS.

I was able to get smoothly through Authorization, making it to the message:

{"message": "OK! All good. Got the response! You can close this window now, and click << Continue >> in the configurator."}

Unfortunately, returning back to HA and clicking “Continue…” gives “Failed to configure, please try again.” :frowning:

Oh well.

I am quite nervous typing this due to the invisible virtual api that breaks everything as soon as you say that it is all working fine, but here goes… mine still fine and working like a charm…

i have dabbled with coding since 1999 starting with visual basic building stupid aol chat bots and mass mailers, everytime a major change took place it always pissed me off, spent hours fiiguring out the window api and then bam… complete new version would come out and ruin everything. Throughtout the years i learned some html, and then i started writing scripts for mirc, and ahem. windows rootkits. every. single time. i got something big happening, it would all come crashing down with a major version change.
very discoraging, even if i was ‘up to no good’ lol.

anyway i dont know why Im telling you this, other than. im pretty much done learning new coding. i just cant anymore. yaml is the pain in my ass, none of it makes since to me. python makes more sense i just can’t be bothered to figure it all out these days. anyway. thanks for what you’ve done. Im pretty sure on my searches that lead me here I came across your PR for this, if im not mistaken it was shot down because someone elses was ‘further along’… maybe im mistaken, since a lot of people have attempted this compnant anyway again, thanks for posting., i book maarked it, incase what i have stops working.

I admit that it’s been a frustrating component, not sure why it can’t become more integrated with HA without the constant changes being needed…Honeywell sells a ton of these thermostats.

Although, personally I’d rather avoid cloud based options, so tried Homekit component with my T5 which works great with everything except being able to change the temperature :roll_eyes:…the latter pretty much defeats the whole purpose of a smart thermostat and makes the Homekit component useless to me!

I have a feeling at some point people will get tired of trying to fix this component, at which case I will have to look at a generic z-wave t-stat.

2 Likes

annnnd. its broken

Apr 22 22:45:39 server hass[28430]: 2020-04-22 22:45:39 DEBUG (MainThread) [custom_components.lyric.climate] Set temperature: 79.0
Apr 22 22:45:40 server hass[28430]: 2020-04-22 22:45:40 ERROR (MainThread) [lyric] HTTP Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-Bxxxxxx?locationId=xxx&apikey=xxxxx
Apr 22 22:45:42 server hass[28430]: 2020-04-22 22:45:42 DEBUG (MainThread) [custom_components.lyric.climate] Set hvac mode: off
Apr 22 22:45:42 server hass[28430]: 2020-04-22 22:45:42 ERROR (MainThread) [lyric] HTTP Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-Bxxxxxx?locationId=xxx&apikey=xxxxxx

edit: hmm possibly related to 108.8 as I updated today, and it broke lyric.

went back to 108.6 working again. I did reinstall it all just fine, and changed my tokens on the honeywell site. which didnt change anything in 108.8 but working again in 108.6.

This lyric shit is weird.

edit2: Nevermind, it stopped working again after 30 minutes. – didnt change anything.

This is a problem with Honeywell not the component. If you go here I can’t even get oauth to work without getting “Error: access_token negotiation failure”
https://developer.honeywellhome.com/lyric/apis/get/locations

I think Honeywell’s API in general isn’t great, but while I’m getting the same “HTTP Error Lyric API: 401 Client Error: Unauthorized for url: https://api.honeywell.com/v2/locations…” in HA the component still seems to work with changing temp and status.

UPDATE: After a few tries I was able to get oauth to authenticate on the developer.honeywell.com link I posted above, but I still think Honeywell’s API in general is foo.

1 Like

im seeing something else.

on the more info screen under presets if it says just ‘preset’ with nothing selected, go to states and it will have ‘hold until’… which scanning the code isn’t valid I dont think.

when it is in this mode it will error … if i change the state using the drop down to ‘nohold’ or temp hold. it will work… few minutes later ill come back and it will be at hold untill again, anbd the dropdown wont be selected… and hence it doesnt work again… gonna debug that more in a few hours.

oauth is working fine for me