diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino index 839568bcc..f2cb3b462 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino @@ -350,14 +350,17 @@ void Energy200ms(void) if (RtcTime.valid) { if (!Energy.kWhtoday_offset_init && (RtcTime.day_of_year == Settings->energy_kWhdoy)) { + Energy.kWhtoday_offset_init = true; for (uint32_t i = 0; i < 3; i++) { Energy.kWhtoday_offset[i] = Settings->energy_kWhtoday_ph[i]; // RtcSettings.energy_kWhtoday_ph[i] = 0; } - Energy.kWhtoday_offset_init = true; } - if (LocalTime() == Midnight()) { + if ((LocalTime() == Midnight()) || (RtcTime.day_of_year > Settings->energy_kWhdoy)) { + Energy.kWhtoday_offset_init = true; + Settings->energy_kWhdoy = RtcTime.day_of_year; + for (uint32_t i = 0; i < 3; i++) { Settings->energy_kWhyesterday_ph[i] = RtcSettings.energy_kWhtoday_ph[i];