core: Enphase envoy integration still not working with HA 2021.12.0 Non Beta
The problem
I am getting “failed to connect” from home assistant when trying to login with envoy and the last 6 digits of my serial number.
This is what the login page looks like now from the envoy itself browsing the local IP which also redirects to HTTPS which is a new feature as well. Logging in with my enphase account works here but not through HA. The envoy firmware is Software Version
D7.0.66 (ddd0d7). Please let me know if there is any details I can provide.
What version of Home Assistant Core has the issue?
core-2021.12.0
What was the last working version of Home Assistant Core?
NA
What type of installation are you running?
Home Assistant Supervised
Integration causing the issue
Enphase Envoy
Link to integration documentation on our website
https://www.home-assistant.io/integrations/enphase_envoy/
Example YAML snippet
No response
Anything in the logs that might be useful for us?
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)
2021-12-11 20:32:17 ERROR (MainThread) [homeassistant.components.enphase_envoy.config_flow] Unexpected exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/config_flow.py", line 168, in async_step_user
envoy_reader = await validate_input(self.hass, user_input)
File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/config_flow.py", line 46, in validate_input
await envoy_reader.getData()
File "/usr/local/lib/python3.9/site-packages/envoy_reader/envoy_reader.py", line 136, in getData
await self.detect_model()
File "/usr/local/lib/python3.9/site-packages/envoy_reader/envoy_reader.py", line 166, in detect_model
await self.get_serial_number()
File "/usr/local/lib/python3.9/site-packages/envoy_reader/envoy_reader.py", line 218, in get_serial_number
full_serial = await self.get_full_serial_number()
File "/usr/local/lib/python3.9/site-packages/envoy_reader/envoy_reader.py", line 228, in get_full_serial_number
response = await self._async_fetch_with_retry(
File "/usr/local/lib/python3.9/site-packages/envoy_reader/envoy_reader.py", line 128, in _async_fetch_with_retry
return await client.get(url, timeout=30, **kwargs)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1736, in get
return await self.request(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1513, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1600, in send
response = await self._send_handling_auth(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1628, in _send_handling_auth
response = await self._send_handling_redirects(
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1665, in _send_handling_redirects
response = await self._send_single_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1702, in _send_single_request
response = await transport.handle_async_request(request)
File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 291, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 248, in handle_async_request
raise exc
File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 232, in handle_async_request
response = await connection.handle_async_request(request)
File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
raise exc
File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection.py", line 67, in handle_async_request
stream = await self._connect(request)
File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection.py", line 146, in _connect
stream = await stream.start_tls(**kwargs)
File "/usr/local/lib/python3.9/site-packages/httpcore/backends/asyncio.py", line 62, in start_tls
ssl_stream = await anyio.streams.tls.TLSStream.wrap(
File "/usr/local/lib/python3.9/site-packages/anyio/streams/tls.py", line 94, in wrap
await wrapper._call_sslobject_method(ssl_object.do_handshake)
File "/usr/local/lib/python3.9/site-packages/anyio/streams/tls.py", line 102, in _call_sslobject_method
result = func(*args)
File "/usr/local/lib/python3.9/ssl.py", line 944, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)
Additional information
No response
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 83 (10 by maintainers)
Just as an update please see this comment for Issue #78 on the
envoy_readerrepo. I have some code that supports the new firmware.The underlying envoy_reader API would need to be updated to include support for this new login method on Envoys running firmware D7.x. At this point, the only change that could be changed on the Home Assistant side would be to implement some dialog saying the Envoy is not supported.
I don’t have access to an Envoy running this new firmware and mine cannot be upgraded as it’s an older oval model running 3.x firmware. I’ve tried looking for an Envoy that is exposed to the Internet but still no luck. But I think even if I found one exposed to the Internet I don’t know if I can use my access token from Enphase on another’s Envoy device. On the Enphase site, it has two options to create a token; commissioned or uncommissioned envoys.
The Issue #78 is tracked on the API side
See #88983 for plans on updating enphase envoy in HA Core
Greg (gtdiehl), the codeowner of this integration, likely knows more about the new firmware situation so we will need to wait for his feedback.
I’m not in a position where I’m ok with breaking my production setup 🤣
Hey there @gtdiehl, mind taking a look at this issue as it has been labeled with an integration (
enphase_envoy) you are listed as a code owner for? Thanks! (message by CodeOwnersMention)