diff --git a/api/api.go b/api/api.go index 9d936e5c7..57d172e5d 100644 --- a/api/api.go +++ b/api/api.go @@ -118,3 +118,8 @@ type VehicleClimater interface { type VehicleStartCharge interface { StartCharge() error } + +// VehicleStopCharge stops the charging session on the vehicle side +type VehicleStopCharge interface { + StopCharge() error +} diff --git a/core/loadpoint.go b/core/loadpoint.go index 5ad6cc2b6..2b10a707b 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -466,6 +466,13 @@ func (lp *LoadPoint) setLimit(chargeCurrent float64, force bool) (err error) { return nil } + // sleep vehicle + if car, ok := lp.vehicle.(api.VehicleStopCharge); !enabled && ok { + if err := car.StopCharge(); err != nil { + lp.log.ERROR.Printf("vehicle remote charge stop: %v", err) + } + } + lp.log.DEBUG.Printf("charger %s", status[enabled]) if err = lp.charger.Enable(enabled); err == nil { lp.enabled = enabled