From 54b6b911cefb645622eb4c3187546350ddac03b6 Mon Sep 17 00:00:00 2001 From: mfuchs1984 <57141790+mfuchs1984@users.noreply.github.com> Date: Tue, 7 Jan 2025 19:43:58 +0100 Subject: [PATCH] BMW: add climater (#18114) --- vehicle/bmw/provider.go | 8 ++++++++ vehicle/bmw/types.go | 3 +++ 2 files changed, 11 insertions(+) diff --git a/vehicle/bmw/provider.go b/vehicle/bmw/provider.go index 6978347b2..3c65beee9 100644 --- a/vehicle/bmw/provider.go +++ b/vehicle/bmw/provider.go @@ -108,6 +108,14 @@ func (v *Provider) GetLimitSoc() (int64, error) { return res.State.ElectricChargingState.ChargingTarget, nil } +var _ api.VehicleClimater = (*Provider)(nil) + +// Climater implements the api.VehicleClimater interface +func (v *Provider) Climater() (bool, error) { + res, err := v.statusG() + return res.State.ClimateControlState.Activity == "HEATING" || res.State.ClimateControlState.Activity == "COOLING", err +} + var _ api.Resurrector = (*Provider)(nil) func (v *Provider) WakeUp() error { diff --git a/vehicle/bmw/types.go b/vehicle/bmw/types.go index 6d2f7aa7c..5f8f07ec6 100644 --- a/vehicle/bmw/types.go +++ b/vehicle/bmw/types.go @@ -19,5 +19,8 @@ type VehicleStatus struct { ChargingStatus string ChargingTarget int64 } + ClimateControlState struct { + Activity string + } } }