diff --git a/vehicle/volvo/connected/provider.go b/vehicle/volvo/connected/provider.go index e9fe25bdb..a11e3e303 100644 --- a/vehicle/volvo/connected/provider.go +++ b/vehicle/volvo/connected/provider.go @@ -1,6 +1,7 @@ package connected import ( + "fmt" "time" "github.com/evcc-io/evcc/api" @@ -34,25 +35,25 @@ func (v *Provider) Soc() (float64, error) { // Range implements the api.ChargeState interface func (v *Provider) Status() (api.ChargeStatus, error) { - status := api.StatusA // disconnected - res, err := v.statusG() if err != nil { - return status, nil + return api.StatusNone, err } - switch res.ChargingConnectionStatus.Value { - case "DISCONNECTED": - status = api.StatusA - case "CONNECTED", "FAULT": + status := api.StatusA // disconnected + + switch s := res.ChargerConnectionStatus.Value; s { + case "CONNECTED": status = api.StatusB + case "FAULT": + return status, fmt.Errorf("invalid status: %s", s) } if res.ChargingStatus.Value == "CHARGING" { status = api.StatusC } - return status, err + return status, nil } var _ api.VehicleRange = (*Provider)(nil) diff --git a/vehicle/volvo/connected/types.go b/vehicle/volvo/connected/types.go index 27714549e..16eefb056 100644 --- a/vehicle/volvo/connected/types.go +++ b/vehicle/volvo/connected/types.go @@ -15,7 +15,7 @@ type EnergyState struct { Unit string Timestamp time.Time } - ChargingConnectionStatus struct { + ChargerConnectionStatus struct { Status string Value string Timestamp time.Time