Thank you so much! I will do that. You rock!
I am running Hassio 0.52.1 and I have two of these Honeywell t6 pro thermostats:
I am a noob but wannt to get these setup using this method that was created.
- Is there a hassio addon created for this?
- Will these steps created by @Bram_Kragten, work with this setup?
You donāt need an addon, this is just a Home Assistant component.
You can just use the normal setup, create a custom_components
folder in your config directory and follow the steps.
@all
There are no more errors reported, so I guess everything is fine? Will create a PR soon.
Ok thanks Bram, I will tackle it when i get home. Thanks for getting back so fast!
@Bram_Kragten Thanks for the advice. I am really wanting to get this to work.
I created the folders ā\HASSIO\config\custom_componentsā and ā\HASSIO\config\custom_components\climateā
I then followed the instructions Honeywell Lyric Thermostat
Which had links to the two files to put in the newly created folders. Which generated a little confusion as to if I should be using the folder name ācustom_componentsā or ācomponentsā
but I stuck with ācustom_componentsā like you said.
I created the honeywell app with http instead of https and my ip n the link and replaced CLIENT_ID and CLIENT_SECRET with the values generated by the honeywell site.
I get the configurator and get it configured and the āClimateā window pops up with my Two thermostats but then it doesnāt update themā¦ I see the services being calledā¦but it doesnāt ātakeā
I get this error in my logsā¦
2017-08-31 19:24:38 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform lyric
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/homeassistant/config.py", line 273, in load_yaml_config_file
conf_dict = load_yaml(config_path)
File "/usr/lib/python3.6/site-packages/homeassistant/util/yaml.py", line 67, in load_yaml
with open(fname, encoding='utf-8') as conf_file:
FileNotFoundError: [Errno 2] No such file or directory: '/config/custom_components/climate/services.yaml'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity_component.py", line 164, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
File "/usr/lib/python3.6/asyncio/tasks.py", line 352, in wait_for
return fut.result()
File "/usr/lib/python3.6/asyncio/futures.py", line 244, in result
raise self._exception
File "/usr/lib/python3.6/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/climate/lyric.py", line 81, in setup_platform
path.join(path.dirname(__file__), 'services.yaml'))
File "/usr/lib/python3.6/site-packages/homeassistant/config.py", line 276, in load_yaml_config_file
getattr(err, 'filename', err)))
homeassistant.exceptions.HomeAssistantError: Config file not found: /config/custom_components/climate/services.yaml
followed by these errors when I try to change itā¦
2017-08-31 19:30:26 ERROR (SyncWorker_3) [lyric] Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-00D02DC80741?locationId=355799&apikey=4J9PfB1lsUTKUATBvoSX9QYCBLLiktGd with data: {'mode': 'Cool', 'heatSetpoint': 69, 'coolSetpoint': 71.0, 'thermostatSetpointStatus': 'HoldUntil', 'autoChangeoverActive': False}
None
Any ideas? did I download the wrong files? Am I missing a third file? Should I be using a different folder name?
I am new to this and really really appreciate your help.
As the error suggests, you also need to copy services.yaml
file inside custom_components\climate\
. You can find it here.
It looks like I uploaded an old version to PyPI by accidentā¦ I bumped the version now, maybe someone wants to give it one more test?
@arsaboo Thanks for that. I did just download the services.yaml file and place it there as you suggested.
@Bram_Kragten I re-downloaded teh two lyric.py files (is that what you meant?)
I tried it with the service.yaml and new lyric.py files and not I am not able to configure through the Honeywell site. at the last step I get ā500 Internal Server Error Server got itself in troubleā
and in my logs file I get;
2017-09-01 12:59:09 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 422, in start
resp = yield from self._request_handler(request)
File "/usr/lib/python3.6/site-packages/aiohttp/web.py", line 306, in _handle
resp = yield from handler(request)
File "/usr/lib/python3.6/asyncio/coroutines.py", line 213, in coro
res = yield from res
File "/usr/lib/python3.6/asyncio/coroutines.py", line 213, in coro
res = yield from res
File "/usr/lib/python3.6/site-packages/homeassistant/components/http/ban.py", line 58, in ban_middleware_handler
return (yield from handler(request))
File "/usr/lib/python3.6/site-packages/homeassistant/components/http/__init__.py", line 424, in handle
result = yield from result
File "/usr/lib/python3.6/asyncio/coroutines.py", line 210, in coro
res = func(*args, **kw)
File "/config/custom_components/lyric.py", line 208, in get
self.lyric.authorization_code(code=data['code'], state=data['state'])
File "/config/deps/lib/python3.6/site-packages/lyric/__init__.py", line 699, in authorization_code
auth = requests.auth.HTTPBasicAuth(self._client_id, self._client_secret)
NameError: name 'requests' is not defined
Either you you have any ideas what I can try next?
Thanks so much.
You already authenticated right? Did you remove the lyric.conf file?
Anyway, not sure what that error is, have you tried it more than once?
Yes, I did remove the lyric.conf oops
Yes, I did try more than once.
Thank
Never mind, I do know what that error isā¦ Not in a position to fix it right now.
Go to you config/deps folder, go through a couple of subfolders till you find python-lyric or lyric or something and click till you find init.py. Add the following at the top by the other imports:
import requests
like here
Ok, cool.
\HASSIO\config\deps\lib\python3.6\site-packages\lyric/_init_py
line 3 through 11 now reads
import os
import time
import logging
import requests
from requests import HTTPError
from requests.exceptions import RequestException
from requests.compat import json
from requests_oauthlib import OAuth2Session
import urllib.parse
I rebooted and now I can configureā¦ awesome
Worked great for the first 3 changes (I have two thermostats and I changed the first then the second then the first and then the second wouldnāt changeā¦ I did this over about 1 min. now multiple tires to change donāt work. I now see this in my logs.
2017-09-01 13:37:48 ERROR (SyncWorker_19) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.6/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/lyric.py", line 65, in lyric_configuration_callback
setup_lyric(hass, lyric, config) # url=url
File "/config/custom_components/lyric.py", line 104, in setup_lyric
conf.pop(CONF_CLIENT_ID)
KeyError: 'client_id'
and
2017-09-01 13:37:53 ERROR (SyncWorker_5) [lyric] HTTP Error Lyric API: 400 Client Error: User Input Error for url: https://api.honeywell.com/v2/devices/thermostats/LCC-00D02DC6C89B?locationId=355799&apikey=4J9PfB1lsUTKUATBvoSX9QYCBLLiktGd
I was SOOOO excited for a sec. thanks for the help, I have to go (lunch is over) I will try again soon. thanks.
Other info which is probably irrelevant. I had to press the continue button on the configure popup twice for it to workā¦ not sure why. I tried waiting like 20 seconds and then I pressed it again and then the climate adds. This seems to be the case over my multiple configure attempts over the last few days. Like I said probably irrelevant.
The first error may have been me hitting the continue button again in the configuration popupā¦ if so, sorry.
Bram,
Noob question,
when i try to login to authorize it, after setting up using your steps, it wont accept my email and password for some reason which is crazy?
Is it the password i setup on the Developer site or the HA ? That is the one I used.
On the Honeywell website, you need to login with your Honeywell account not the HA password.
You have to login with the account you also use with the app from Lyric
Ok. Will try again
No joy
des': ['Cool', 'Heat', 'Off'], 'thermostatVersion': '02.02.20.00', 'minCoolSetpoint': 40, 'macID': '00D02D51277A', 'indoorTemperature': 80, 'maxHeatSetpoint': 99, 'outdoorTemperature': 79, 'userDefinedDeviceName': 'Lyric', 'name': 'Lyric', 'indoorHumidityStatus': 'Measured', 'maxCoolSetpoint': 99}], 'city': 'Wesley Chapel', 'zipcode': '33543', 'geoFenceEnabled': True, 'name': 'Home'}] 2017-09-03 21:41:59 DEBUG (Thread-2) [custom_components.lyric] proceeding with discovery of platforms 2017-09-03 21:41:59 DEBUG (Thread-2) [custom_components.lyric] setup done of component 2017-09-03 21:42:03 DEBUG (Thread-7) [custom_components.climate.lyric] climate discovery_info: OrderedDict([('scan_interval', 270), ('fan', False)]) 2017-09-03 21:42:03 DEBUG (Thread-7) [custom_components.climate.lyric] climate config: {} 2017-09-03 21:42:03 DEBUG (Thread-7) [custom_components.climate.lyric] Set up Lyric climate platform 2017-09-03 21:42:03 DEBUG (Thread-7) [custom_components.climate.lyric] away periods: [] 2017-09-03 21:42:03 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 322, in update self._scheduleSubType = self.device.scheduleSubType File "/home/hass/hassvenv/lib/python3.5/site-packages/lyric/__init__.py", line 568, in scheduleSubType return self.device.get('scheduleType').get('scheduleSubType') AttributeError: 'NoneType' object has no attribute 'get'