diff --git a/vehicle/nissan/api.go b/vehicle/nissan/api.go index 5c0b77a48..abee3dacc 100644 --- a/vehicle/nissan/api.go +++ b/vehicle/nissan/api.go @@ -100,8 +100,14 @@ func (v *API) Battery() (Response, error) { err = api.ErrTimeout } } else { - // wait for refresh, irrespective of a previous error - err = api.ErrMustRetry + if len(res.Errors) > 0 { + // extract error code + e := res.Errors[0] + err = fmt.Errorf("%s: %s", e.Code, e.Detail) + } else { + // wait for refresh, irrespective of a previous error + err = api.ErrMustRetry + } } return res, err diff --git a/vehicle/nissan/types.go b/vehicle/nissan/types.go index 51c4fdc87..30cf2559a 100644 --- a/vehicle/nissan/types.go +++ b/vehicle/nissan/types.go @@ -65,6 +65,11 @@ type Response struct { Type, ID string // battery refresh Attributes attributes `json:"attributes"` } `json:"data"` + Errors []Error +} + +type Error struct { + Status, Code, Detail string } type attributes struct {