Add bluelink vehicle range api (#632)
This commit is contained in:
parent
4a434767a4
commit
9247a3be79
1 changed files with 26 additions and 2 deletions
|
|
@ -81,6 +81,7 @@ type response struct {
|
|||
Value, Unit int
|
||||
}
|
||||
}
|
||||
DrvDistance []drvDistance
|
||||
}
|
||||
Vehicles []struct {
|
||||
VehicleID string
|
||||
|
|
@ -88,6 +89,14 @@ type response struct {
|
|||
}
|
||||
}
|
||||
|
||||
type drvDistance struct {
|
||||
RangeByFuel struct {
|
||||
EvModeRange struct {
|
||||
Value int
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// New creates a new BlueLink API
|
||||
func New(log *util.Logger, user, password string, cache time.Duration, config Config) (*API, error) {
|
||||
if err := mergo.Merge(&config, defaults); err != nil {
|
||||
|
|
@ -336,7 +345,7 @@ func (v *API) statusAPI() (interface{}, error) {
|
|||
return res, err
|
||||
}
|
||||
|
||||
// ChargeState implements the Vehicle.ChargeState interface
|
||||
// ChargeState implements the api.ChargeState interface
|
||||
func (v *API) ChargeState() (float64, error) {
|
||||
res, err := v.apiG()
|
||||
|
||||
|
|
@ -347,7 +356,7 @@ func (v *API) ChargeState() (float64, error) {
|
|||
return 0, err
|
||||
}
|
||||
|
||||
// FinishTime implements the Vehicle.ChargeFinishTimer interface
|
||||
// FinishTime implements the api.ChargeFinishTimer interface
|
||||
func (v *API) FinishTime() (time.Time, error) {
|
||||
res, err := v.apiG()
|
||||
|
||||
|
|
@ -363,3 +372,18 @@ func (v *API) FinishTime() (time.Time, error) {
|
|||
|
||||
return time.Time{}, err
|
||||
}
|
||||
|
||||
// Range implements the api.VehicleRange interface
|
||||
func (v *API) Range() (int64, error) {
|
||||
res, err := v.apiG()
|
||||
|
||||
if res, ok := res.(response); err == nil && ok {
|
||||
if dist := res.ResMsg.EvStatus.DrvDistance; len(dist) == 1 {
|
||||
return int64(dist[0].RangeByFuel.EvModeRange.Value), nil
|
||||
}
|
||||
|
||||
return 0, api.ErrNotAvailable
|
||||
}
|
||||
|
||||
return 0, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue