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 + } } }