Skoda: fix retrieving list of vehicles (#9698)
This commit is contained in:
parent
5b994e729e
commit
c3ceaab8f8
3 changed files with 37 additions and 12 deletions
|
|
@ -14,6 +14,16 @@ type embed struct {
|
|||
OnIdentify api.ActionConfig `mapstructure:"onIdentify"`
|
||||
}
|
||||
|
||||
// Title implements the api.Vehicle interface
|
||||
func (v *embed) fromVehicle(title string, capacity float64) {
|
||||
if v.Title_ == "" {
|
||||
v.Title_ = title
|
||||
}
|
||||
if v.Capacity_ == 0 {
|
||||
v.Capacity_ = capacity
|
||||
}
|
||||
}
|
||||
|
||||
// Title implements the api.Vehicle interface
|
||||
func (v *embed) Title() string {
|
||||
return v.Title_
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ func NewEnyaqFromConfig(other map[string]interface{}) (api.Vehicle, error) {
|
|||
var err error
|
||||
log := util.NewLogger("enyaq").Redact(cc.User, cc.Password, cc.VIN)
|
||||
|
||||
// use Skoda credentials to resolve list of vehicles
|
||||
// use Skoda api to resolve list of vehicles
|
||||
ts, err := service.TokenRefreshServiceTokenSource(log, skoda.TRSParams, skoda.AuthParams, cc.User, cc.Password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -66,11 +66,8 @@ func NewEnyaqFromConfig(other map[string]interface{}) (api.Vehicle, error) {
|
|||
},
|
||||
)
|
||||
|
||||
if v.Title_ == "" {
|
||||
v.Title_ = vehicle.Name
|
||||
}
|
||||
if v.Capacity_ == 0 {
|
||||
v.Capacity_ = float64(vehicle.Specification.Battery.CapacityInKWh)
|
||||
if err == nil {
|
||||
v.fromVehicle(vehicle.Name, float64(vehicle.Specification.Battery.CapacityInKWh))
|
||||
}
|
||||
|
||||
// use Connect credentials to build provider
|
||||
|
|
|
|||
|
|
@ -51,20 +51,38 @@ func NewSkodaFromConfig(other map[string]interface{}) (api.Vehicle, error) {
|
|||
|
||||
log := util.NewLogger("skoda").Redact(cc.User, cc.Password, cc.VIN)
|
||||
|
||||
trs := tokenrefreshservice.New(log, skoda.TRSParams)
|
||||
ts, err := service.MbbTokenSource(log, trs, skoda.AuthClientID, skoda.AuthParams, cc.User, cc.Password)
|
||||
// use Skoda api to resolve list of vehicles
|
||||
ts, err := service.TokenRefreshServiceTokenSource(log, skoda.TRSParams, skoda.AuthParams, cc.User, cc.Password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
api := vw.NewAPI(log, ts, skoda.Brand, skoda.Country)
|
||||
api := skoda.NewAPI(log, ts)
|
||||
api.Client.Timeout = cc.Timeout
|
||||
|
||||
cc.VIN, err = ensureVehicle(cc.VIN, api.Vehicles)
|
||||
vehicle, err := ensureVehicleEx(
|
||||
cc.VIN, api.Vehicles,
|
||||
func(v skoda.Vehicle) string {
|
||||
return v.VIN
|
||||
},
|
||||
)
|
||||
|
||||
if err == nil {
|
||||
if err = api.HomeRegion(cc.VIN); err == nil {
|
||||
v.Provider = vw.NewProvider(api, cc.VIN, cc.Cache)
|
||||
v.fromVehicle(vehicle.Name, float64(vehicle.Specification.Battery.CapacityInKWh))
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
trs := tokenrefreshservice.New(log, skoda.TRSParams)
|
||||
ts, err := service.MbbTokenSource(log, trs, skoda.AuthClientID, skoda.AuthParams, cc.User, cc.Password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
api := vw.NewAPI(log, ts, skoda.Brand, skoda.Country)
|
||||
api.Client.Timeout = cc.Timeout
|
||||
|
||||
if err = api.HomeRegion(vehicle.VIN); err == nil {
|
||||
v.Provider = vw.NewProvider(api, vehicle.VIN, cc.Cache)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue