From 7e7fff48b64c3a82060f8caedca0c92ac4fb72f8 Mon Sep 17 00:00:00 2001 From: MarkusGH <34029447+MarkusGH@users.noreply.github.com> Date: Mon, 27 Mar 2023 18:25:45 +0200 Subject: [PATCH] WakeUp timer: guard against vehicle-initiated charging stop (#7067) --- core/loadpoint.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index dead0a6fc..1f0f34a6b 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -395,7 +395,7 @@ func (lp *Loadpoint) evChargeStartHandler() { lp.log.INFO.Println("start charging ->") lp.pushEvent(evChargeStart) - lp.wakeUpTimer.Stop() + lp.stopWakeUpTimer() // soc update reset lp.socUpdated = time.Time{} @@ -412,6 +412,9 @@ func (lp *Loadpoint) evChargeStartHandler() { func (lp *Loadpoint) evChargeStopHandler() { lp.log.INFO.Println("stop charging <-") lp.pushEvent(evChargeStop) + if lp.enabled { + lp.startWakeUpTimer() + } // soc update reset lp.socUpdated = time.Time{} @@ -691,11 +694,9 @@ func (lp *Loadpoint) setLimit(chargeCurrent float64, force bool) error { // start/stop vehicle wake-up timer if enabled { - lp.log.DEBUG.Printf("wake-up timer: start") - lp.wakeUpTimer.Start() + lp.startWakeUpTimer() } else { - lp.log.DEBUG.Printf("wake-up timer: stop") - lp.wakeUpTimer.Stop() + lp.stopWakeUpTimer() } // remote start @@ -1450,6 +1451,18 @@ func (lp *Loadpoint) processTasks() { } } +// startWakeUpTimer starts wakeUpTimer +func (lp *Loadpoint) startWakeUpTimer() { + lp.log.DEBUG.Printf("wake-up timer: start") + lp.wakeUpTimer.Start() +} + +// stopWakeUpTimer stops wakeUpTimer +func (lp *Loadpoint) stopWakeUpTimer() { + lp.log.DEBUG.Printf("wake-up timer: stop") + lp.wakeUpTimer.Stop() +} + // Update is the main control function. It reevaluates meters and charger state func (lp *Loadpoint) Update(sitePower float64, autoCharge, batteryBuffered bool) { lp.processTasks()