Fix G: coupure EDF générique quand l'override EVCS disparaît mi-session
Incident nuit 21-22/08 : la fenêtre HC nuit se ferme pendant que le véhicule est encore en session active (pas encore flag "charge terminée"). L'EVCS relâche correctement son override, mais émet un état transitoire générique (stop_source_lost/idle_wait_source) qu'aucune règle de coupure immédiate du workflow Grid Hysteresis (Fix C/E2) ne reconnaît. EDF restait alors maintenu des heures par la boucle générique jusqu'au seuil statique gridSocOff, plafonnant le MPPT Victron à ~100W et privant la maison de solaire. Nouvelle règle générique (Compute Grid Hysteresis) basée sur evcsGridOverride plutôt que sur une liste blanche de noms de surplus_state — couvre donc aussi tout futur état non énuméré. Garde anti-glitch sur lecture HA invalide. Nouvelle suite tests/golden-hysteresis/ (7 scénarios, première pour ce workflow), câblée bloquante dans tools/n8n-push.mjs. Déployé et validé (golden-hysteresis 7/7, golden EVCS 39/39 inchangé). Écarte le diagnostic incomplet laissé par un autre agent dans HANDOFF.md (edf_general_ok_off côté EVCS aurait créé un deuxième écrivain non coordonné sur le même switch). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
32
tests/golden-hysteresis/fixture-snapshot.json
Normal file
32
tests/golden-hysteresis/fixture-snapshot.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"soc_percent": "50",
|
||||
"grid_state": "off",
|
||||
"pv_power_w": "2000",
|
||||
|
||||
"house_ac_power_w": "700",
|
||||
"grid_power_w": "0",
|
||||
|
||||
"evcs_ac_power_w": "0",
|
||||
"evcs_charging": "off",
|
||||
"evcs_status_raw": "6",
|
||||
|
||||
"hysteresis_enabled": "on",
|
||||
"notifications_enabled": "on",
|
||||
"grid_latch": "off",
|
||||
|
||||
"grid_soc_on": "22",
|
||||
"grid_soc_off": "35",
|
||||
"grid_min_on_minutes": "25",
|
||||
"grid_cooldown_minutes": "15",
|
||||
"ac_loads_max_safe_w": "7800",
|
||||
|
||||
"last_on_at": "",
|
||||
"last_off_at": "",
|
||||
"last_signature": "",
|
||||
|
||||
"evcs_priority_active": "off",
|
||||
"night_grid_takeover_needed": "off",
|
||||
"evcs_source_mode": "Bloqué",
|
||||
"user_strategy": "auto_solar_plus",
|
||||
"evcs_surplus_state": "idle_wait_conditions"
|
||||
}
|
||||
Reference in New Issue
Block a user