diff --git a/meter/homeassistant.go b/meter/homeassistant.go index 6466e3e99..de884c4a3 100644 --- a/meter/homeassistant.go +++ b/meter/homeassistant.go @@ -1,7 +1,5 @@ package meter -//go:generate go tool decorate -f decorateHomeAssistant -b *HomeAssistant -r 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.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.BatterySocLimiter,GetSocLimits,func() (float64, float64)" -t "api.BatteryPowerLimiter,GetPowerLimits,func() (float64, float64)" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error" -t "api.MaxACPowerGetter,MaxACPower,func() float64" - import ( "errors" "fmt" @@ -11,12 +9,6 @@ import ( "github.com/evcc-io/evcc/util/homeassistant" ) -// HomeAssistant meter implementation -type HomeAssistant struct { - conn *homeassistant.Connection - power string -} - func init() { registry.Add("homeassistant", NewHomeAssistantFromConfig) } @@ -31,6 +23,7 @@ func NewHomeAssistantFromConfig(other map[string]any) (api.Meter, error) { Energy string Currents []string Voltages []string + Powers []string Soc string // pv @@ -62,48 +55,51 @@ func NewHomeAssistantFromConfig(other map[string]any) (api.Meter, error) { return nil, err } - m := &HomeAssistant{ - conn: conn, - power: cc.Power, - } + m, _ := NewConfigurable(func() (float64, error) { + return conn.GetFloatState(cc.Power) + }) // decorators for optional interfaces - var energy func() (float64, error) - var currents, voltages func() (float64, float64, float64, error) - var soc func() (float64, error) + var energyG func() (float64, error) + var currentsG, voltagesG, powersG func() (float64, float64, float64, error) if cc.Energy != "" { - energy = func() (float64, error) { return conn.GetFloatState(cc.Energy) } + energyG = func() (float64, error) { return conn.GetFloatState(cc.Energy) } } // phase currents (optional) if phases, err := homeassistant.ValidatePhaseEntities(cc.Currents); len(phases) > 0 { - currents = func() (float64, float64, float64, error) { return conn.GetPhaseFloatStates(phases) } + currentsG = func() (float64, float64, float64, error) { return conn.GetPhaseFloatStates(phases) } } else if err != nil { return nil, fmt.Errorf("currents: %w", err) } // phase voltages (optional) if phases, err := homeassistant.ValidatePhaseEntities(cc.Voltages); len(phases) > 0 { - voltages = func() (float64, float64, float64, error) { return conn.GetPhaseFloatStates(phases) } + voltagesG = func() (float64, float64, float64, error) { return conn.GetPhaseFloatStates(phases) } } else if err != nil { return nil, fmt.Errorf("voltages: %w", err) } - if cc.Soc != "" { - soc = func() (float64, error) { return conn.GetFloatState(cc.Soc) } + // phase powers (optional) + if phases, err := homeassistant.ValidatePhaseEntities(cc.Powers); len(phases) > 0 { + powersG = func() (float64, float64, float64, error) { return conn.GetPhaseFloatStates(phases) } + } else if err != nil { + return nil, fmt.Errorf("powers: %w", err) } - return decorateHomeAssistant(m, - energy, currents, voltages, soc, - cc.batteryCapacity.Decorator(), cc.batterySocLimits.Decorator(), cc.batteryPowerLimits.Decorator(), nil, - cc.pvMaxACPower.Decorator(), + if cc.Soc != "" { + socG := func() (float64, error) { return conn.GetFloatState(cc.Soc) } + + return m.DecorateBattery( + energyG, + socG, cc.batteryCapacity.Decorator(), + cc.batterySocLimits.Decorator(), cc.batteryPowerLimits.Decorator(), + nil, + ), nil + } + + return m.Decorate( + energyG, currentsG, voltagesG, powersG, cc.pvMaxACPower.Decorator(), ), nil } - -var _ api.Meter = (*HomeAssistant)(nil) - -// CurrentPower implements the api.Meter interface -func (m *HomeAssistant) CurrentPower() (float64, error) { - return m.conn.GetFloatState(m.power) -} diff --git a/meter/homeassistant_decorators.go b/meter/homeassistant_decorators.go deleted file mode 100644 index e023562a2..000000000 --- a/meter/homeassistant_decorators.go +++ /dev/null @@ -1,7233 +0,0 @@ -package meter - -// Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT. - -import ( - "github.com/evcc-io/evcc/api" -) - -func decorateHomeAssistant(base *HomeAssistant, meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), battery func() (float64, error), batteryCapacity func() float64, batterySocLimiter func() (float64, float64), batteryPowerLimiter func() (float64, float64), batteryController func(api.BatteryMode) error, maxACPowerGetter func() float64) api.Meter { - switch { - case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return base - - case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MeterEnergy - }{ - HomeAssistant: base, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.PhaseCurrents - }{ - HomeAssistant: base, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.PhaseVoltages - }{ - HomeAssistant: base, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter == nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController == nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter == nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter == nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity == nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages == nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents == nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy == nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - - case battery != nil && batteryCapacity != nil && batteryController != nil && batteryPowerLimiter != nil && batterySocLimiter != nil && maxACPowerGetter != nil && meterEnergy != nil && phaseCurrents != nil && phaseVoltages != nil: - return &struct { - *HomeAssistant - api.Battery - api.BatteryCapacity - api.BatteryController - api.BatteryPowerLimiter - api.BatterySocLimiter - api.MaxACPowerGetter - api.MeterEnergy - api.PhaseCurrents - api.PhaseVoltages - }{ - HomeAssistant: base, - Battery: &decorateHomeAssistantBatteryImpl{ - battery: battery, - }, - BatteryCapacity: &decorateHomeAssistantBatteryCapacityImpl{ - batteryCapacity: batteryCapacity, - }, - BatteryController: &decorateHomeAssistantBatteryControllerImpl{ - batteryController: batteryController, - }, - BatteryPowerLimiter: &decorateHomeAssistantBatteryPowerLimiterImpl{ - batteryPowerLimiter: batteryPowerLimiter, - }, - BatterySocLimiter: &decorateHomeAssistantBatterySocLimiterImpl{ - batterySocLimiter: batterySocLimiter, - }, - MaxACPowerGetter: &decorateHomeAssistantMaxACPowerGetterImpl{ - maxACPowerGetter: maxACPowerGetter, - }, - MeterEnergy: &decorateHomeAssistantMeterEnergyImpl{ - meterEnergy: meterEnergy, - }, - PhaseCurrents: &decorateHomeAssistantPhaseCurrentsImpl{ - phaseCurrents: phaseCurrents, - }, - PhaseVoltages: &decorateHomeAssistantPhaseVoltagesImpl{ - phaseVoltages: phaseVoltages, - }, - } - } - - return nil -} - -type decorateHomeAssistantBatteryImpl struct { - battery func() (float64, error) -} - -func (impl *decorateHomeAssistantBatteryImpl) Soc() (float64, error) { - return impl.battery() -} - -type decorateHomeAssistantBatteryCapacityImpl struct { - batteryCapacity func() float64 -} - -func (impl *decorateHomeAssistantBatteryCapacityImpl) Capacity() float64 { - return impl.batteryCapacity() -} - -type decorateHomeAssistantBatteryControllerImpl struct { - batteryController func(api.BatteryMode) error -} - -func (impl *decorateHomeAssistantBatteryControllerImpl) SetBatteryMode(p0 api.BatteryMode) error { - return impl.batteryController(p0) -} - -type decorateHomeAssistantBatteryPowerLimiterImpl struct { - batteryPowerLimiter func() (float64, float64) -} - -func (impl *decorateHomeAssistantBatteryPowerLimiterImpl) GetPowerLimits() (float64, float64) { - return impl.batteryPowerLimiter() -} - -type decorateHomeAssistantBatterySocLimiterImpl struct { - batterySocLimiter func() (float64, float64) -} - -func (impl *decorateHomeAssistantBatterySocLimiterImpl) GetSocLimits() (float64, float64) { - return impl.batterySocLimiter() -} - -type decorateHomeAssistantMaxACPowerGetterImpl struct { - maxACPowerGetter func() float64 -} - -func (impl *decorateHomeAssistantMaxACPowerGetterImpl) MaxACPower() float64 { - return impl.maxACPowerGetter() -} - -type decorateHomeAssistantMeterEnergyImpl struct { - meterEnergy func() (float64, error) -} - -func (impl *decorateHomeAssistantMeterEnergyImpl) TotalEnergy() (float64, error) { - return impl.meterEnergy() -} - -type decorateHomeAssistantPhaseCurrentsImpl struct { - phaseCurrents func() (float64, float64, float64, error) -} - -func (impl *decorateHomeAssistantPhaseCurrentsImpl) Currents() (float64, float64, float64, error) { - return impl.phaseCurrents() -} - -type decorateHomeAssistantPhaseVoltagesImpl struct { - phaseVoltages func() (float64, float64, float64, error) -} - -func (impl *decorateHomeAssistantPhaseVoltagesImpl) Voltages() (float64, float64, float64, error) { - return impl.phaseVoltages() -}