diff --git a/envoy_reader/envoy_reader.py b/envoy_reader/envoy_reader.py index 13186ef..7509389 100644 --- a/envoy_reader/envoy_reader.py +++ b/envoy_reader/envoy_reader.py @@ -164,6 +164,13 @@ async def _async_fetch_with_retry(self, url, **kwargs): resp = await client.get( url, headers=self._authorization_header, timeout=30, **kwargs ) + if resp.status_code == 401 and attempt < 2: + _LOGGER.debug( + "Received 401 from Envoy; refreshing token, attempt %s of 2", + attempt+1, + ) + await self._getEnphaseToken() + continue _LOGGER.debug("Fetched from %s: %s: %s", url, resp, resp.text) return resp except httpx.TransportError: