Skip to content

Commit 87cd156

Browse files
committed
Guard against repeated collection from the same timestamp
1 parent 661d0ee commit 87cd156

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

plugwise_usb/nodes/helpers/pulses.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def __init__(self, mac: str) -> None:
9393
self._prev_pulses_consumption: int = 0
9494
self._pulses_consumption: int | None = None
9595
self._prev_pulses_production: int = 0
96+
self._prev_timestamp: datetime | None = None
9697
self._pulses_production: int | None = None
9798
self._pulses_timestamp: datetime | None = None
9899

@@ -188,9 +189,13 @@ def collected_pulses(
188189
timestamp: datetime | None = None
189190
if is_consumption and self._pulses_consumption is not None:
190191
timestamp = self._pulses_timestamp
192+
if self._prev_timestamp == timestamp:
193+
return
194+
191195
delta_cons_pulses = self._pulses_consumption - self._prev_pulses_consumption
192196
pulses = self._prev_pulses_consumption + delta_cons_pulses
193197
self._prev_pulses_consumption = pulses
198+
self._prev_timestamp = timestamp
194199
if reset:
195200
pulses = delta_cons_pulses
196201
self._prev_pulses_consumption = 0
@@ -203,6 +208,7 @@ def collected_pulses(
203208
delta_prod_pulses = self._pulses_production - self._prev_pulses_production
204209
pulses = self._prev_pulses_production + delta_prod_pulses
205210
self._prev_pulses_production = pulses
211+
self._prev_timestamp = timestamp
206212
if reset:
207213
pulses = delta_prod_pulses
208214
self._prev_pulses_production = 0

0 commit comments

Comments
 (0)