evcc-io/meter/config.go
2020-07-29 13:42:09 +02:00

26 lines
593 B
Go

package meter
import (
"fmt"
"strings"
"github.com/andig/evcc/api"
)
// NewFromConfig creates meter from configuration
func NewFromConfig(typ string, other map[string]interface{}) (meter api.Meter, err error) {
switch strings.ToLower(typ) {
case "default", "configurable":
meter, err = NewConfigurableFromConfig(other)
case "modbus":
meter, err = NewModbusFromConfig(other)
case "sma":
meter, err = NewSMAFromConfig(other)
case "tesla", "powerwall":
meter, err = NewTeslaFromConfig(other)
default:
err = fmt.Errorf("invalid meter type: %s", typ)
}
return meter, err
}