Open chemelli74 opened 4 months ago
Investigated a bit more. I changed the code as follow around line 461:
from:
if monitor is None:
_LOGGER.debug("Invalid monitor details found")
to:
if monitor is None or not monitor.get("ke"):
_LOGGER.debug("Invalid monitor details found")
and added a log line around line 315:
if self.status == ConnectivityStatus.Connected:
_LOGGER.warning("Simone - load_monitors in update()")
await self._load_monitors()
This is the resulting log:
2024-04-15 19:04:37.885 INFO (MainThread) [custom_components.shinobi.managers.rest_api] Status changed from 'Connected with temporary API key' to 'Connected to the API'
2024-04-15 19:04:37.886 WARNING (MainThread) [custom_components.shinobi.managers.rest_api] Simone - load_monitors in update()
2024-04-15 19:04:37.895 WARNING (MainThread) [custom_components.shinobi.managers.rest_api] Invalid monitor details found
2024-04-15 19:04:37.906 INFO (MainThread) [custom_components.shinobi.managers.websockets] Status changed from 'None' to 'Connected to the API'
2024-04-15 19:04:37.906 INFO (MainThread) [custom_components.shinobi.managers.websockets] Starting to listen connected
2024-04-15 19:04:38.962 WARNING (MainThread) [custom_components.shinobi.managers.rest_api] Simone - load_monitors in update()
2024-04-15 19:04:38.973 WARNING (MainThread) [custom_components.shinobi.managers.rest_api] Simone - load_monitors in update()
You can see that the call fails only the 1st time. And on top of that, noticed that "update()" is called even 3 times in 1 second.
where is the file in homeassistant config? i.e. the pwd
@chemelli74
@chemelli74 according to the original error, the request was not autorized, it has nothing to do with the workaround, the issue is in line 464 where the code is trying to load the details of the monitor and it holds nothing (because it failed), will release full fix for that issue, both to protect the api call and the handling of the empty data
Hi,
didn't investigate yet, but noticed the following error in my log:
Everything, excluded #61, seems to work anyway.