MaxACPower: fix decoration (#19237)

This commit is contained in:
mfuchs1984 2025-02-27 20:34:58 +01:00 • committed by GitHub
parent 737e2f6425
commit b2fb1aa45c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 314 additions and 314 deletions

View file

@ -44,8 +44,8 @@ type BatteryCapacity interface {
Capacity() float64
}
// MaxACPower provides max AC power in W
type MaxACPower interface {
// MaxACPowerGetter provides max AC power in W
type MaxACPowerGetter interface {
MaxACPower() float64
}

View file

@ -40,7 +40,7 @@ var a struct {
api.PhaseCurrents
api.PhaseVoltages
api.PhasePowers
api.MaxACPower
api.MaxACPowerGetter
api.PhaseSwitcher
api.PhaseGetter
@ -55,7 +55,7 @@ func typ(i any) string {
}
var dependents = map[string][]string{
typ(&a.Meter): {typ(&a.MeterEnergy), typ(&a.PhaseCurrents), typ(&a.PhaseVoltages), typ(&a.PhasePowers), typ(&a.MaxACPower)},
typ(&a.Meter): {typ(&a.MeterEnergy), typ(&a.PhaseCurrents), typ(&a.PhaseVoltages), typ(&a.PhasePowers), typ(&a.MaxACPowerGetter)},
typ(&a.PhaseCurrents): {typ(&a.PhasePowers)}, // phase powers are only used to determine currents sign
typ(&a.PhaseSwitcher): {typ(&a.PhaseGetter)},
typ(&a.Battery): {typ(&a.BatteryCapacity), typ(&a.BatteryController)},

View file

@ -120,7 +120,7 @@ func (d *dumper) Dump(name string, v interface{}) {
fmt.Fprintf(w, "Capacity:\t%.1fkWh\n", v.Capacity())
}
if v, ok := v.(api.MaxACPower); ok {
if v, ok := v.(api.MaxACPowerGetter); ok {
fmt.Fprintf(w, "Max AC power:\t%.0fW\n", v.MaxACPower())
}

View file

@ -483,7 +483,7 @@ func (site *Site) updatePvMeters() {
site.log.WARN.Printf("pv %d power: %.0fW is negative - check configuration if sign is correct", i+1, power)
}
if m, ok := meter.(api.MaxACPower); ok {
if m, ok := meter.(api.MaxACPowerGetter); ok {
if dc := m.MaxACPower() - power; dc < 0 && power > 0 {
mm[i].ExcessDCPower = -dc
site.log.DEBUG.Printf("pv %d excess DC: %.0fW", i+1, -dc)

View file

@ -14,7 +14,7 @@ func init() {
registry.AddCtx(api.Custom, NewConfigurableFromConfig)
}
//go:generate go tool decorate -f decorateMeter -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.MaxACPower,MaxACPower,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
//go:generate go tool decorate -f decorateMeter -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.MaxACPowerGetter,MaxACPower,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
// NewConfigurableFromConfig creates api.Meter from config
func NewConfigurableFromConfig(ctx context.Context, other map[string]interface{}) (api.Meter, error) {
@ -106,10 +106,10 @@ func (m *Meter) Decorate(
powers func() (float64, float64, float64, error),
batterySoc func() (float64, error),
batteryCapacity func() float64,
MaxACPower func() float64,
maxACPower func() float64,
setBatteryMode func(api.BatteryMode) error,
) api.Meter {
return decorateMeter(m, totalEnergy, currents, voltages, powers, batterySoc, batteryCapacity, MaxACPower, setBatteryMode)
return decorateMeter(m, totalEnergy, currents, voltages, powers, batterySoc, batteryCapacity, maxACPower, setBatteryMode)
}
// CurrentPower implements the api.Meter interface

File diff suppressed because it is too large Load diff