Skoda: respect home region (#933)

This commit is contained in:
andig 2021-04-27 20:42:11 +02:00 • committed by GitHub
parent 8420445d90
commit 0dc8e25d2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 10 deletions

View file

@ -69,8 +69,10 @@ func NewAudiFromConfig(other map[string]interface{}) (api.Vehicle, error) {
}
}
if err = api.HomeRegion(strings.ToUpper(cc.VIN)); err == nil {
v.Provider = vw.NewProvider(api, strings.ToUpper(cc.VIN), cc.Cache)
if err == nil {
if err = api.HomeRegion(strings.ToUpper(cc.VIN)); err == nil {
v.Provider = vw.NewProvider(api, strings.ToUpper(cc.VIN), cc.Cache)
}
}
return v, err

View file

@ -1,6 +1,7 @@
package vehicle
import (
"fmt"
"net/url"
"strings"
"time"
@ -53,17 +54,23 @@ func NewSkodaFromConfig(other map[string]interface{}) (api.Vehicle, error) {
})
err := identity.Login(query, cc.User, cc.Password)
if err == nil {
api := vw.NewAPI(log, identity, "VW", "CZ")
if err != nil {
return v, fmt.Errorf("login failed: %w", err)
}
if cc.VIN == "" {
cc.VIN, err = findVehicle(api.Vehicles())
if err == nil {
log.DEBUG.Printf("found vehicle: %v", cc.VIN)
}
api := vw.NewAPI(log, identity, "VW", "CZ")
if cc.VIN == "" {
cc.VIN, err = findVehicle(api.Vehicles())
if err == nil {
log.DEBUG.Printf("found vehicle: %v", cc.VIN)
}
}
v.Provider = vw.NewProvider(api, strings.ToUpper(cc.VIN), cc.Cache)
if err == nil {
if err = api.HomeRegion(strings.ToUpper(cc.VIN)); err == nil {
v.Provider = vw.NewProvider(api, strings.ToUpper(cc.VIN), cc.Cache)
}
}
return v, err

View file

@ -1,6 +1,7 @@
package vw
import (
"encoding/json"
"fmt"
"net/http"
"strings"
@ -93,6 +94,14 @@ func (v *API) HomeRegion(vin string) error {
return err
}
// RolesRights updates the home region for the given vehicle
func (v *API) RolesRights(vin string) (string, error) {
var res json.RawMessage
uri := fmt.Sprintf("%s/rolesrights/operationlist/v3/vehicles/%s", RegionAPI, vin)
err := v.getJSON(uri, &res)
return string(res), err
}
// ChargerResponse is the /bs/batterycharge/v1/%s/%s/vehicles/%s/charger api
type ChargerResponse struct {
Charger struct {