Honeywell Lyric Thermostat

I’m curious about the status of this integration. I have it installed, authorized and (mostly) working great. The component successfully GET’s the sensor information as well as the hvac mode and set temperature. However all POST requests error out. The logs seem to suggest that python-lyric could be at fault for a bad request. My hunch is that there is a required parameter missing from the POST. Can you offer any insight?

have you tried the homekit method?

Has anyone been able to resolve this? I’m getting 100’s of errors in a day’s time.

Logger: lyric
Source: /usr/local/lib/python3.8/site-packages/lyric/__init__.py:758
First occurred: 1:39:18 PM (1 occurrences)
Last logged: 1:39:18 PM
    HTTP Error Lyric API: 401 Client Error: Unauthorized for url: https://api.honeywell.com/v2/locations?apikey=[REDACTED]
Logger: homeassistant.util.async_
Source: util/async_.py:105
First occurred: 12:45:13 PM (31 occurrences)
Last logged: 2:38:25 PM

    Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for lyric doing I/O at custom_components/lyric/__init__.py, line 92: if not lyric.locations:
    Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for lyric doing I/O at custom_components/lyric/sensor.py, line 122: state = getattr(self.device, self.key)
    Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for lyric doing I/O at custom_components/lyric/climate.py, line 241: self._humidity = self.device.indoorHumidity

I don’t know why so many are against using homekit, it works, it’s local, doesn’t use the cloud and no you don’t need to have an Apple hub. Which I initially thought was required, but homekit is just the communications protocol. I have a T5 so maybe other models don’t work with homekit?

Since switching in July haven’t had a single issue with controlling the thermostat.

Ironically I did setup Honeywell cloud up with google assistant to also control my heat…can’t tell you how many times Google Assistant has told me “Sorry but I was unable to reach Honeywell services right now please try again later”

2 Likes

@uiguy @ski522 I have not tried the homekit controller because in addition to the T5 I have 4 D6 Pro thermostats that I had been controlling with the custom_component. I would be open to trying the homekit version but I don’t have an apple device and presume that I would need one to get the D6’s connected.

No Apple device is needed, Homekit is a protocol that is used by HA. Not sure if the D6 supports homekit protocol, but be surprised if it didn’t.

My understanding is that some devices (those which require an app to connect to the network) do require an apple device. The D6 does not have any sort of menu and the connection is handled through the honeywell (and maybe? the homekit) app. If I am incorrect, I would welcome any resources you could point me to.

I quickly looked up the manual for the D6, I think you’re correct and that there is no way to locally reset homekit, so in this case you probably do need the cloud version of this integration. I know with my T5 once I reset Homekit via the onscreen menu, HA then found it and I was able to add it as a locally managed device in HA.

Homekit doesnt support honeywell T9/10

EDIT pls see: Honeywell Lyric Thermostat

Thanks for the sanity check. That’s what I was afraid of.

Are you using a T 9/10 well I noticed on the honeywell page smart things supports t9/10. It works, I have all sensor data. A thermostat card didn’t populate in lovelace, I’ll try tomorrow.

So download the smartthings app on your phone. Setup an account --> add (+) on the front page–>device–>browse by brand, honeywell non tcc version. follow thermostat setup.

In HA integrations smartthings follow setup in description. You should see the thermostat listed as one of your devices then restart HA.

Take out all the lyric stuff first and restart before. idk if it’s necessary but I did.

If you use @timmo001 release here: https://github.com/home-assistant/core/pull/39695, you will no longer receive that error. Still awaiting review…there’s apparently a lot to review in the queue.

Has anyone installed the timmo001 update as a custom component?

I’m assuming I need to copy the updated files from the PR into custom_components/lyric. Do I also need a manifest that will pull in the new dependency of aiolyric?

As a matter of fact I just did. I copied the translations folder, init.py, api.py, climate.py, config_flow.py, const.py, manifest.json, services.yaml, and strings.json to a lyric folder within the custom_components folder.

The component installed just fine and is making requests to the Honeywell API, however when I try to change the temperature or mode, the API is returning a 400 error saying “Device not Found”.

I’m currently trying to decipher the problem. When I use the same POST parameters from the log on the Honeywell developer site, it works, so it’s probably something stupid on my end.

I’m getting the same error. However I can’t even get it to install. When I first go to authenticate it switches my outside address to my inside address eg 192.168.x.xxx. I’m guessing you never uninstalled so the app was already authenticated.

Maybe it’s in the coding or there is something else that needs to configured. I tried setting my external address as the internal. Manually in the config and through the gui but it still changes the api call to 192.168.x.xxx. I don’t know where it’s getting the internal address from.

Smartthings was a bust by the way.

edit add api call

https://api.honeywell.com/oauth2/authorize?response_type=code&client_id=[redacted]&redirect_uri=https://192.168.1.151:8123/auth/external/callback&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmbG93X2lkIjoiYzBiYjk1NjY1YjA5NDkzZTk4NjMzYzdlODIwODk5N2QifQ.fK-UtQZLLcRYz8vK-amIhSAtoDgHl7Yjj7brNmGzTy8

If you make this the callback URL setting for your app on the Honeywell developer’s site you should be able to authenticate.

I did that and it does authenticate but then it throws another error. I put @jasondefuria version of lyric back and the authentication works fine. It calls my duckdns address. Then if I swap folders to the new lyric it breaks.

@timmo001 is there a setting, so that lyric-2 calls my external ip rather than the internal?

Are you setting your internal and external URL’s in the GUI or configuration.yaml?

I tried both ways in the config and gui with both the external and internal set to my duckdns address. Also if I do nothing but swap lyric folders the old version calls the external address while the new version uses the internal.

Have you got your 400 error resolved? I believe this is related to the same problem .

I haven’t yet and it may well be. I’ll let you know if I make any progress