Cardata: fix charge status (#26235)

This commit is contained in:
mfuchs1984 2025-12-29 14:04:35 +01:00 • committed by GitHub
parent 84eacb1672
commit cef1c78e86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -190,15 +190,18 @@ func (v *Provider) Status() (api.ChargeStatus, error) {
status = api.StatusB
}
hv, err := v.String("vehicle.drivetrain.electricEngine.charging.hvStatus")
if err != nil || hv == "" || hv == "INVALID" {
hv, err = v.String("vehicle.drivetrain.electricEngine.charging.status")
// evaluate status first, since it's usually available through
// mqtt, while hvStatus might only be available through rest
// (https://github.com/evcc-io/evcc/pull/26235)
cs, err := v.String("vehicle.drivetrain.electricEngine.charging.status")
if err != nil || cs == "" {
cs, err = v.String("vehicle.drivetrain.electricEngine.charging.hvStatus")
}
if slices.Contains([]string{
"CHARGING", // vehicle.drivetrain.electricEngine.charging.hvStatus
"CHARGINGACTIVE", // vehicle.drivetrain.electricEngine.charging.status
}, hv) {
"CHARGING", // vehicle.drivetrain.electricEngine.charging.hvStatus
}, cs) {
return api.StatusC, nil
}