Skip to content

Commit 8d04842

Browse files
committed
Stop missing_log collection when None or invalid data is collected
Other improvements
1 parent afb5724 commit 8d04842

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

plugwise_usb/nodes/circle.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -385,23 +385,22 @@ async def energy_update(self) -> EnergyStatistics | None: # noqa: PLR0911 PLR09
385385
result = await self.energy_log_update(self._current_log_address)
386386
if not result:
387387
_LOGGER.debug(
388-
"async_energy_update | %s | Log rollover | energy_log_update failed",
388+
"async_energy_update | %s | Log rollover | energy_log_update from address %s failed",
389389
self._mac_in_str,
390+
self._current_log_address,
390391
)
391392
return None
392393

393394
if self._current_log_address is not None:
394395
# Retry with previous log address as Circle node pointer to self._current_log_address
395396
# could be rolled over while the last log is at previous address/slot
396-
_prev_log_address, _ = calc_log_address(
397-
self._current_log_address, 1, -4
398-
)
399-
result = await self.energy_log_update(_prev_log_address)
397+
prev_log_address, _ = calc_log_address(self._current_log_address, 1, -4)
398+
result = await self.energy_log_update(prev_log_address)
400399
if not result:
401400
_LOGGER.debug(
402-
"async_energy_update | %s | Log rollover | energy_log_update %s failed",
401+
"async_energy_update | %s | Log rollover | energy_log_update from address %s failed",
403402
self._mac_in_str,
404-
_prev_log_address,
403+
prev_log_address,
405404
)
406405
return None
407406

@@ -507,6 +506,10 @@ async def get_missing_energy_logs(self) -> None:
507506
]
508507
for task in tasks:
509508
await task
509+
# When an energy log collection task returns False, do not execute the remaining tasks
510+
if not task.result():
511+
for t in tasks:
512+
t.cancel()
510513

511514
if self._cache_enabled:
512515
await self._energy_log_records_save_to_cache()

0 commit comments

Comments
 (0)