From 878660d4412284ab4d353d4662b011bbfee7e1ef Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 16 Feb 2024 16:07:59 +0100 Subject: [PATCH] Tronity: improve status detection (#12296) --- vehicle/tronity.go | 16 ++++++++++------ vehicle/tronity/types.go | 15 +++++++++------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/vehicle/tronity.go b/vehicle/tronity.go index c1f194cf6..7c0a32e82 100644 --- a/vehicle/tronity.go +++ b/vehicle/tronity.go @@ -193,14 +193,18 @@ func (v *Tronity) Soc() (float64, error) { func (v *Tronity) status() (api.ChargeStatus, error) { status := api.StatusA // disconnected res, err := v.bulkG() - - if err == nil { - if res.Charging == "Charging" { - status = api.StatusC - } + if err != nil { + return status, err } - return status, err + switch { + case res.Charging == "Charging": + status = api.StatusC + case res.Plugged: + status = api.StatusB + } + + return status, nil } var _ api.VehicleRange = (*Tronity)(nil) diff --git a/vehicle/tronity/types.go b/vehicle/tronity/types.go index 8748a0734..da7826bb8 100644 --- a/vehicle/tronity/types.go +++ b/vehicle/tronity/types.go @@ -4,7 +4,9 @@ package tronity const ( ReadCharge = "tronity_charging" // Know whether vehicle is charging + ReadLocation = "tronity_location" // Last known location ReadOdometer = "tronity_odometer" // Retrieve total distance traveled + ReadRange = "tronity_range" // Last known range information WriteChargeStartStop = "tronity_control_charging" ) @@ -21,12 +23,13 @@ type Vehicle struct { } type Bulk struct { - Odometer float64 - Range float64 - Level float64 - Charging string // Charging - // Latitude float64/string - // Longitude float64/string + Odometer float64 + Range float64 + Level float64 + Charging string + Plugged bool + Latitude float64 + Longitude float64 Timestamp int64 }