Skip to content

Commit 9e4d764

Browse files
committed
Try update _last_log_consumption_timestamp
1 parent 6d9ffe4 commit 9e4d764

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

plugwise_usb/nodes/helpers/pulses.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)