diff --git a/vehicle/bmw/api.go b/vehicle/bmw/api.go index ea7b0ca09..7df5de7ca 100644 --- a/vehicle/bmw/api.go +++ b/vehicle/bmw/api.go @@ -55,11 +55,13 @@ func (v *API) Status(vin string) (VehicleStatus, error) { var res VehicleStatus uri := fmt.Sprintf("%s/eadrax-vcs/v4/vehicles/state?apptimezone=120&appDateTime=%d", regions[v.region].CocoApiURI, time.Now().UnixMilli()) - req, err := request.New(http.MethodGet, uri, nil, map[string]string{ + req, _ := request.New(http.MethodGet, uri, nil, map[string]string{ "bmw-vin": vin, }) - if err == nil { - err = v.DoJSON(req, &res) + + err := v.DoJSON(req, &res) + if err != nil && res.StatusCode != 0 { + err = fmt.Errorf("%d: %s (%w)", res.StatusCode, res.Message, err) } return res, err diff --git a/vehicle/bmw/types.go b/vehicle/bmw/types.go index ddd54fd0c..6d2f7aa7c 100644 --- a/vehicle/bmw/types.go +++ b/vehicle/bmw/types.go @@ -7,7 +7,9 @@ type Vehicle struct { } type VehicleStatus struct { - State struct { + StatusCode int + Message string + State struct { CurrentMileage int64 Range int64 ElectricChargingState struct {