From 2464bffd2f21b5408e5e83a26c580926ad218017 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 8 May 2021 11:48:38 +0200 Subject: [PATCH 1/2] Add stop charge api --- api/api.go | 5 +++++ core/loadpoint.go | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/api/api.go b/api/api.go index 9d936e5c71..57d172e5df 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 5ad6cc2b6f..2b10a707b4 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 From 9da3f0d8b4da276940bb702a639c20c78a40795c Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 8 May 2021 11:49:02 +0200 Subject: [PATCH 2/2] Tesla: add start/stop charge api --- internal/vehicle/tesla.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal/vehicle/tesla.go b/internal/vehicle/tesla.go index b20b9a86ef..c60b615f1a 100644 --- a/internal/vehicle/tesla.go +++ b/internal/vehicle/tesla.go @@ -199,3 +199,17 @@ func (v *Tesla) Climater() (active bool, outsideTemp float64, targetTemp float64 return false, 0, 0, api.ErrNotAvailable } + +var _ api.VehicleStartCharge = (*Tesla)(nil) + +// StartCharge implements the api.VehicleStartCharge interface +func (v *Tesla) StartCharge() error { + return v.vehicle.StartCharging() +} + +var _ api.VehicleStopCharge = (*Tesla)(nil) + +// StopCharge implements the api.VehicleStopCharge interface +func (v *Tesla) StopCharge() error { + return v.vehicle.StopCharging() +}