MaxACPower: fix decoration (#19237)
This commit is contained in:
parent
737e2f6425
commit
b2fb1aa45c
6 changed files with 314 additions and 314 deletions
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)},
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue