Solar forecast: reset inconsistent metrics (#19605)
Some checks failed
Some checks failed
This commit is contained in:
parent
1f82ce3822
commit
8ab2a78e68
2 changed files with 20 additions and 6 deletions
22
core/site.go
22
core/site.go
|
|
@ -323,14 +323,28 @@ func (site *Site) restoreSettings() error {
|
|||
fcstEnergy, err := settings.Float(keys.SolarAccForecast)
|
||||
|
||||
if err == nil && settings.Json(keys.SolarAccYield, &pvEnergy) == nil {
|
||||
site.fcstEnergy.Accumulated = fcstEnergy
|
||||
|
||||
var nok bool
|
||||
for _, name := range site.Meters.PVMetersRef {
|
||||
if fcst, ok := pvEnergy[name]; ok {
|
||||
site.pvEnergy[name].Accumulated = fcst
|
||||
} else {
|
||||
// TODO decide auto-reset?
|
||||
site.log.WARN.Printf("cannot restore accumulated solar yield for: %s (may need to reset solar statistics)", name)
|
||||
nok = true
|
||||
site.log.WARN.Printf("accumulated solar yield: cannot restore %s", name)
|
||||
}
|
||||
}
|
||||
|
||||
if !nok {
|
||||
site.fcstEnergy.Accumulated = fcstEnergy
|
||||
site.log.DEBUG.Printf("accumulated solar yield: restored %.3fkWh forecasted, %+v produced", fcstEnergy, pvEnergy)
|
||||
} else {
|
||||
// reset metrics
|
||||
site.log.WARN.Printf("accumulated solar yield: metrics reset")
|
||||
|
||||
settings.Delete(keys.SolarAccForecast)
|
||||
settings.Delete(keys.SolarAccYield)
|
||||
|
||||
for _, pe := range site.pvEnergy {
|
||||
pe.Accumulated = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -157,8 +157,8 @@ func (site *Site) solarDetails(solar timeseries) solarDetails {
|
|||
scale := produced / fcst
|
||||
site.log.DEBUG.Printf("solar forecast: accumulated %.3fkWh, produced %.3fkWh, scale %.3f", fcst, produced, scale)
|
||||
|
||||
const minEnergy = 0.1
|
||||
if produced > minEnergy && fcst > minEnergy { /*kWh*/
|
||||
const minEnergy = 0.5 // kWh
|
||||
if produced+fcst > minEnergy {
|
||||
res.Scale = lo.ToPtr(scale)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue