diff --git a/api/api.go b/api/api.go index fae2a87230..5aac9e77f1 100644 --- a/api/api.go +++ b/api/api.go @@ -44,8 +44,8 @@ type BatteryCapacity interface { Capacity() float64 } -// BatteryMaxACPower provides max AC power in W -type BatteryMaxACPower interface { +// MaxACPower provides max AC power in W +type MaxACPower interface { MaxACPower() float64 } diff --git a/cmd/dumper.go b/cmd/dumper.go index 5500f62b66..81b92d8890 100644 --- a/cmd/dumper.go +++ b/cmd/dumper.go @@ -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.BatteryMaxACPower); ok { + if v, ok := v.(api.MaxACPower); ok { fmt.Fprintf(w, "Max AC power:\t%.0fW\n", v.MaxACPower()) } diff --git a/cmd/tools/decorate.go b/cmd/tools/decorate.go index 3e21fdf87e..5ab05f8e91 100644 --- a/cmd/tools/decorate.go +++ b/cmd/tools/decorate.go @@ -40,13 +40,13 @@ var a struct { api.PhaseCurrents api.PhaseVoltages api.PhasePowers + api.MaxACPower api.PhaseSwitcher api.PhaseGetter api.Battery api.BatteryCapacity - api.BatteryMaxACPower api.BatteryController } @@ -55,10 +55,10 @@ 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.Meter): {typ(&a.MeterEnergy), typ(&a.PhaseCurrents), typ(&a.PhaseVoltages), typ(&a.PhasePowers), typ(&a.MaxACPower)}, 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.BatteryMaxACPower), typ(&a.BatteryController)}, + typ(&a.Battery): {typ(&a.BatteryCapacity), typ(&a.BatteryController)}, } // hasIntersection returns if the slices intersect diff --git a/core/site.go b/core/site.go index fdee2f00ec..63ad90d7ed 100644 --- a/core/site.go +++ b/core/site.go @@ -43,18 +43,18 @@ type updater interface { // meterMeasurement is used as slice element for publishing structured data type meterMeasurement struct { - Power float64 `json:"power"` - Energy float64 `json:"energy,omitempty"` + Power float64 `json:"power"` + Energy float64 `json:"energy,omitempty"` + ExcessDCPower float64 `json:"excessdcpower,omitempty"` } // batteryMeasurement is used as slice element for publishing structured data type batteryMeasurement struct { - Power float64 `json:"power"` - ExcessDCPower float64 `json:"excessdcpower,omitempty"` - Energy float64 `json:"energy,omitempty"` - Soc float64 `json:"soc,omitempty"` - Capacity float64 `json:"capacity,omitempty"` - Controllable bool `json:"controllable"` + Power float64 `json:"power"` + Energy float64 `json:"energy,omitempty"` + Soc float64 `json:"soc,omitempty"` + Capacity float64 `json:"capacity,omitempty"` + Controllable bool `json:"controllable"` } var _ site.API = (*Site)(nil) @@ -100,13 +100,13 @@ type Site struct { stats *Stats // Stats // cached state - gridPower float64 // Grid power - pvPower float64 // PV power - auxPower float64 // Aux power - batteryPower float64 // Battery charge power - batteryExcessDC float64 // Battery excess DC charge power (hybrid only) - batterySoc float64 // Battery soc - batteryMode api.BatteryMode // Battery mode (runtime only, not persisted) + gridPower float64 // Grid power + pvPower float64 // PV power + excessDCPower float64 // PV excess DC charge power (hybrid only) + auxPower float64 // Aux power + batteryPower float64 // Battery charge power + batterySoc float64 // Battery soc + batteryMode api.BatteryMode // Battery mode (runtime only, not persisted) publishCache map[string]any // store last published values to avoid unnecessary republishing } @@ -229,7 +229,7 @@ func (site *Site) Boot(log *util.Logger, loadpoints []*Loadpoint, tariffs *tarif } if site.MaxGridSupplyWhileBatteryCharging_ != 0 { - site.log.WARN.Println("`MaxGridSupplyWhileBatteryCharging` is deprecated- use `maxACPower` in battery configuration instead") + site.log.WARN.Println("`MaxGridSupplyWhileBatteryCharging` is deprecated- use `maxACPower` in pv configuration instead") } // revert battery mode on shutdown @@ -476,9 +476,27 @@ func (site *Site) updatePvMeters() { } } + var excessDC float64 + var excessStr string + if m, ok := meter.(api.MaxACPower); ok { + if dc := m.MaxACPower() - power; dc < 0 && power > 0 { + mu.Lock() + site.excessDCPower += dc + mu.Unlock() + + excessDC = dc + excessStr = fmt.Sprintf(" (includes %.0fW excess DC)", dc) + } + } + + if len(site.pvMeters) > 1 { + site.log.DEBUG.Printf("pv %d power: %.0fW"+excessStr, i+1, power) + } + mm[i] = meterMeasurement{ - Power: power, - Energy: energy, + Power: power, + Energy: energy, + ExcessDCPower: excessDC, } wg.Done() @@ -563,7 +581,7 @@ func (site *Site) updateBatteryMeters() error { var mu sync.Mutex site.batteryPower = 0 - site.batteryExcessDC = 0 + site.excessDCPower = 0 site.batterySoc = 0 mm := make([]batteryMeasurement, len(site.batteryMeters)) @@ -579,21 +597,8 @@ func (site *Site) updateBatteryMeters() error { site.batteryPower += power mu.Unlock() - var excessDC float64 - var excessStr string - if m, ok := meter.(api.BatteryMaxACPower); ok { - if dc := power + m.MaxACPower(); dc < 0 { - mu.Lock() - site.batteryExcessDC += dc - mu.Unlock() - - excessDC = dc - excessStr = fmt.Sprintf(" (includes %.0fW excess DC)", dc) - } - } - if len(site.batteryMeters) > 1 { - site.log.DEBUG.Printf("battery %d power: %.0fW"+excessStr, i+1, power) + site.log.DEBUG.Printf("battery %d power: %.0fW", i+1, power) } // battery energy (discharge) @@ -639,12 +644,11 @@ func (site *Site) updateBatteryMeters() error { _, controllable := meter.(api.BatteryController) mm[i] = batteryMeasurement{ - Power: power, - ExcessDCPower: excessDC, - Energy: energy, - Soc: batSoc, - Capacity: capacity, - Controllable: controllable, + Power: power, + Energy: energy, + Soc: batSoc, + Capacity: capacity, + Controllable: controllable, } return nil @@ -670,8 +674,8 @@ func (site *Site) updateBatteryMeters() error { site.publish(keys.BatterySoc, site.batterySoc) var excessStr string - if site.batteryExcessDC > 0 { - excessStr = fmt.Sprintf(" (includes %.0fW excess DC)", site.batteryExcessDC) + if site.excessDCPower > 0 { + excessStr = fmt.Sprintf(" (includes %.0fW excess DC)", site.excessDCPower) } site.log.DEBUG.Printf("battery power: %.0fW"+excessStr, site.batteryPower) @@ -778,7 +782,7 @@ func (site *Site) sitePower(totalChargePower, flexiblePower float64) (float64, b // honour battery priority batteryPower := site.batteryPower - batteryExcessDC := site.batteryExcessDC + excessDCPower := site.excessDCPower // handed to loadpoint var batteryBuffered, batteryStart bool @@ -791,7 +795,7 @@ func (site *Site) sitePower(totalChargePower, flexiblePower float64) (float64, b if site.batterySoc < site.prioritySoc && batteryPower < 0 { site.log.DEBUG.Printf("battery has priority at soc %.0f%% (< %.0f%%)", site.batterySoc, site.prioritySoc) batteryPower = 0 - batteryExcessDC = 0 + excessDCPower = 0 } else { // if battery is above bufferSoc allow using it for charging batteryBuffered = site.bufferSoc > 0 && site.batterySoc > site.bufferSoc @@ -799,7 +803,7 @@ func (site *Site) sitePower(totalChargePower, flexiblePower float64) (float64, b } } - sitePower := site.gridPower + batteryPower - batteryExcessDC + residualPower - site.auxPower - flexiblePower + sitePower := site.gridPower + batteryPower - excessDCPower + residualPower - site.auxPower - flexiblePower // handle priority var flexStr string diff --git a/meter/meter.go b/meter/meter.go index f872c0d10c..000dd14f3a 100644 --- a/meter/meter.go +++ b/meter/meter.go @@ -13,7 +13,7 @@ func init() { registry.AddCtx(api.Custom, NewConfigurableFromConfig) } -//go:generate go run ../cmd/tools/decorate.go -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.BatteryMaxACPower,MaxACPower,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error" +//go:generate go run ../cmd/tools/decorate.go -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" // NewConfigurableFromConfig creates api.Meter from config func NewConfigurableFromConfig(ctx context.Context, other map[string]interface{}) (api.Meter, error) { @@ -109,10 +109,10 @@ func (m *Meter) Decorate( powers func() (float64, float64, float64, error), batterySoc func() (float64, error), batteryCapacity func() float64, - batteryMaxACPower func() float64, + MaxACPower func() float64, setBatteryMode func(api.BatteryMode) error, ) api.Meter { - return decorateMeter(m, totalEnergy, currents, voltages, powers, batterySoc, batteryCapacity, batteryMaxACPower, setBatteryMode) + return decorateMeter(m, totalEnergy, currents, voltages, powers, batterySoc, batteryCapacity, MaxACPower, setBatteryMode) } // CurrentPower implements the api.Meter interface diff --git a/meter/meter_decorators.go b/meter/meter_decorators.go index 1cdc66b6ba..cb62195721 100644 --- a/meter/meter_decorators.go +++ b/meter/meter_decorators.go @@ -6,12 +6,12 @@ import ( "github.com/evcc-io/evcc/api" ) -func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phasePowers func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64, batteryMaxACPower func() float64, batteryController func(api.BatteryMode) error) api.Meter { +func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), phasePowers func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64, maxACPower func() float64, batteryController func(api.BatteryMode) error) api.Meter { switch { - case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return base - case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -22,7 +22,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -33,7 +33,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -48,7 +48,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseVoltages @@ -59,7 +59,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -74,7 +74,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -89,7 +89,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -108,7 +108,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.PhaseCurrents @@ -123,7 +123,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.MeterEnergy @@ -142,7 +142,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.PhaseCurrents @@ -161,7 +161,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.MeterEnergy @@ -184,7 +184,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -195,7 +195,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -210,7 +210,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -225,7 +225,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -244,7 +244,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -259,7 +259,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -278,7 +278,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -297,7 +297,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -320,7 +320,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -339,7 +339,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -362,7 +362,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -385,7 +385,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -412,7 +412,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -427,7 +427,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -446,7 +446,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -465,7 +465,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -488,7 +488,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -507,7 +507,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -530,7 +530,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -553,7 +553,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -580,7 +580,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -603,7 +603,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -630,7 +630,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -657,7 +657,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -688,64 +688,292 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + api.PhaseCurrents + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + api.PhaseCurrents + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.PhaseCurrents + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + api.PhaseCurrents + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + api.PhaseCurrents + api.PhasePowers + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhasePowers: &decorateMeterPhasePowersImpl{ + phasePowers: phasePowers, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + api.PhaseCurrents + api.PhasePowers + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhasePowers: &decorateMeterPhasePowersImpl{ + phasePowers: phasePowers, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.PhaseCurrents + api.PhasePowers + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhasePowers: &decorateMeterPhasePowersImpl{ + phasePowers: phasePowers, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + return &struct { + api.Meter + api.MaxACPower + api.MeterEnergy + api.PhaseCurrents + api.PhasePowers + api.PhaseVoltages + }{ + Meter: base, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, + }, + MeterEnergy: &decorateMeterMeterEnergyImpl{ + meterEnergy: meterEnergy, + }, + PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ + phaseCurrents: phaseCurrents, + }, + PhasePowers: &decorateMeterPhasePowersImpl{ + phasePowers: phasePowers, + }, + PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ + phaseVoltages: phaseVoltages, + }, + } + + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents }{ @@ -753,8 +981,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -764,30 +992,30 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.PhaseVoltages }{ Meter: base, Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseVoltages }{ @@ -795,8 +1023,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -806,11 +1034,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhaseVoltages }{ @@ -818,8 +1046,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -829,11 +1057,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhaseVoltages @@ -842,8 +1070,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -856,11 +1084,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers }{ @@ -868,8 +1096,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -879,11 +1107,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -892,8 +1120,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -906,11 +1134,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers api.PhaseVoltages @@ -919,8 +1147,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -933,11 +1161,11 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -947,8 +1175,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur Battery: &decorateMeterBatteryImpl{ battery: battery, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -964,12 +1192,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower }{ Meter: base, Battery: &decorateMeterBatteryImpl{ @@ -978,17 +1206,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy }{ Meter: base, @@ -998,20 +1226,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents }{ Meter: base, @@ -1021,20 +1249,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents }{ @@ -1045,8 +1273,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1056,12 +1284,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.PhaseVoltages }{ Meter: base, @@ -1071,20 +1299,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseVoltages }{ @@ -1095,8 +1323,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1106,12 +1334,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhaseVoltages }{ @@ -1122,8 +1350,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -1133,12 +1361,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhaseVoltages @@ -1150,8 +1378,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1164,12 +1392,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers }{ @@ -1180,8 +1408,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -1191,12 +1419,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -1208,8 +1436,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1222,12 +1450,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers api.PhaseVoltages @@ -1239,8 +1467,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -1253,12 +1481,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController == nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -1271,8 +1499,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryCapacity: &decorateMeterBatteryCapacityImpl{ batteryCapacity: batteryCapacity, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1288,7 +1516,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1303,7 +1531,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1322,7 +1550,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1341,7 +1569,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1364,7 +1592,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1383,7 +1611,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1406,7 +1634,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1429,7 +1657,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1456,7 +1684,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1479,7 +1707,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1506,7 +1734,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1533,7 +1761,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1564,7 +1792,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1583,7 +1811,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1606,7 +1834,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1629,7 +1857,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1656,7 +1884,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1679,7 +1907,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1706,7 +1934,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1733,7 +1961,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1764,7 +1992,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1791,7 +2019,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery @@ -1822,7 +2050,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1853,7 +2081,7 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower == nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery @@ -1888,12 +2116,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower }{ Meter: base, Battery: &decorateMeterBatteryImpl{ @@ -1902,17 +2130,17 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy }{ Meter: base, @@ -1922,20 +2150,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents }{ Meter: base, @@ -1945,20 +2173,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents }{ @@ -1969,8 +2197,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -1980,12 +2208,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseVoltages }{ Meter: base, @@ -1995,20 +2223,20 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseVoltages }{ @@ -2019,8 +2247,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2030,12 +2258,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhaseVoltages }{ @@ -2046,8 +2274,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2057,12 +2285,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhaseVoltages @@ -2074,8 +2302,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2088,12 +2316,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers }{ @@ -2104,8 +2332,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2115,12 +2343,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -2132,8 +2360,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2146,12 +2374,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers api.PhaseVoltages @@ -2163,8 +2391,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2177,12 +2405,12 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity == nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -2195,8 +2423,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2212,13 +2440,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower }{ Meter: base, Battery: &decorateMeterBatteryImpl{ @@ -2230,18 +2458,18 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy }{ Meter: base, @@ -2254,21 +2482,21 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents }{ Meter: base, @@ -2281,21 +2509,21 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents }{ @@ -2309,8 +2537,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2320,13 +2548,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseVoltages }{ Meter: base, @@ -2339,21 +2567,21 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseVoltages: &decorateMeterPhaseVoltagesImpl{ phaseVoltages: phaseVoltages, }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseVoltages }{ @@ -2367,8 +2595,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2378,13 +2606,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhaseVoltages }{ @@ -2398,8 +2626,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2409,13 +2637,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers == nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhaseVoltages @@ -2430,8 +2658,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2444,13 +2672,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers }{ @@ -2464,8 +2692,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2475,13 +2703,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages == nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -2496,8 +2724,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2510,13 +2738,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy == nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.PhaseCurrents api.PhasePowers api.PhaseVoltages @@ -2531,8 +2759,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, PhaseCurrents: &decorateMeterPhaseCurrentsImpl{ phaseCurrents: phaseCurrents, @@ -2545,13 +2773,13 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur }, } - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryMaxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: + case battery != nil && batteryCapacity != nil && batteryController != nil && maxACPower != nil && meterEnergy != nil && phaseCurrents != nil && phasePowers != nil && phaseVoltages != nil: return &struct { api.Meter api.Battery api.BatteryCapacity api.BatteryController - api.BatteryMaxACPower + api.MaxACPower api.MeterEnergy api.PhaseCurrents api.PhasePowers @@ -2567,8 +2795,8 @@ func decorateMeter(base api.Meter, meterEnergy func() (float64, error), phaseCur BatteryController: &decorateMeterBatteryControllerImpl{ batteryController: batteryController, }, - BatteryMaxACPower: &decorateMeterBatteryMaxACPowerImpl{ - batteryMaxACPower: batteryMaxACPower, + MaxACPower: &decorateMeterMaxACPowerImpl{ + maxACPower: maxACPower, }, MeterEnergy: &decorateMeterMeterEnergyImpl{ meterEnergy: meterEnergy, @@ -2612,12 +2840,12 @@ func (impl *decorateMeterBatteryControllerImpl) SetBatteryMode(p0 api.BatteryMod return impl.batteryController(p0) } -type decorateMeterBatteryMaxACPowerImpl struct { - batteryMaxACPower func() float64 +type decorateMeterMaxACPowerImpl struct { + maxACPower func() float64 } -func (impl *decorateMeterBatteryMaxACPowerImpl) MaxACPower() float64 { - return impl.batteryMaxACPower() +func (impl *decorateMeterMaxACPowerImpl) MaxACPower() float64 { + return impl.maxACPower() } type decorateMeterMeterEnergyImpl struct { diff --git a/templates/definition/meter/fronius-gen24.yaml b/templates/definition/meter/fronius-gen24.yaml index 3fb99873f5..2512968477 100644 --- a/templates/definition/meter/fronius-gen24.yaml +++ b/templates/definition/meter/fronius-gen24.yaml @@ -46,6 +46,7 @@ render: | uri: {{ .host }}:{{ .port }} id: 1 value: 160:2:DCW # mppt 2 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} type: custom @@ -165,5 +166,4 @@ render: | id: 1 value: 124:0:InOutWRte_RvrtTms capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/goodwe-hybrid.yaml b/templates/definition/meter/goodwe-hybrid.yaml index b930d0f90d..387a22265a 100644 --- a/templates/definition/meter/goodwe-hybrid.yaml +++ b/templates/definition/meter/goodwe-hybrid.yaml @@ -75,6 +75,7 @@ render: | type: holding decode: uint32 scale: 0.1 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -175,5 +176,4 @@ render: | type: writemultiple encoding: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/growatt-hybrid-tlxh.yaml b/templates/definition/meter/growatt-hybrid-tlxh.yaml index c341feb171..367ba34c56 100644 --- a/templates/definition/meter/growatt-hybrid-tlxh.yaml +++ b/templates/definition/meter/growatt-hybrid-tlxh.yaml @@ -83,6 +83,7 @@ render: | type: input decode: uint32 scale: 0.1 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -214,5 +215,4 @@ render: | type: writemultiple decode: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/growatt-hybrid.yaml b/templates/definition/meter/growatt-hybrid.yaml index 160db58694..b53a7fc8ef 100644 --- a/templates/definition/meter/growatt-hybrid.yaml +++ b/templates/definition/meter/growatt-hybrid.yaml @@ -72,6 +72,7 @@ render: | type: input decode: uint32 scale: 0.1 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -176,5 +177,4 @@ render: | type: writemultiple decode: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/kostal-plenticore-gen2.yaml b/templates/definition/meter/kostal-plenticore-gen2.yaml index 9d38ee71e0..d315768bfb 100644 --- a/templates/definition/meter/kostal-plenticore-gen2.yaml +++ b/templates/definition/meter/kostal-plenticore-gen2.yaml @@ -59,6 +59,7 @@ render: | {{- include "modbus" . | indent 2 }} value: 103:WH # total yield scale: 0.001 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} type: custom @@ -111,5 +112,4 @@ render: | type: writemultiple encoding: {{ if (eq .endianness "big") }}float32{{ else }}float32s{{ end }} capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/kostal-plenticore.yaml b/templates/definition/meter/kostal-plenticore.yaml index dc924aab09..ec0e631357 100644 --- a/templates/definition/meter/kostal-plenticore.yaml +++ b/templates/definition/meter/kostal-plenticore.yaml @@ -65,6 +65,7 @@ render: | {{- include "modbus" . | indent 2 }} value: 103:WH # total yield scale: 0.001 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} type: custom @@ -87,7 +88,6 @@ render: | type: writemultiple encoding: {{ if (eq .endianness "big") }}float32{{ else }}float32s{{ end }} capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W minsoc: {{ .minsoc }} # % maxsoc: {{ .maxsoc }} # % {{- end }} diff --git a/templates/definition/meter/sma-hybrid.yaml b/templates/definition/meter/sma-hybrid.yaml index d1f9340537..cb23c740a2 100644 --- a/templates/definition/meter/sma-hybrid.yaml +++ b/templates/definition/meter/sma-hybrid.yaml @@ -88,6 +88,7 @@ render: | type: holding decode: uint64nan scale: 0.001 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -184,5 +185,4 @@ render: | type: writemultiple decode: uint32 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/solaredge-hybrid.yaml b/templates/definition/meter/solaredge-hybrid.yaml index 67762eacaa..92ae42814f 100644 --- a/templates/definition/meter/solaredge-hybrid.yaml +++ b/templates/definition/meter/solaredge-hybrid.yaml @@ -114,6 +114,7 @@ render: | address: 62836 # Battery 1 Instantaneous Power type: holding decode: float32nans + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -207,5 +208,4 @@ render: | type: writemultiple encoding: float32s capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/solax.yaml b/templates/definition/meter/solax.yaml index f722a94bbc..a099931649 100644 --- a/templates/definition/meter/solax.yaml +++ b/templates/definition/meter/solax.yaml @@ -61,6 +61,7 @@ render: | type: input decode: uint32s scale: 0.1 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} source: modbus @@ -136,5 +137,4 @@ render: | type: writesingle decode: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/solis-hybrid-s.yaml b/templates/definition/meter/solis-hybrid-s.yaml index 625d9d68f2..e3e61dc65b 100644 --- a/templates/definition/meter/solis-hybrid-s.yaml +++ b/templates/definition/meter/solis-hybrid-s.yaml @@ -93,6 +93,7 @@ render: | address: 33029 # Total energy generation type: input decode: uint32 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -130,5 +131,4 @@ render: | type: input decode: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/solis-hybrid.yaml b/templates/definition/meter/solis-hybrid.yaml index 3f3dfb9fb4..237230f435 100644 --- a/templates/definition/meter/solis-hybrid.yaml +++ b/templates/definition/meter/solis-hybrid.yaml @@ -93,6 +93,7 @@ render: | address: 33029 # Total energy generation type: input decode: uint32 + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "battery" }} power: @@ -118,5 +119,4 @@ render: | type: input decode: uint16 capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/templates/definition/meter/sunspec-hybrid.yaml b/templates/definition/meter/sunspec-hybrid.yaml index 8a0ca891dc..8039862a5c 100644 --- a/templates/definition/meter/sunspec-hybrid.yaml +++ b/templates/definition/meter/sunspec-hybrid.yaml @@ -79,6 +79,7 @@ render: | value: - 203:WphC - 213:WphC + maxacpower: {{ .maxacpower }} # W {{- end }} {{- if eq .usage "pv" }} power: @@ -125,5 +126,4 @@ render: | - 124:ChaState - 802:SoC capacity: {{ .capacity }} # kWh - maxacpower: {{ .maxacpower }} # W {{- end }} diff --git a/util/templates/defaults.yaml b/util/templates/defaults.yaml index e12793bac1..3fbe6676a0 100644 --- a/util/templates/defaults.yaml +++ b/util/templates/defaults.yaml @@ -105,7 +105,7 @@ params: default: 0 example: 5000 type: float - usages: ["battery"] + usages: ["pv"] advanced: true - name: vin description: