@@ -90,7 +90,9 @@ def __init__(self, mac: str) -> None:
9090 self ._logs : dict [int , dict [int , PulseLogRecord ]] | None = None
9191 self ._log_addresses_missing : list [int ] | None = None
9292 self ._log_production : bool | None = None
93+ self ._prev_pulses_consumption : int = 0
9394 self ._pulses_consumption : int | None = None
95+ self ._prev_pulses_production : int = 0
9496 self ._pulses_production : int | None = None
9597 self ._pulses_timestamp : datetime | None = None
9698
@@ -178,14 +180,26 @@ def collected_pulses(
178180 return (None , None )
179181
180182 pulses : int | None = None
183+ delta_cons_pulses : int = 0
184+ delta_prod_pulses : int = 0
181185 timestamp : datetime | None = None
182186 if is_consumption and self ._pulses_consumption is not None :
183- pulses = self ._pulses_consumption
184187 timestamp = self ._pulses_timestamp
188+ delta_cons_pulses = self ._pulses_consumption - self ._prev_pulses_consumption
189+ pulses = self ._prev_pulses_consumption + delta_cons_pulses
190+ self ._prev_pulses_consumption = pulses
191+ if self ._pulsecounter_reset :
192+ pulses = self ._pulses_consumption
193+ self ._prev_pulses_consumption = 0
185194
186195 if not is_consumption and self ._pulses_production is not None :
187- pulses = self ._pulses_production
188196 timestamp = self ._pulses_timestamp
197+ delta_prod_pulses = self ._pulses_production - self ._prev_pulses_production
198+ pulses = self ._prev_pulses_production + delta_prod_pulses
199+ self ._prev_pulses_production = pulses
200+ if self ._pulsecounter_reset :
201+ pulses = self ._pulses_production
202+ self ._prev_pulses_production = 0
189203
190204 if pulses is None :
191205 _LOGGER .debug (
@@ -194,6 +208,7 @@ def collected_pulses(
194208 is_consumption ,
195209 )
196210 return (None , None )
211+
197212 _LOGGER .debug (
198213 "collected_pulses | pulses=%s | log_pulses=%s | consumption=%s at timestamp=%s" ,
199214 pulses ,
0 commit comments