@@ -459,6 +459,7 @@ def _update_energy_today_now(
459459 self ._energy_rollover_history_start = True
460460 if day_rollover and not self ._energy_rollover_day_finished :
461461 self ._energy_rollover_day_start = True
462+ _update = False
462463
463464 # Set counter
464465 if self ._energy_rollover_hour_start :
@@ -480,11 +481,11 @@ def _update_energy_today_now(
480481 self ._energy_rollover_history_start = False
481482 else :
482483 # Wait for history_rollover, keep current counter
483- _pulses_today_now = self . _energy_pulses_today_now
484+ _update = False
484485 else :
485486 if self ._energy_rollover_history_start :
486487 # Wait for hour_rollover, keep current counter
487- _pulses_today_now = self . _energy_pulses_today_now
488+ _update = False
488489 else :
489490 # Regular update
490491 if self ._energy_pulses_today_hourly is None :
@@ -494,22 +495,38 @@ def _update_energy_today_now(
494495 self ._energy_pulses_today_hourly
495496 + self ._energy_pulses_current_hour
496497 )
497- _LOGGER .debug (
498- "_update_energy_today_now for %s | counter = %s, update= %s (%s + %s)" ,
499- self .mac ,
500- str (self ._energy_pulses_today_now ),
501- str (_pulses_today_now ),
502- str (self ._energy_pulses_today_hourly ),
503- str (self ._energy_pulses_current_hour ),
504- )
505- if self ._energy_pulses_today_now is None :
506- self ._energy_pulses_today_now = _pulses_today_now
507- if self ._energy_pulses_today_now is not None :
508- self .do_callback (FEATURE_ENERGY_CONSUMPTION_TODAY ["id" ])
509- else :
510- if self ._energy_pulses_today_now != _pulses_today_now :
498+
499+ if _update :
500+ _LOGGER .debug (
501+ "_update_energy_today_now for %s | counter = %s, update= %s (%s + %s)" ,
502+ self .mac ,
503+ str (self ._energy_pulses_today_now ),
504+ str (_pulses_today_now ),
505+ str (self ._energy_pulses_today_hourly ),
506+ str (self ._energy_pulses_current_hour ),
507+ )
508+ if self ._energy_pulses_today_now is None :
511509 self ._energy_pulses_today_now = _pulses_today_now
512- self .do_callback (FEATURE_ENERGY_CONSUMPTION_TODAY ["id" ])
510+ if self ._energy_pulses_today_now is not None :
511+ self .do_callback (FEATURE_ENERGY_CONSUMPTION_TODAY ["id" ])
512+ else :
513+ if self ._energy_pulses_today_now != _pulses_today_now :
514+ self ._energy_pulses_today_now = _pulses_today_now
515+ self .do_callback (FEATURE_ENERGY_CONSUMPTION_TODAY ["id" ])
516+ else :
517+ _LOGGER .warning (
518+ "_update_energy_today_now for %s | skip update, hour: %s=%s=%s, history: %s=%s=%s, day: %s=%s=%s" ,
519+ self .mac ,
520+ str (hour_rollover ),
521+ str (self ._energy_rollover_hour_start ),
522+ str (self ._energy_rollover_hour_finished ),
523+ str (history_rollover ),
524+ str (self ._energy_rollover_history_start ),
525+ str (self ._energy_rollover_history_finished ),
526+ str (day_rollover ),
527+ str (self ._energy_rollover_day_start ),
528+ str (self ._energy_rollover_day_finished ),
529+ )
513530
514531 def _update_energy_previous_hour (self , prev_hour : datetime ):
515532 """Update energy consumption (pulses) of previous hour"""
0 commit comments