diff --git a/core/loadpoint.go b/core/loadpoint.go index fec0e29f8..a903b817a 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -370,6 +370,7 @@ func (lp *LoadPoint) connected() bool { func (lp *LoadPoint) targetSocReached() bool { return lp.vehicle != nil && lp.SoC.Target > 0 && + lp.SoC.Target < 100 && lp.socCharge >= float64(lp.SoC.Target) } diff --git a/core/loadpoint_test.go b/core/loadpoint_test.go index ec0dc1a37..600f4eb70 100644 --- a/core/loadpoint_test.go +++ b/core/loadpoint_test.go @@ -623,16 +623,17 @@ func TestTargetSoC(t *testing.T) { soc float64 res bool }{ - {nil, 0, 0, false}, // never reached without vehicle - {nil, 0, 10, false}, // never reached without vehicle - {nil, 80, 0, false}, // never reached without vehicle - {nil, 80, 80, false}, // never reached without vehicle - {nil, 80, 100, false}, // never reached without vehicle - {vhc, 0, 0, false}, // target disabled - {vhc, 0, 10, false}, // target disabled - {vhc, 80, 0, false}, // target not reached - {vhc, 80, 80, true}, // target reached - {vhc, 80, 100, true}, // target reached + {nil, 0, 0, false}, // never reached without vehicle + {nil, 0, 10, false}, // never reached without vehicle + {nil, 80, 0, false}, // never reached without vehicle + {nil, 80, 80, false}, // never reached without vehicle + {nil, 80, 100, false}, // never reached without vehicle + {vhc, 0, 0, false}, // target disabled + {vhc, 0, 10, false}, // target disabled + {vhc, 80, 0, false}, // target not reached + {vhc, 80, 80, true}, // target reached + {vhc, 80, 100, true}, // target reached + {vhc, 100, 100, false}, // target reached, let ev control deactivation } for _, tc := range tc {