chore: better logging

This commit is contained in:
andig 2025-08-12 17:11:45 +02:00
parent 094e27868d
commit 18ce98f6b9
3 changed files with 16 additions and 3 deletions

View file

@ -1,6 +1,8 @@
package core
import (
"bytes"
"fmt"
"time"
"github.com/benbjohnson/clock"
@ -14,6 +16,15 @@ type meterEnergy struct {
Accumulated float64 `json:"accumulated"` // kWh
}
func (m *meterEnergy) String() string {
b := new(bytes.Buffer)
fmt.Fprintf(b, "Accumulated: %.3fkWh updated: %v", m.Accumulated, m.updated.Truncate(time.Second))
if m.meter != nil {
fmt.Fprintf(b, " meter: %.3fkWh", *m.meter)
}
return b.String()
}
// AccumulatedEnergy returns the accumulated energy in kWh
func (m *meterEnergy) AccumulatedEnergy() float64 {
return m.Accumulated

View file

@ -592,10 +592,10 @@ func (site *Site) updatePvMeters() {
prev := site.pvEnergy[name].AccumulatedEnergy()
if mm[i].Energy > 0 {
site.log.DEBUG.Printf("!! accumulated solar production: %s set %.3fkWh meter total (was: %+v)", name, mm[i].Energy, site.pvEnergy[name])
site.log.DEBUG.Printf("!! accumulated solar production: %s set %.3fkWh meter total (was: %s)", name, mm[i].Energy, site.pvEnergy[name])
site.pvEnergy[name].AddMeterTotal(mm[i].Energy)
} else {
site.log.DEBUG.Printf("!! accumulated solar production: %s add %.3fW power (was: %+v)", name, mm[i].Energy, site.pvEnergy[name])
site.log.DEBUG.Printf("!! accumulated solar production: %s add %.3fW power (was: %s)", name, mm[i].Energy, site.pvEnergy[name])
site.pvEnergy[name].AddPower(mm[i].Power)
}
site.log.DEBUG.Printf("!! accumulated solar production: %s moved from %.3f to %.3f (is: %+v)", name, prev, site.pvEnergy[name].AccumulatedEnergy(), site.pvEnergy[name])

View file

@ -150,7 +150,9 @@ func (site *Site) solarDetails(solar api.Rates) solarDetails {
// accumulate forecasted energy since last update
energy := solarEnergy(solar, site.fcstEnergy.updated, time.Now()) / 1e3
site.log.DEBUG.Printf("solar forecast: accumulated %.3f from %v to %v", energy, site.fcstEnergy.updated, time.Now())
site.log.DEBUG.Printf("solar forecast: accumulated %.3fWh from %v to %v",
energy, site.fcstEnergy.updated.Truncate(time.Second), time.Now().Truncate(time.Second),
)
site.fcstEnergy.AddEnergy(energy)
settings.SetFloat(keys.SolarAccForecast, site.fcstEnergy.Accumulated)