From 90af2f238609f6be55f69669d8b752eba116f23c Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 3 Aug 2024 14:45:52 +0200 Subject: [PATCH] Loadpoint: set internal current to 0 when disabling charger (#15218) --- core/loadpoint.go | 5 +++++ core/loadpoint_test.go | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index 5f32ced5d..4e6cb7e3b 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -862,6 +862,11 @@ func (lp *Loadpoint) setLimit(chargeCurrent float64) error { lp.setAndPublishEnabled(enabled) lp.chargerSwitched = lp.clock.Now() + // ensure we always re-set current when enabling charger + if !enabled { + lp.chargeCurrent = 0 + } + lp.bus.Publish(evChargeCurrent, chargeCurrent) // start/stop vehicle wake-up timer diff --git a/core/loadpoint_test.go b/core/loadpoint_test.go index 2c74d4742..66a51208e 100644 --- a/core/loadpoint_test.go +++ b/core/loadpoint_test.go @@ -448,7 +448,7 @@ func TestDisableAndEnableAtTargetSoc(t *testing.T) { lp.Update(-5000, false, time.Time{}, false, false, 0, nil, nil) ctrl.Finish() - t.Log("soc has fallen below target - soc update prevented by timer") + t.Log("soc has risen below target - soc update prevented by timer") clock.Add(5 * time.Minute) charger.EXPECT().Status().Return(api.StatusB, nil) charger.EXPECT().Enabled().Return(lp.enabled, nil) @@ -460,6 +460,7 @@ func TestDisableAndEnableAtTargetSoc(t *testing.T) { vehicle.EXPECT().Soc().Return(85.0, nil) charger.EXPECT().Status().Return(api.StatusB, nil) charger.EXPECT().Enabled().Return(lp.enabled, nil) + charger.EXPECT().MaxCurrent(int64(maxA)).Return(nil) charger.EXPECT().Enable(true).Return(nil) lp.Update(-5000, false, time.Time{}, false, false, 0, nil, nil) ctrl.Finish()