P11: reset du collant 'plein' au changement de véhicule (charging_time)

- incident 12/08: JEEP chargée -> débranchée -> VW branchée bloquée par le
  collant night_recovery_done_idle de la JEEP
- snapshot +evcs_charging_time, INPUT_PARSE parseChargingTimeToSec
- WINDOWS: sessionFresh (<=90s) neutralise vehicleChargeCompleted/
  dayVehicleFullIdle/departureChargeDone/evcsStatusCharged
- golden 36->39, validé live 05:00:30 (VW débloquée: recovery_done -> wait_grid_takeover)
- HANDOFF §23 + MANUEL reset collant
This commit is contained in:
Tallagrand Thierry
2026-08-12 05:01:26 +02:00
parent 819eafd4d4
commit 5bc9784583
7 changed files with 167 additions and 3 deletions

View File

@@ -391,6 +391,82 @@ export const scenarios = [
},
},
// ===== P11 12/08/2026 : reset du collant au changement de véhicule =====
// Incident : JEEP chargée (night_recovery_done_idle) → débranchée → VW
// branchée à sa place → l'état collant survivait et bloquait la VW neuve.
// Signal : charging_time repart de 0 (< 90 s) = session neuve → on neutralise.
{
id: 'p11-changement-vehicule-nuit',
label: 'Nuit HC, prev=night_recovery_done_idle (JEEP finie) MAIS charging_time 15 s (VW fraîche) → collant neutralisé, retest',
time: NIGHT,
overrides: {
...VEHICLE_NIGHT, soc_percent: '54', allow_grid_hc_night: 'on',
prev_surplus_state: 'night_recovery_done_idle',
evcs_charging_time: '15s',
},
expect: {
profile: 'night_hc',
sourceMode: 'grid_hc_allowed',
state: 'night_wait_grid_takeover',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: true,
edfOnAction: true,
takeoverHelperService: 'turn_on',
},
},
{
id: 'p11-changement-vehicule-jour',
label: 'Jour PV fort, prev=day_vehicle_full_idle MAIS charging_time 20 s (nouveau véhicule) → retest solaire',
time: MORNING,
overrides: {
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
soc_percent: '60', pv_power_w: '4500', pv_power_10m_avg_w: '4200',
pv_trend_w: '100', battery_current_a: '10',
house_ac_power_w: '900', vebus_ac_out_l1_power_w: '900',
evcs_status_raw: '1',
prev_surplus_state: 'day_vehicle_full_idle',
evcs_charging_time: '20s',
},
expect: {
profile: 'morning_solar',
sourceMode: 'solar_only',
state: 'start_min_current',
decision: 'start',
desiredCharging: true,
currentA: 6,
takeoverNeeded: false,
edfOnAction: false,
takeoverHelperService: 'turn_off',
},
},
{
id: 'p11-session-etablie-reste-collant',
label: 'Jour PV fort, prev=day_vehicle_full_idle, charging_time 2h (session établie) → reste collant (pas de reset abusif)',
time: MORNING,
overrides: {
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
soc_percent: '60', pv_power_w: '4500', pv_power_10m_avg_w: '4200',
pv_trend_w: '100', battery_current_a: '10',
house_ac_power_w: '900', vebus_ac_out_l1_power_w: '900',
evcs_status_raw: '1',
prev_surplus_state: 'day_vehicle_full_idle',
evcs_charging_time: '2h 05m 12s',
},
expect: {
profile: 'morning_solar',
sourceMode: 'blocked',
state: 'day_vehicle_full_idle',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: false,
edfOnAction: false,
takeoverHelperService: 'turn_off',
},
},
// ================= FIN DE CHARGE NUIT (P8) =================
{
id: 'night-vw-pleine-transition',