From ac9160d9d1c72feaa9055238a992a993d4c8884f Mon Sep 17 00:00:00 2001 From: Sven Giermann Date: Tue, 11 Mar 2025 10:06:24 +0100 Subject: [PATCH 1/3] Skoda: Consider additional climatisation states Climatisation state can be different from "HEATING" and still be active, implementing further known states here. --- vehicle/skoda/provider.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vehicle/skoda/provider.go b/vehicle/skoda/provider.go index b17181ece..f8f01054c 100644 --- a/vehicle/skoda/provider.go +++ b/vehicle/skoda/provider.go @@ -118,7 +118,8 @@ var _ api.VehicleClimater = (*Provider)(nil) // Climater implements the api.VehicleClimater interface func (v *Provider) Climater() (active bool, err error) { res, err := v.climateG() - return res.State == "HEATING", err + active := res.State == "COOLING" || res.State == "HEATING" || res.State == "HEATING_AUXILIARY" || res.State == "VENTILATION" || res.State == "ON" + return active, err } var _ api.SocLimiter = (*Provider)(nil) From 9a497ed2277979096b2bbb0fba53905916672e92 Mon Sep 17 00:00:00 2001 From: Sven Giermann Date: Tue, 11 Mar 2025 10:15:40 +0100 Subject: [PATCH 2/3] Fix Lint errors --- vehicle/skoda/provider.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vehicle/skoda/provider.go b/vehicle/skoda/provider.go index f8f01054c..5c70e0953 100644 --- a/vehicle/skoda/provider.go +++ b/vehicle/skoda/provider.go @@ -116,7 +116,7 @@ func (v *Provider) Odometer() (odo float64, err error) { var _ api.VehicleClimater = (*Provider)(nil) // Climater implements the api.VehicleClimater interface -func (v *Provider) Climater() (active bool, err error) { +func (v *Provider) Climater() (bool, error) { res, err := v.climateG() active := res.State == "COOLING" || res.State == "HEATING" || res.State == "HEATING_AUXILIARY" || res.State == "VENTILATION" || res.State == "ON" return active, err From e023ceaa5d2447c5151180e0c16eab3c2a00a456 Mon Sep 17 00:00:00 2001 From: andig Date: Tue, 11 Mar 2025 12:10:45 +0100 Subject: [PATCH 3/3] wip --- vehicle/skoda/provider.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vehicle/skoda/provider.go b/vehicle/skoda/provider.go index 5c70e0953..350793020 100644 --- a/vehicle/skoda/provider.go +++ b/vehicle/skoda/provider.go @@ -1,6 +1,7 @@ package skoda import ( + "slices" "time" "github.com/evcc-io/evcc/api" @@ -118,8 +119,7 @@ var _ api.VehicleClimater = (*Provider)(nil) // Climater implements the api.VehicleClimater interface func (v *Provider) Climater() (bool, error) { res, err := v.climateG() - active := res.State == "COOLING" || res.State == "HEATING" || res.State == "HEATING_AUXILIARY" || res.State == "VENTILATION" || res.State == "ON" - return active, err + return slices.Contains([]string{"COOLING", "HEATING", "HEATING_AUXILIARY", "VENTILATION", "ON"}, res.State), err } var _ api.SocLimiter = (*Provider)(nil)