Ford: fix generating token for templates

This commit is contained in:
andig 2024-05-31 13:17:09 +02:00
parent 634c655ff9
commit 8a51007265
2 changed files with 10 additions and 4 deletions

View file

@ -6,6 +6,7 @@ import (
"strings"
"github.com/evcc-io/evcc/util/config"
"github.com/evcc-io/evcc/util/templates"
"github.com/samber/lo"
"github.com/spf13/cobra"
"golang.org/x/oauth2"
@ -51,12 +52,16 @@ func runToken(cmd *cobra.Command, args []string) {
var token *oauth2.Token
var err error
typ := strings.ToLower(vehicleConf.Type)
if typ == "template" {
typ = strings.ToLower(vehicleConf.Other["template"].(string))
if strings.ToLower(vehicleConf.Type) == "template" {
instance, err := templates.RenderInstance(templates.Vehicle, vehicleConf.Other)
if err != nil {
log.FATAL.Fatalf("rendering template failed: %v", err)
}
vehicleConf.Type = instance.Type
vehicleConf.Other = instance.Other
}
switch typ {
switch typ := strings.ToLower(vehicleConf.Type); typ {
case "mercedes":
token, err = mercedesToken()
case "ford", "ford-connect":

View file

@ -16,6 +16,7 @@ func fordConnectToken(conf config.Named) (*oauth2.Token, error) {
var cc struct {
Credentials vehicle.ClientCredentials
Tokens vehicle.Tokens
Other map[string]interface{} `mapstructure:",remain"`
}
if err := util.DecodeOther(conf.Other, &cc); err != nil {