From 79da63671b943c52bc67f466d62fc91d3dd1bc10 Mon Sep 17 00:00:00 2001 From: Michael Panzer Date: Thu, 12 Feb 2026 08:56:53 +0100 Subject: [PATCH] Fix default vehicle soc estimation (#27364) --- core/loadpoint_vehicle.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/core/loadpoint_vehicle.go b/core/loadpoint_vehicle.go index 8c23aa01d..4b702806a 100644 --- a/core/loadpoint_vehicle.go +++ b/core/loadpoint_vehicle.go @@ -248,13 +248,11 @@ func (lp *Loadpoint) vehicleUnidentified() bool { // vehicleDefaultOrDetect will assign and update default vehicle or start detection func (lp *Loadpoint) vehicleDefaultOrDetect() { if lp.defaultVehicle != nil { - if lp.vehicle != lp.defaultVehicle { - lp.setActiveVehicle(lp.defaultVehicle) - } else { - // default vehicle is already active, update odometer anyway - // need to do this here since setActiveVehicle would short-circuit - lp.addTask(lp.vehicleOdometer) - } + // Always call setActiveVehicle even if defaultVehicle is already active. + // This ensures a fresh SOC estimator is created on each vehicle connect, + // which resets the estimator's initial values for the new charging session. + // setActiveVehicle is safe to call repeatedly - it only logs when vehicle actually changes. + lp.setActiveVehicle(lp.defaultVehicle) } else if len(lp.coordinatedVehicles()) > 0 && lp.connected() { lp.startVehicleDetection() }