Skip to content

Commit c652c7c

Browse files
committed
Sort and prune the records loaded from cache
1 parent 6776f83 commit c652c7c

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

plugwise_usb/nodes/circle.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from ..constants import (
2727
DAY_IN_HOURS,
2828
DEFAULT_CONS_INTERVAL,
29+
MAX_LOG_HOURS,
2930
MAX_TIME_DRIFT,
3031
MINIMAL_POWER_UPDATE,
3132
NO_PRODUCTION_INTERVAL,
@@ -635,6 +636,20 @@ async def _energy_log_records_load_from_cache(self) -> bool:
635636
restored_logs[address] = []
636637
restored_logs[address].append(slot)
637638

639+
# Sort and prune the records loaded from cache
640+
sorted_logs: dict[int, dict[int, PulseLogRecord]] = {}
641+
skip_before = datetime.now(tz=UTC) - timedelta(hours=MAX_LOG_HOURS)
642+
sorted_address = sorted(restored_logs.keys(), reverse=True)
643+
for address in sorted_address:
644+
sorted_slots = sorted(restored_logs[address].keys(), reverse=True)
645+
for slot in sorted_slots:
646+
if restored_logs[address][slot].timestamp > skip_before:
647+
if sorted_log.get(address) is None:
648+
sorted_log[address] = {}
649+
sorted_log[address][slot] = restored_logs[address][slot]
650+
651+
restored_logs = sorted_logs
652+
638653
self._energy_counters.update()
639654

640655
# Create task to retrieve remaining (missing) logs

0 commit comments

Comments
 (0)