Honeywell Lyric Thermostat

I finally got into the authorizationa nd clicked on my device to allow, and got this error below.

image

Any reason why this came up?

Update to the latest version please.

Srrry Bram, Kind of new to this at this point, latest version of what may i ask?

Of the component, take the most recent version of the lyric.py files and replace the files in custom_components

I updated to the latest (which pulls 1.1.3) and get the error below. vacationHold is not an attribute in my xml blob from Honeywell. Simply commenting out line 324 in climate/lyric.py seems to make it work again. Almost every attribute you pull from the blob has to be assumed to be merely optional. The blob can and will change at any time, plus different Lyric versions receive different blobs, best to handle missing attributes with exceptions rather than bombing out.

': {'air': True, 'feelsLike': True}}, 'units': 'Fahrenheit', 'macID': '00D02D51277A', 'smartAway': {'active': False, 'durationInHours': 2, 'lastUsedFormat': 'TimeOfDay', 'timeOfDay': '00:00:00', 'endsIn': '2000-01-01T00:00:00-05:00', 'durationInDays': 0}, 'isUpgrading': False, 'deviceID': 'TCC-919266', 'minHeatSetpoint': 40}], 'timeZone': 'Eastern Standard Time', 'locationID': 221026}]
2017-09-04 07:31:12 DEBUG (Thread-11) [custom_components.lyric] proceeding with discovery of platforms
2017-09-04 07:31:12 DEBUG (Thread-11) [custom_components.lyric] setup done of component
2017-09-04 07:31:15 DEBUG (Thread-7) [custom_components.climate.lyric] climate discovery_info: OrderedDict([('scan_interval', 270), ('fan', False)])
2017-09-04 07:31:15 DEBUG (Thread-7) [custom_components.climate.lyric] climate config: {}
2017-09-04 07:31:15 DEBUG (Thread-7) [custom_components.climate.lyric] Set up Lyric climate platform
2017-09-04 07:31:15 DEBUG (Thread-7) [custom_components.climate.lyric] away periods: []
2017-09-04 07:31:15 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.5/asyncio/tasks.py", line 241, in _step
    result = coro.throw(exc)
  File "/home/hass/hassvenv/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 381, in async_process_entity
    new_entity, self, update_before_add=update_before_add
  File "/home/hass/hassvenv/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 212, in async_add_entity
    yield from self.hass.async_add_job(entity.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 361, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 274, 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/hass/.homeassistant/custom_components/climate/lyric.py", line 324, in update
    self._vacationHold = self.device.vacationHold
  File "/home/hass/hassvenv/lib/python3.5/site-packages/lyric/__init__.py", line 341, in vacationHold
    return self.device.get('vacationHold').get('enabled')
AttributeError: 'NoneType' object has no attribute 'get'

First, you might want to try to post the entire JSON string for once.
Second, I do check most attributes for availability, but this one has slipped through, thatā€™s why we are testing here.

Fixed now.

I wonā€™t publicly post the full JSON because it has personal info in it, but Iā€™ll PM you the latest one again (once I have oneā€¦)

1.1.4 isnā€™t posted yet

INFO:homeassistant.util.package:Attempting install of python-lyric==1.1.4
ERROR:homeassistant.util.package:Unable to install package python-lyric==1.1.4: Could not find a version that satisfies the requirement python-lyric==1.1.4 (from versions: 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3)
No matching distribution found for python-lyric==1.1.4
ERROR:homeassistant.setup:Not initializing lyric because could not install dependency python-lyric==1.1.4
ERROR:homeassistant.setup:Setup failed for lyric: Could not install all requirements.

It isā€¦ https://pypi.python.org/pypi/python-lyric/1.1.4

1.1.4 pulls now. I had deleted lyric.conf and now the auth dialog is broken. After clicking Continueā€¦ the box fails to clear and this pops up in the log. I did get the JSON blob at least so Iā€™ll PM you that.

Edit: I did update to Hass 0.52.1 this morning, FYI
Edit2: it did write lyric.conf so restarting Hass at least makes it work again.

ERROR:homeassistant.core:Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/hass/.homeassistant/custom_components/lyric.py", line 65, in lyric_configuration_callback
    setup_lyric(hass, lyric, config)  # url=url
  File "/home/hass/.homeassistant/custom_components/lyric.py", line 96, in setup_lyric
    configurator.request_done(_CONFIGURING.pop('lyric'))
TypeError: request_done() missing 1 required positional argument: 'request_id'

I intermittently am still receiving a 400 error when attempting to adjust the temperature. I will clear my logs and attach the entire string next time it happens. But for now, here is what I am seeing.

Edit* If I wait 10 minutes and try again, it works fine.

2017-09-06 22:31:27 DEBUG (Thread-9) [custom_components.climate.lyric] Lyric set_temperature-output-value=72.0
2017-09-06 22:48:12 DEBUG (Thread-4) [custom_components.climate.lyric] Lyric set_temperature-output-value=74.0
2017-09-06 22:48:13 ERROR (Thread-4) [lyric] HTTP Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-00D02DBE736B?locationId=273900&apikey=hrjN4OEtpILLscAS7dpcQ4sUUiX0nqcv

@Bram_Kragten Any update on this? Do you plan to submit the PR in the near futureā€¦looks like folks are getting impatient :wink:

Yeah, very busy at the moment, but do plan to submit it in the near futureā€¦

Hey @Bram_Kragten. I have four Lyric freeze detectors that I got as part of a pilot program. Just let me know what you need me to do to help.

Sending me one would be the easiest :stuck_out_tongue_winking_eye:
I will finish the integration as I think it should work, and then you can test it.

I havenā€™t started on the hass component for that, it is in the python-lyric package. Should be easy to make.

Roger that. Just let me know.

Can I get a quick help? I canā€™t get the component to work, because of the python-lyric dependency.

17-09-21 09:23:13 ERROR (MainThread) [homeassistant.setup] Not initializing lyric because could not install dependency python-lyric==1.1.3                                                                     
17-09-21 09:23:13 ERROR (MainThread) [homeassistant.setup] Setup failed for lyric: Could not install all requirements.

But I do have the current version (1.1.4) installed.

pi@hassbian:~/config $ pip3 show python-lyric
---
Name: python-lyric
Version: 1.1.4
Location: /usr/local/lib/python3.4/dist-packages
Requires: requests, requests-oauthlib

Any idea?

You should update the python files as well.

Which files do you mean? the lyric.py files? I just copied them from your repo today, i should have the newest ones.

edit:
I re-copied both lyric.py files into the custom_components folder. The error message persists, but has a new line:

2017-09-21 10:41:49 ERROR (Thread-8) [homeassistant.util.package] Unable to install package python-lyric==1.1.3: Could not find a version that satisfies the requirement python-lyric==1.1.3 (from versions: 1.1.4)No matching distribution found for python-lyric==1.1.3
2017-09-21 10:41:49 ERROR (MainThread) [homeassistant.setup] Not initializing lyric because could not install dependency python-lyric==1.1.3
2017-09-21 10:41:49 ERROR (MainThread) [homeassistant.setup] Setup failed for lyric: Could not install all 

requirements.

edit2:
Well, my mistake. It appears, I did not copy the correct files to my custom_components folder. It seems to be working now.
In any case, thank you @Bram_Kragten for this component and the time you have invested!

Great! :slight_smile:

@Bram_Kragten

I actually just got another T6 Pro and set it up on my network. WHat do i need to do to add this second one for upstairs? THanks in advance.