From 8327ddbb2188a780fa67c990c2ab5017d94dc5d5 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 4 May 2024 10:13:31 +0200 Subject: [PATCH] Renault: fix odometer not available --- vehicle/renault/kamereon/api.go | 2 +- vehicle/renault/kamereon/types.go | 2 +- vehicle/renault/provider.go | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/vehicle/renault/kamereon/api.go b/vehicle/renault/kamereon/api.go index 226698f6a..a7fdef270 100644 --- a/vehicle/renault/kamereon/api.go +++ b/vehicle/renault/kamereon/api.go @@ -118,7 +118,7 @@ func (v *API) Hvac(accountID string, vin string) (Response, error) { // Cockpit provides cockpit api response func (v *API) Cockpit(accountID string, vin string) (Response, error) { - uri := fmt.Sprintf("%s/commerce/v1/accounts/%s/kamereon/kca/car-adapter/v2/cars/%s/cockpit", v.keys.Target, accountID, vin) + uri := fmt.Sprintf("%s/commerce/v1/accounts/%s/kamereon/kca/car-adapter/v1/cars/%s/cockpit", v.keys.Target, accountID, vin) return v.request(uri, nil) } diff --git a/vehicle/renault/kamereon/types.go b/vehicle/renault/kamereon/types.go index 9d6b64b80..59762efc8 100644 --- a/vehicle/renault/kamereon/types.go +++ b/vehicle/renault/kamereon/types.go @@ -64,7 +64,7 @@ type attributes struct { ExternalTemperature float64 `json:"externalTemperature"` HvacStatus string `json:"hvacStatus"` // cockpit - TotalMileage float64 `json:"totalMileage"` + TotalMileage *float64 `json:"totalMileage"` // position Latitude float64 `json:"gpsLatitude"` Longitude float64 `json:"gpsLongitude"` diff --git a/vehicle/renault/provider.go b/vehicle/renault/provider.go index 45fd7e43c..ad0a42682 100644 --- a/vehicle/renault/provider.go +++ b/vehicle/renault/provider.go @@ -103,12 +103,15 @@ var _ api.VehicleOdometer = (*Provider)(nil) // Odometer implements the api.VehicleOdometer interface func (v *Provider) Odometer() (float64, error) { res, err := v.cockpitG() - - if err == nil { - return res.Data.Attributes.TotalMileage, nil + if err != nil { + return 0, err } - return 0, err + if res.Data.Attributes.TotalMileage != nil { + return *res.Data.Attributes.TotalMileage, nil + } + + return 0, api.ErrNotAvailable } var _ api.VehicleFinishTimer = (*Provider)(nil)