diff --git a/hems/fnn/fnn.go b/hems/fnn/fnn.go index 35c15f75c..c58b88c48 100644 --- a/hems/fnn/fnn.go +++ b/hems/fnn/fnn.go @@ -58,16 +58,19 @@ func NewFromConfig(ctx context.Context, other map[string]any, site site.API) (*F return nil, err } - maxDimPower := math.Abs(cc.MaxDimPower) - if w4G != nil && maxDimPower == 0 { - return nil, errors.New("cannot have w4 without power limit") - } - maxCurtailPower := math.Abs(cc.MaxCurtailPower) if cc.MaxPower > 0 { maxCurtailPower = cc.MaxPower } + return NewFnn(site, math.Abs(cc.MaxDimPower), maxCurtailPower, w3G, s1G, s2G, w4G, cc.Interval) +} + +func NewFnn(site site.API, maxDimPower, maxCurtailPower float64, w3G, s1G, s2G, w4G func() (bool, error), interval time.Duration) (*Fnn, error) { + if w4G != nil && maxDimPower == 0 { + return nil, errors.New("cannot have w4 without power limit") + } + return &Fnn{ log: util.NewLogger("fnn"), site: site, @@ -77,7 +80,7 @@ func NewFromConfig(ctx context.Context, other map[string]any, site site.API) (*F s2: s2G, w3: w3G, w4: w4G, - interval: cc.Interval, + interval: interval, }, nil } diff --git a/hems/fnn/fnn_test.go b/hems/fnn/fnn_test.go new file mode 100644 index 000000000..7a835291a --- /dev/null +++ b/hems/fnn/fnn_test.go @@ -0,0 +1,18 @@ +package fnn + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestFnn(t *testing.T) { + // TODO add site + fnn, err := NewFnn(nil, 1e3, 1e3, nil, nil, nil, func() (bool, error) { + return true, nil + }, 0) + require.NoError(t, err) + require.Nil(t, fnn.Curtailed()) + // require.NoError(t, fnn.runDim()) + // require.Equal(t, new(true), fnn.Dimmed()) +}