Fixes A/B/C/D incident rebond EDF nuit 07-08/08 + GRAFCET doc

- A: état collant night_recovery_done_idle + bande cible−2 (anti-rebond takeover)
- B: snapshot relit night_session_start_soc/at (fin des réécritures 30s)
- C: hystérésis grid — turn_off_vehicle_unplugged (coupure immédiate, bypass min_on)
- D: evcs_status_raw==3 (charged) = fin de charge immédiate
- golden 19→23 scénarios (2 attendus mis à jour, 4 nouveaux)
- MANUEL_COMPLET §11.6 GRAFCET cycle nuit, HANDOFF §17, vision-notes incident
This commit is contained in:
Tallagrand Thierry
2026-08-08 14:20:21 +02:00
parent b20b3b19fc
commit 9bc4af0ea1
11 changed files with 874 additions and 15 deletions

View File

@@ -1064,11 +1064,18 @@ else {
// P8 : véhicule plein en session nuit → veille auto-entretenue.
// Le state est relu au cycle suivant (prev_surplus_state) : il maintient
// vehicleChargeCompleted jusqu'au débranchement ou à la fin de fenêtre.
// Fix A (08/08/2026) : une fois la recovery batterie terminée (SOC ≥ cible),
// l'état devient 'night_recovery_done_idle' (collant) → takeover relâché
// définitivement, plus de rebond EDF autour de la cible.
else if (context.profile === 'night_hc' && nightEvcs?.vehicleChargeCompleted) {
setOff({
stateName: 'night_session_done_idle',
stateName: nightEvcs?.nightRecoveryDone
? 'night_recovery_done_idle'
: 'night_session_done_idle',
decisionName: 'hold',
reasonText: 'Charge véhicule terminée : veille nuit, réseau relâché (recharge batterie si sous cible)',
reasonText: nightEvcs?.nightRecoveryDone
? 'Charge véhicule terminée + batterie à la cible : veille nuit, réseau relâché'
: 'Charge véhicule terminée : veille nuit, réseau relâché (recharge batterie si sous cible)',
dynamic: false,
mustStopFlag: false,
blockReason: 'none',