Closed
Description
Home Assistant release (hass --version
):
0.58.1
Python release (python3 --version
):
3.6
Component/platform:
ecobee
Description of problem:
I got the following stack trace in my logs. I believe this may be due to losing internet connection during this time:
I guess the update function should either be wrapped in a try call here, or better protected inside the homeassistant library.
Traceback (if applicable):
2017-11-30 15:15:39 ERROR (MainThread) [homeassistant.helpers.entity] Update for binary_sensor.my_ecobee3_occupancy fails
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
conn.connect()
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connection.py", line 346, in connect
_match_hostname(cert, self.assert_hostname or hostname)
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connection.py", line 356, in _match_hostname
match_hostname(cert, asserted_hostname)
File "/opt/python-3.6.3/lib/python3.6/ssl.py", line 327, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError: hostname 'api.ecobee.com' doesn't match either of 'www.ecobee.com', 'ecobee.com'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "/srv/homeassistant/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.ecobee.com', port=443): Max retries exceeded with url: /1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22includeRuntime%22%3A%22true%22%2C%22includeSensors%22%3A%22true%22%2C%22includeProgram%22%3A%22true%22%2C%22includeEquipmentStatus%22%3A%22true%22%2C%22includeEvents%22%3A%22true%22%2C%22includeWeather%22%3A%22true%22%2C%22includeSettings%22%3A%22true%22%7D%7D (Caused by SSLError(CertificateError("hostname 'api.ecobee.com' doesn't match either of 'www.ecobee.com', 'ecobee.com'",),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
yield from self.async_device_update()
File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 309, in async_device_update
yield from self.hass.async_add_job(self.update)
File "/opt/python-3.6.3/lib/python3.6/asyncio/futures.py", line 332, in __iter__
yield self # This tells Task to wait for completion.
File "/opt/python-3.6.3/lib/python3.6/asyncio/tasks.py", line 250, in _wakeup
future.result()
File "/opt/python-3.6.3/lib/python3.6/asyncio/futures.py", line 245, in result
raise self._exception
File "/opt/python-3.6.3/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/binary_sensor/ecobee.py", line 66, in update
data.update()
File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/util/__init__.py", line 306, in wrapper
result = method(*args, **kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/ecobee.py", line 97, in update
self.ecobee.update()
File "/srv/homeassistant/lib/python3.6/site-packages/pyecobee/__init__.py", line 169, in update
self.get_thermostats()
File "/srv/homeassistant/lib/python3.6/site-packages/pyecobee/__init__.py", line 133, in get_thermostats
request = requests.get(url, headers=header, params=params)
File "/srv/homeassistant/lib/python3.6/site-packages/requests/api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/srv/homeassistant/lib/python3.6/site-packages/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.ecobee.com', port=443): Max retries exceeded with url: /1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22includeRuntime%22%3A%22true%22%2C%22includeSensors%22%3A%22true%22%2C%22includeProgram%22%3A%22true%22%2C%22includeEquipmentStatus%22%3A%22true%22%2C%22includeEvents%22%3A%22true%22%2C%22includeWeather%22%3A%22true%22%2C%22includeSettings%22%3A%22true%22%7D%7D (Caused by SSLError(CertificateError("hostname 'api.ecobee.com' doesn't match either of 'www.ecobee.com', 'ecobee.com'",),))
Metadata
Metadata
Assignees
Labels
No labels