From bbb3d940f83c2c21d67a7d1fba776fd36f1144dd Mon Sep 17 00:00:00 2001 From: Andreas Linde Date: Sun, 21 Mar 2021 12:04:26 +0100 Subject: [PATCH] Added charging state --- internal/vehicle/porsche.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/internal/vehicle/porsche.go b/internal/vehicle/porsche.go index 24a87c167..ee71d5feb 100644 --- a/internal/vehicle/porsche.go +++ b/internal/vehicle/porsche.go @@ -333,6 +333,26 @@ func (v *Porsche) SoC() (float64, error) { return 0, err } +// Status implements the VehicleStatus interface +func (v *Porsche) Status() (api.ChargeStatus, error) { + res, err := v.chargerG() + if res, ok := res.(porscheEmobilityResponse); err == nil && ok { + switch res.BatteryChargeStatus.PlugState { + case "DISCONNECTED": + return api.StatusA, nil + case "CONNECTED": + switch res.BatteryChargeStatus.ChargingState { + case "OFF", "COMPLETED": + return api.StatusB, nil + case "ON": + return api.StatusC, nil + } + } + } + + return api.StatusNone, err +} + // Range implements the api.VehicleRange interface func (v *Porsche) Range() (int64, error) { res, err := v.chargerG()