Skip to content

Commit ae7f823

Browse files
committed
Use common _pulsecounter_reset to reset both counters while only one is active
1 parent 6060f5e commit ae7f823

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

plugwise_usb/nodes/helpers/pulses.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ def __init__(self, mac: str) -> None:
8383
self._first_log_production_slot: int | None = None
8484
self._next_log_production_timestamp: datetime | None = None
8585

86-
self._cons_pulsecounter_reset = False
87-
self._prod_pulsecounter_reset = False
86+
self._pulsecounter_reset = False
8887
self._rollover_consumption = False
8988
self._rollover_production = False
9089

@@ -223,7 +222,7 @@ def _collect_pulses_from_logs(
223222
return None
224223
if (
225224
from_timestamp > self._last_log_consumption_timestamp
226-
and self._cons_pulsecounter_reset
225+
and self._pulsecounter_reset
227226
):
228227
return 0
229228
else:
@@ -235,7 +234,7 @@ def _collect_pulses_from_logs(
235234
return None
236235
if (
237236
from_timestamp > self._last_log_production_timestamp
238-
and self._prod_pulsecounter_reset
237+
and self._pulsecounter_reset
239238
):
240239
return 0
241240

@@ -266,32 +265,37 @@ def update_pulse_counter(
266265
267266
Both device consumption and production counters reset after the beginning of a new hour.
268267
"""
269-
self._cons_pulsecounter_reset = False
270-
self._prod_pulsecounter_reset = False
268+
cons_pulsecounter_reset = False
269+
prod_pulsecounter_reset = False
271270
self._pulses_timestamp = timestamp
272271
self._update_rollover()
273272
if (
274273
self._pulses_consumption is not None
275274
and self._pulses_consumption > pulses_consumed
276275
):
277276
_LOGGER.debug("update_pulse_counter | consumption pulses reset")
278-
self._cons_pulsecounter_reset = True
277+
cons_pulsecounter_reset = True
279278

280279
if (
281280
self._pulses_production is not None
282281
and self._pulses_production < pulses_produced
283282
):
284283
_LOGGER.debug("update_pulse_counter | production pulses reset")
285-
self._prod_pulsecounter_reset = True
284+
prod_pulsecounter_reset = True
285+
286+
if cons_pulsecounter_reset or prod_pulsecounter_reset:
287+
self._pulsecounter_reset = True
288+
else:
289+
self._pulsecounter_reset = False
286290

287291
# No rollover based on time, check rollover based on counter reset
288292
# Required for special cases like nodes which have been powered off for several days
289293
if not (self._rollover_consumption or self._rollover_production):
290-
if self._cons_pulsecounter_reset:
294+
if cons_pulsecounter_reset:
291295
_LOGGER.debug("update_pulse_counter | rollover consumption")
292296
self._rollover_consumption = True
293297

294-
if self._prod_pulsecounter_reset:
298+
if prod_pulsecounter_reset:
295299
_LOGGER.debug("update_pulse_counter | rollover production")
296300
self._rollover_production = True
297301

0 commit comments

Comments
 (0)