En bascule vers le reseau, courant mini — et le verrou du garde meurt avec sa cause

Incident du 18/09 13:08-13:14 : clic BOOST 28 A, le controleur demande le
reseau, l'hysteresis met ~1 min a fermer le contacteur, et pendant ce trou il
MAINTIENT 13 A sur la batterie (hold_min_run_wait_grid_takeover). Le garde
batterie mord a -32,4 A, 23 secondes AVANT l'arrivee d'EDF, et pose 20 min de
verrou — que rien ne leve quand le reseau arrive. Resultat : contacteur ferme,
import qui tourne, voiture a l'arret.

Trois volets :
1. hold_min_run_wait_grid_takeover retombe au courant MINI — miroir de la
   sequence d'ouverture (§30) : on ne tient pas la puissance sur la source
   qu'on quitte. A 6 A le garde n'aurait jamais mordu.
2. Le stop encode si le reseau etait present : absent => blockReason
   'grid_battery_guard_no_grid'. Present => verrou plein inchange (incident du
   01/09, consigne insuffisante) — c'est ce qui interdit l'oscillateur
   stop/retry a reseau present.
3. BCL leve le verrou '_no_grid' des que le reseau arrive. Reseau toujours
   absent : la branche anterieure wait_grid_source protege deja (epingle).

Golden 108 -> 113. Mutations en trois directions, chacune tombant sur un
scenario different. Piege du fixture note en commentaire : ses seuils ne sont
pas a l'echelle du parc reel (fenetre garde reseau / hard general etroite).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-18 13:25:26 +02:00
parent 5db8291bc7
commit 7d66fd9a65
5 changed files with 172 additions and 5 deletions

View File

@@ -113,6 +113,7 @@ function summarize(out) {
decision: d.current_decision,
desiredCharging: d.desired_charging,
currentA: d.desired_current_a,
blockReason: d.block_reason || null,
takeoverNeeded: !!c.night_grid_takeover_needed,
edfOnAction: !!calls.edf_general_ok_on?.execute,
takeoverHelperService: calls.helper_night_grid_takeover_needed?.service || null,