Skip to content

Commit 92cb50f

Browse files
authored
Merge pull request #131 from plugwise/mdi
Only keep history of last 48 hours.
2 parents 2e39dec + ea6f0c5 commit 92cb50f

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

plugwise_usb/nodes/circle.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,17 @@ def request_energy_counters(self, log_address=None, callback=None):
681681
# TODO: validate range of log_addresses
682682
self._energy_history_collecting = True
683683
self._energy_history_collecting_timestamp = datetime.now()
684-
for req_log_address in range(log_address - 13, log_address):
684+
_log_delta = datetime.utcnow().replace(
685+
minute=0, second=0, microsecond=0
686+
) - (
687+
datetime.utcnow().replace(
688+
hour=0, minute=0, second=0, microsecond=0
689+
) - timedelta(days=1)
690+
)
691+
_log_count = _log_delta.total_seconds()/60/60/4
692+
_log_count = int(_log_count) + (1 if _log_count - int(_log_count) > 0 else 0)
693+
694+
for req_log_address in range(log_address - _log_count, log_address):
685695
if self._energy_memory.get(req_log_address, 0) < 4:
686696
self.message_sender(
687697
CircleEnergyCountersRequest(self._mac, req_log_address),
@@ -816,12 +826,12 @@ def _response_energy_counters(self, message: CircleEnergyCountersResponse):
816826
)
817827
_LOGGER.info(logstring)
818828

819-
# Cleanup energy history for more than 8 day's ago
820-
_8_days_ago = datetime.utcnow().replace(
829+
# Cleanup energy history for more than 48 hours
830+
_48_hours_ago = datetime.utcnow().replace(
821831
minute=0, second=0, microsecond=0
822-
) - timedelta(days=8)
832+
) - timedelta(hours=48)
823833
for log_timestamp in list(self._energy_history.keys()):
824-
if log_timestamp < _8_days_ago:
834+
if log_timestamp < _48_hours_ago:
825835
del self._energy_history[log_timestamp]
826836

827837
def _response_clock(self, message: CircleClockResponse):

0 commit comments

Comments
 (0)