@@ -326,6 +326,7 @@ async def energy_update(self) -> EnergyStatistics | None:
326326 self .name ,
327327 )
328328 return None
329+
329330 # request node info update every 30 minutes.
330331 elif not self .skip_update (self ._node_info , 1800 ):
331332 if await self .node_info_update () is None :
@@ -405,7 +406,7 @@ async def energy_update(self) -> EnergyStatistics | None:
405406 # Create task to request remaining missing logs
406407 if (
407408 self ._retrieve_energy_logs_task is None
408- # or self._retrieve_energy_logs_task.done() - try retrieving once
409+ or self ._retrieve_energy_logs_task .done ()
409410 ):
410411 _LOGGER .debug (
411412 "Create task to update energy logs for node %s" ,
@@ -419,6 +420,7 @@ async def energy_update(self) -> EnergyStatistics | None:
419420 "Skip creating task to update energy logs for node %s" ,
420421 self ._mac_in_str ,
421422 )
423+
422424 if (
423425 self ._initialization_delay_expired is not None
424426 and datetime .now (tz = UTC ) < self ._initialization_delay_expired
@@ -432,6 +434,7 @@ async def energy_update(self) -> EnergyStatistics | None:
432434 "Unable to return energy statistics for %s, collecting required data..." ,
433435 self .name ,
434436 )
437+
435438 return None
436439
437440 async def get_missing_energy_logs (self ) -> None :
@@ -567,17 +570,19 @@ async def _energy_log_records_load_from_cache(self) -> bool:
567570 self ._energy_counters .update ()
568571
569572 # Create task to retrieve remaining (missing) logs
570- # if self._energy_counters.log_addresses_missing is None:
571- # return False
572-
573- # if len(self._energy_counters.log_addresses_missing) > 0:
574- # if self._retrieve_energy_logs_task is not None:
575- # if not self._retrieve_energy_logs_task.done():
576- # await self._retrieve_energy_logs_task
577- # self._retrieve_energy_logs_task = create_task(
578- # self.get_missing_energy_logs()
579- # )
580- # return False
573+ if self ._energy_counters .log_addresses_missing is None :
574+ return False
575+
576+ if len (self ._energy_counters .log_addresses_missing ) > 0 :
577+ if self ._retrieve_energy_logs_task is not None :
578+ if not self ._retrieve_energy_logs_task .done ():
579+ await self ._retrieve_energy_logs_task
580+
581+ self ._retrieve_energy_logs_task = create_task (
582+ self .get_missing_energy_logs ()
583+ )
584+ return False
585+
581586 return True
582587
583588 async def _energy_log_records_save_to_cache (self ) -> None :
0 commit comments