P11-bis : second signal de fraicheur de session, independant du charging_time borne

Incident du 19/09 : VW debranchee ~14:50, JEEP branchee, mais le swap n'a dure
que 14 s. La borne a GELE son etat (charging_time reste a 1h25, jamais
reinitialise) → P11 (base uniquement sur charging_time <= 90s) restait aveugle
→ le collant 'vehicule plein' de la VW bloquait la JEEP, qui n'a pas charge de
l'apres-midi. Un debranchement FRANC de 30s a tout debloque (borne reset).

Le last_changed du capteur de connexion, lui, a bien bouge sur le swap de 14 s
(14:54:17). C'etait l'info qui manquait : personne ne la lisait. sessionFresh
gagne donc un SECOND terme, l'age du dernier (re)branchement, meme fenetre 90s,
independant de la borne :
- gabarit : evcs_vehicle_connected_ts (as_timestamp du last_changed, patron
  acin1_last_changed_ts §29) ;
- INPUT_PARSE : evcsVehicleConnectedAgeSec (Infinity si absent => repli sur) ;
- WINDOWS : sessionFresh = charging_time bas OU reconnexion recente.

Golden 113 -> 115 : p11bis-swap-rapide-borne-figee (charging_time fige 1h25 +
reconnexion 30s -> retest) et son contrefactuel reconnexion-vieille (2h -> reste
collant). Gabarit rendu contre HA : 202 champs, aucun null. Mutation deux sens :
retrait du signal -> le swap tombe ; fenetre infinie -> l'etablie tombe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-19 18:30:11 +02:00
parent 2682f69db7
commit a3da7f6fbc
5 changed files with 84 additions and 5 deletions

View File

@@ -558,6 +558,60 @@ export const scenarios = [
},
},
// ============ P11-bis : SWAP RAPIDE, BORNE FIGEE (19/09/2026) ============
// Incident du 19/09 : VW debranchee ~14:50, JEEP branchee, mais le swap n'a
// dure que 14 s → la borne a GELE son etat (charging_time reste a 1h25, status
// fige). P11 (base sur charging_time <= 90s) restait aveugle → le collant VW
// bloquait la JEEP. Le last_changed du capteur de connexion, lui, a bouge :
// c'est le second signal de fraicheur.
{
id: 'p11bis-swap-rapide-borne-figee',
label: 'Jour PV fort, prev=day_vehicle_full_idle, charging_time FIGE 1h25 MAIS reconnexion il y a 30 s → retest (second signal)',
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',
// la borne n'a PAS reinitialise : charging_time fige haut
evcs_charging_time: '1h 25m',
// mais la connexion a change il y a 30 s (le swap rapide)
evcs_vehicle_connected_ts: String(MORNING_TS - 30),
},
expect: {
profile: 'morning_solar',
sourceMode: 'solar_only',
state: 'start_min_current',
decision: 'start',
desiredCharging: true,
currentA: 6,
},
},
{
id: 'p11bis-session-etablie-reconnexion-vieille',
label: 'CONTREFACTUEL : charging_time 1h25 ET reconnexion il y a 2h → PAS frais → 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: '1h 25m',
evcs_vehicle_connected_ts: String(MORNING_TS - 7200),
},
expect: {
profile: 'morning_solar',
sourceMode: 'blocked',
state: 'day_vehicle_full_idle',
decision: 'hold',
desiredCharging: false,
},
},
// ================= FIN DE CHARGE NUIT (P8) =================
{
id: 'night-vw-pleine-transition',