@@ -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
0 commit comments