A little more detail, tonight Iāve been futzing with the envoy component. I noticed that all my enphase envoy entities were still blank. I looked in the developer options to see what errors/warnings were displayed and I found this:
Tue Aug 13 2019 21:11:35 GMT-0600 (Mountain Daylight Time)
Update for sensor.envoy_current_energy_production fails
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/requests_async/adapters.py", line 55, in send
timeout=timeout,
File "/usr/local/lib/python3.7/site-packages/http3/interfaces.py", line 49, in request
return await self.send(request, verify=verify, cert=cert, timeout=timeout)
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/connection_pool.py", line 130, in send
raise exc
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/connection_pool.py", line 121, in send
request, verify=verify, cert=cert, timeout=timeout
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/connection.py", line 59, in send
response = await self.h11_connection.send(request, timeout=timeout)
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/http11.py", line 58, in send
http_version, status_code, headers = await self._receive_response(timeout)
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/http11.py", line 130, in _receive_response
event = await self._receive_event(timeout)
File "/usr/local/lib/python3.7/site-packages/http3/dispatch/http11.py", line 165, in _receive_event
self.READ_NUM_BYTES, timeout, flag=self.timeout_flag
File "/usr/local/lib/python3.7/site-packages/http3/concurrency.py", line 107, in read
raise ReadTimeout() from None
http3.exceptions.ReadTimeout
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 249, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 417, in async_device_update
await self.async_update()
File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/sensor.py", line 118, in async_update
_state = await getattr(EnvoyReader(self._ip_address), self._type)()
File "/usr/local/lib/python3.7/site-packages/envoy_reader/envoy_reader.py", line 111, in production
await self.detect_model()
File "/usr/local/lib/python3.7/site-packages/envoy_reader/envoy_reader.py", line 42, in detect_model
self.endpoint_url, timeout=30, allow_redirects=False)
File "/usr/local/lib/python3.7/site-packages/requests_async/api.py", line 11, in get
return await request("get", url, params=params, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests_async/api.py", line 6, in request
return await session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests_async/sessions.py", line 79, in request
resp = await self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/site-packages/requests_async/sessions.py", line 136, in send
r = await adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests_async/adapters.py", line 62, in send
raise ReadTimeout(err, request=request)
requests.exceptions.ReadTimeout
I tried to pull up the api using the URL: http://<envoy_ip_address>/api/v1/production
and it timed out.
Interesting. I pulled up the Enphase Enlighten app and it was still receiving data, it has all day. I could ping the IP locally but I couldnāt pull up the management webpage nor the api details. I went out and flipped the breaker to turn the Envoy off, and flipped it back on. I gave it a minute to boot and everything was right in the world again ā all my home assistant values trickled in from the Envoy and I could access the management and API pages.
Now Iām starting to think that the Envoy thing got in some weird state (at 4am the other day) and this caused Home Assistant to freak out and lock up. I know the component was broken in 0.96.5 so it makes sense that downgrading would clear up the problem. Instead of HA just timing out and reporting an error when trying to access the API it froze.