From af130aac3751ec407d855a2c997aa690d4ba1d76 Mon Sep 17 00:00:00 2001 From: andig Date: Thu, 18 Jun 2026 08:54:26 +0200 Subject: [PATCH] chore: add maxacpower (#30981) --- meter/rct.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meter/rct.go b/meter/rct.go index 1b58a4c41..2fed56691 100644 --- a/meter/rct.go +++ b/meter/rct.go @@ -41,6 +41,7 @@ func NewRCTFromConfig(ctx context.Context, other map[string]any) (api.Meter, err cc := struct { batterySocLimits `mapstructure:",squash"` batteryPowerLimits `mapstructure:",squash"` + pvMaxACPower `mapstructure:",squash"` Uri, Usage string Capacity float64 Capacity2 float64 @@ -66,11 +67,11 @@ func NewRCTFromConfig(ctx context.Context, other map[string]any) (api.Meter, err return nil, errors.New("missing usage") } - return NewRCT(ctx, cc.Uri, cc.Usage, cc.batterySocLimits, cc.batteryPowerLimits, cc.Cache, cc.ExternalPower, cc.Capacity, cc.Capacity2) + return NewRCT(ctx, cc.Uri, cc.Usage, cc.batterySocLimits, cc.batteryPowerLimits, cc.Cache, cc.ExternalPower, cc.Capacity, cc.Capacity2, cc.pvMaxACPower.Decorator()) } // NewRCT creates an RCT meter -func NewRCT(ctx context.Context, uri, usage string, batterySocLimits batterySocLimits, batteryPowerLimits batteryPowerLimits, cache time.Duration, externalPower bool, capacity, capacity2 float64) (api.Meter, error) { +func NewRCT(ctx context.Context, uri, usage string, batterySocLimits batterySocLimits, batteryPowerLimits batteryPowerLimits, cache time.Duration, externalPower bool, capacity, capacity2 float64, maxACPower func() float64) (api.Meter, error) { log := util.NewLogger("rct") // re-use connections @@ -118,6 +119,7 @@ func NewRCT(ctx context.Context, uri, usage string, batterySocLimits batterySocL } implement.Has(m, implement.Curtailer(curtail, curtailed)) + implement.May(m, implement.MaxACPowerGetter(maxACPower)) } if usage == "battery" {