@@ -184,15 +184,39 @@ def collected_pulses(
184184 log_pulses = result [0 ]
185185 reset = result [1 ]
186186 pulses : int | None = None
187- delta_cons_pulses : int = 0
188- delta_prod_pulses : int = 0
189187 timestamp : datetime | None = None
190188 if is_consumption and self ._pulses_consumption is not None :
191189 timestamp = self ._pulses_timestamp
192- #if self._prev_timestamp == timestamp:
193- # _LOGGER.debug("collected_pulses | %s | double timestamp=%s", self._mac, timestamp)
194- # return (None, None)
190+ if from_timestamp != timestamp :
191+ if is_consumption and self ._pulses_consumption is not None :
192+ pulses = self ._pulses_consumption
193+ timestamp = self ._pulses_timestamp
194+ if not is_consumption and self ._pulses_production is not None :
195+ pulses = self ._pulses_production
196+ timestamp = self ._pulses_timestamp
197+
198+ if pulses is None :
199+ _LOGGER .debug (
200+ "collected_pulses | %s | is_consumption=%s, pulses=None" ,
201+ self ._mac ,
202+ is_consumption ,
203+ )
204+ return (None , None )
195205
206+ _LOGGER .debug (
207+ "collected_pulses | pulses=%s | log_pulses=%s | consumption=%s from %s to %s" ,
208+ pulses ,
209+ log_pulses ,
210+ is_consumption ,
211+ from_timestamp ,
212+ timestamp ,
213+ )
214+
215+ # Always return positive values of energy_statistics
216+ return (abs (pulses + log_pulses ), timestamp )
217+
218+ delta_cons_pulses : int = 0
219+ delta_prod_pulses : int = 0
196220 delta_cons_pulses = self ._pulses_consumption - self ._prev_pulses_consumption
197221 pulses = self ._prev_pulses_consumption + delta_cons_pulses
198222 self ._prev_pulses_consumption = pulses
0 commit comments