Honeywell Lyric Thermostat

Thanks for the answers! 5 minutes should be enough for now. I have similar issues with z-wave locks, so it’s nothing new to deal with.

Oke,for some weird reason. its working now. Haven’t changed a thing. But thanks for the support and the active development of this component!

Hi, also have this working know with my brand new Lyric T6. Few Q’s

I always rely on the schedule of the thermostat. This works generally better then automating all schedules in HASS. I only use heating automations for when I leave/come home (prefer to use my automations for home/not home as they are much more precise then the thermostat) and for vacation. What are the best services to call in your opinion?

p.s. Is there anyone with an OpenTherm Gateway (OTG) in between the Lyric and their heating? If yes, what are you experiences?

Ok. I have a Lyric T5. Running HassIO v0.60.1

I have created /config/custom_components and placed lyric.py in there and lyric.py and services.yaml in /climate.

I’ve added to my confguration.yaml:

lyric:
  client_id: XXXXXXXXXX
  client_secret: XXXXXXXXXXX

When I restart HassIO, I get the card with instructions what to do next. I click the link and get an error - it seems to have used my local IP in the url params rather than the domain name. I modify the url, replacing local ip with domain name. I get to the Honeywell site, log in, select my T5, click connect, but then I get a “500 Internal Server Error - server got itself in trouble”

That’s when its trying to do something local again:

https://<localIP>:8123/api/lyric/authenticate?code=XXXXXX&scope=&state=XXXXXXXX

Any ideas?

====

Update:

I logged into HoneyWell dev and changed the callback URL to my local IP and it is working now.

@arsaboo Thanks for this. What is a hold mode for you? Terminology around this is overall a bit confusing for me. I’m looking for two things to automate via HASS:

  1. I’m at home, heating is on, I leave (using the HASS logic I have for home/away); Thermostat goes down to x and stays there until next scheduled setpoint (independent if home or not). When returning home before next scheduled setpoint it should resume the point before I left.

  2. When house empty for a few days (eg holiday) I tell HASS I’m on holiday (specials automations run simulating I’m home etc). From that point on I want the heat to be constant at X until I switch my holiday automation off (eg in the car back home).

I guess these two scenario’s call for different services to use. Can you shed some light on what to use when?

p.s. I use the thermostats schedule

That is exactly what the automation is trying to do. When I leave home, I set Lyric to the away temperature (determined by lyric_hold_on, depending on the season) using PermanentHold. I turn the PermanentHold mode off when I return home so that Lyric can resume the schedule.

Currently, I am distinguishing between going out for a small duration or vacation mode as the logic is the same for both cases. Hope that helps.

I did not have to change anything else.

@Bram_Kragten Just updated to 0.61 and seeing these in the logs and resume service does not work:

Mon Jan 15 2018 10:47:20 GMT-0500 (Eastern Standard Time)

Error while setting up platform lyric
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity_component.py", line 171, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
  File "/usr/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/usr/lib/python3.6/asyncio/futures.py", line 245, in result
    raise self._exception
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassistant/.homeassistant/custom_components/climate/lyric.py", line 92, in setup_platform
    schema=RESUME_PROGRAM_SCHEMA)
TypeError: register() got multiple values for argument 'schema'

With help from @amelchio, I was able to fix the errors. Just use the updated lyric.py until @Bram_Kragten has a chance to update his code.

@Bram_Kragten I am not sure how to submit a PR to your repo (my git skills are nothing to brag about), hence posting the link. I will remove it after you have had a chance to update the code. Thanks again for all your work.

1 Like

I tried the new lyric.py but still don’t see my thermostat in the dashboard. I am including my home-assistant log. Like I said earlier every time I do a update something breaks.
2018-01-18 08:22:12 DEBUG (Thread-22) [homeassistant.components.lyric] no access_token, requesting configuration
2018-01-18 08:22:56 DEBUG (Thread-7) [homeassistant.components.lyric] configurator callback
2018-01-18 08:22:56 DEBUG (Thread-7) [homeassistant.components.lyric] configuration done
2018-01-18 08:22:57 DEBUG (Thread-7) [homeassistant.components.lyric] proceeding with setup
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=******************************
2018-01-18 08:22:57 ERROR (Thread-7) [homeassistant.components.lyric] No locations found.
2018-01-18 08:22:58 ERROR (Thread-7) [lyric] HTTP Error Lyric API: 500 Server Error: Internal Server Error for url: https://api.honeywell.com/v2/locations?apikey=******************************
2018-01-18 08:22:58 DEBUG (Thread-7) [homeassistant.components.lyric] None
2018-01-18 08:22:58 DEBUG (Thread-7) [homeassistant.components.lyric] proceeding with discovery of platforms
2018-01-18 08:22:58 DEBUG (Thread-7) [homeassistant.components.lyric] setup done of component
2018-01-18 08:22:58 DEBUG (Thread-2) [homeassistant.components.climate.lyric] climate discovery_info: OrderedDict([(‘fan’, False), (‘scan_interval’, 270)])
2018-01-18 08:22:58 DEBUG (Thread-2) [homeassistant.components.climate.lyric] climate config: {}
2018-01-18 08:22:58 DEBUG (Thread-2) [homeassistant.components.climate.lyric] Set up Lyric climate platform
2018-01-18 08:22:58 ERROR (Thread-2) [lyric] HTTP Error Lyric API: 500 Server Error: Internal Server Error for url: https://api.honeywell.com/v2/locations?apikey=******************************
2018-01-18 08:22:58 ERROR (Thread-2) [homeassistant.components.lyric] Connection error logging into the Lyric web service.

Even more confused!! I have changed back the lyric to the original and then moved my HA back to version 0,60,0 and them back to 0.59.0 and I am still not seeing my thermostat on the dashboard.

Yeah…the error does not look related to the update.

Some more info and still confused!! The first step: I loaded a old, everything working, Raspbian Jessie Micro SD backup HA versions 0.58.1 onto another PI and still No Honeywell T5 thermostat on my HA desktop.
The next step: I went to https://developer.honeywell.com/ and deleted my old API and established a new one. I reestablished the authorization in HA and everything connected correctly. Same problem not able to see my thermostat on my HA desktop. Am I the only one having this problem?

Are you sure you added it to a group to be visible inside HA? Check your states tab to see if you have the lyric climate entity?

I seem to have a new ish error. When I restart HA, I get the successful json setup but when I try changing the temperature, I get
[lyric] HTTP Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-00D02DB689C3?locationId=xxxx&apikey=hjsdjhsdhjsjhhjjhhhjj
The api key is wrong. What shows is just the client_id so perhaps that helps???

There is nothing in the state like there used to be climate.****_thermostat.

The error seems to be here but not sure what it means, I don’t code.
File “/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/homeassistant/components/climate/lyric.py”, line 92, in setup_platform
schema=RESUME_PROGRAM_SCHEMA)
TypeError: register() got multiple values for argument ‘schema’

That is the same error that I fixed earlier (scroll up a few posts).

Same problem, tried that and replied right after your message. I give up.

@dhaker I was having the same issue, remove the “____init___.py” file from the “custom_components/climate” directory. There should only be the updated “lyric.py” and “services.yaml” file - and maybe a cache file.

What I can’t figure out is how to see climate.* values, they don’t show up in my states. There is some data that gets returned that would be good have, like the current temperature, geolocation states of users from lyric, etc.