@@ -212,18 +212,21 @@ def __init__(
212212 self ._mac = mac
213213 if energy_id not in ENERGY_COUNTERS :
214214 raise EnergyError (f"Invalid energy id '{ energy_id } ' for Energy counter" )
215+
215216 self ._calibration : EnergyCalibration | None = None
216217 self ._duration = "hour"
217218 if energy_id in ENERGY_DAY_COUNTERS :
218219 self ._duration = "day"
219220 #elif energy_id in ENERGY_WEEK_COUNTERS:
220221 # self._duration = "week"
222+
221223 self ._energy_id : EnergyType = energy_id
222224 self ._is_consumption = True
223225 self ._direction = "consumption"
224226 if self ._energy_id in ENERGY_PRODUCTION_COUNTERS :
225227 self ._direction = "production"
226228 self ._is_consumption = False
229+
227230 self ._last_reset : datetime | None = None
228231 self ._last_update : datetime | None = None
229232 self ._pulses : int | None = None
@@ -258,8 +261,10 @@ def energy(self) -> float | None:
258261 """Total energy (in kWh) since last reset."""
259262 if self ._pulses is None or self ._calibration is None :
260263 return None
264+
261265 if self ._pulses == 0 :
262266 return 0.0
267+
263268 # Handle both positive and negative pulses values
264269 negative = False
265270 if self ._pulses < 0 :
@@ -282,6 +287,7 @@ def energy(self) -> float | None:
282287 calc_value = corrected_pulses / PULSES_PER_KW_SECOND / HOUR_IN_SECONDS
283288 if negative :
284289 calc_value = - calc_value
290+
285291 return calc_value
286292
287293 @property
@@ -323,6 +329,7 @@ def update(
323329 )
324330 if pulses is None or last_update is None :
325331 return (None , None )
332+
326333 self ._last_update = last_update
327334 self ._last_reset = last_reset
328335 self ._pulses = pulses
0 commit comments