Skip to content

Commit c3cecce

Browse files
brefrabouwew
authored andcommitted
Guard for continuously requesting energy counters
1 parent e9554b3 commit c3cecce

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

plugwise/nodes/circle.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def __init__(self, mac, address, message_sender):
6767
hour=0, minute=0, second=0, microsecond=0
6868
)
6969
self._energy_history_collecting = False
70+
self._energy_history_collecting_timestamp = datetime.now()
7071
self._energy_history = {}
7172
self._energy_last_collected_timestamp = datetime(2000, 1, 1)
7273
self._energy_last_rollover_timestamp = datetime(2000, 1, 1)
@@ -613,7 +614,16 @@ def request_energy_counters(self, log_address=None, callback=None):
613614
if log_address is None:
614615
log_address = self._last_log_address
615616
if log_address is not None:
616-
if len(self._energy_history) > 48 or self._energy_history_collecting:
617+
if self._energy_history_collecting and (
618+
self._energy_history_collecting_timestamp
619+
< datetime.now() - timedelta(minutes=15)
620+
):
621+
_LOGGER.debug(
622+
"Skip request_energy_counters for %s of address %s",
623+
self.mac,
624+
str(log_address),
625+
)
626+
elif len(self._energy_history) > 48:
617627
# Energy history already collected
618628
if (
619629
log_address == self._last_log_address
@@ -636,6 +646,7 @@ def request_energy_counters(self, log_address=None, callback=None):
636646

637647
# TODO: validate range of log_addresses
638648
self._energy_history_collecting = True
649+
self._energy_history_collecting_timestamp = datetime.now()
639650
for req_log_address in range(log_address - 13, log_address):
640651
self.message_sender(
641652
CircleEnergyCountersRequest(self._mac, req_log_address),

0 commit comments

Comments
 (0)