@@ -67,8 +67,8 @@ def __init__(self, mac: str) -> None:
6767 self ._last_empty_log_address : int | None = None
6868 self ._last_empty_log_slot : int | None = None
6969
70- self .cons_last_hourly_reset : datetime | None = None
71- self .prod_last_hourly_reset : datetime | None = None
70+ self ._cons_last_hourly_reset : datetime | None = None
71+ self ._prod_last_hourly_reset : datetime | None = None
7272 self ._last_log_consumption_timestamp : datetime | None = None
7373 self ._last_log_consumption_address : int | None = None
7474 self ._last_log_consumption_slot : int | None = None
@@ -110,9 +110,9 @@ def collected_logs(self) -> int:
110110 @property
111111 def hourly_reset_time (self ) -> datetime | None :
112112 """Provide the device hourly pulse reset time."""
113- if (timestamp := self .cons_last_hourly_reset ) is not None :
113+ if (timestamp := self ._cons_last_hourly_reset ) is not None :
114114 return timestamp
115- if (timestamp := self .prod_last_hourly_reset ) is not None :
115+ if (timestamp := self ._prod_last_hourly_reset ) is not None :
116116 return timestamp
117117 return None
118118
@@ -291,10 +291,10 @@ def update_pulse_counter(
291291 and self ._pulses_consumption > pulses_consumed
292292 ):
293293 _LOGGER .debug ("update_pulse_counter | consumption pulses reset" )
294- self .cons_last_hourly_reset = timestamp
294+ self ._cons_last_hourly_reset = timestamp
295295 _LOGGER .debug (
296296 "update_pulse_counter | consumption hourly_reset_time=%s" ,
297- self .cons_last_hourly_reset ,
297+ self ._cons_last_hourly_reset ,
298298 )
299299 self ._cons_pulsecounter_reset = True
300300
@@ -765,6 +765,19 @@ def _update_log_references(self, address: int, slot: int) -> None:
765765
766766 log_time_stamp = self ._logs [address ][slot ].timestamp
767767 is_consumption = self ._logs [address ][slot ].is_consumption
768+ if is_consumption :
769+ if self ._cons_last_hourly_reset is not None :
770+ log_time_stamp = log_time_stamp + timedelta (
771+ minutes = self ._cons_last_hourly_reset .minute ,
772+ seconds = self ._cons_last_hourly_reset .second ,
773+ microseconds = self ._cons_last_hourly_reset .microsecond ,
774+ )
775+ elif self ._prod_last_hourly_reset is not None :
776+ log_time_stamp = log_time_stamp + timedelta (
777+ minutes = self ._prod_last_hourly_reset .minute ,
778+ seconds = self ._prod_last_hourly_reset .second ,
779+ microseconds = self ._prod_last_hourly_reset .microsecond ,
780+ )
768781
769782 # Update log references
770783 self ._update_first_log_reference (address , slot , log_time_stamp , is_consumption )
0 commit comments