Skip to content

Commit 10693d4

Browse files
committed
Line up interval reset with device hourly pulsecounter reset
1 parent b3fe6f5 commit 10693d4

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

plugwise_usb/nodes/helpers/counter.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ def __init__(
206206
self._is_consumption = False
207207
self._last_reset: datetime | None = None
208208
self._last_update: datetime | None = None
209+
self._pulse_collection = PulseCollection(mac)
209210
self._pulses: int | None = None
210211

211212
@property
@@ -282,10 +283,17 @@ def update(
282283
) -> tuple[float | None, datetime | None]:
283284
"""Get pulse update."""
284285
last_reset = datetime.now(tz=LOCAL_TIMEZONE)
286+
timestamp = self._pulse_collection.hourly_reset_time
285287
if self._energy_id in ENERGY_HOUR_COUNTERS:
286-
last_reset = last_reset.replace(minute=0, second=0, microsecond=0)
287-
elif self._energy_id in ENERGY_DAY_COUNTERS:
288-
last_reset = last_reset.replace(hour=0, minute=0, second=0, microsecond=0)
288+
if timestamp is not None:
289+
last_reset = timestamp
290+
else:
291+
last_reset = last_reset.replace(minute=0, second=0, microsecond=0)
292+
if self._energy_id in ENERGY_DAY_COUNTERS:
293+
if timestamp is not None:
294+
last_reset = timestamp.replace(hour=0)
295+
else:
296+
last_reset = last_reset.replace(hour=0, minute=0, second=0, microsecond=0)
289297

290298
pulses, last_update = pulse_collection.collected_pulses(
291299
last_reset, self._is_consumption

plugwise_usb/nodes/helpers/pulses.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ def collected_logs(self) -> int:
106106
counter += len(self._logs[address])
107107
return counter
108108

109+
@property
110+
def hourly_reset_time(self) -> datetime:
111+
"""Provide the device hourly pulse reset time."""
112+
if timestamp := self.cons_last_hourly_reset is not None:
113+
return timestamp
114+
if timestamp := self.prod_last_hourly_reset is not None:
115+
return timestamp
116+
109117
@property
110118
def logs(self) -> dict[int, dict[int, PulseLogRecord]]:
111119
"""Return currently collected pulse logs in reversed order."""

0 commit comments

Comments
 (0)