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:
@@ -419,10 +419,23 @@ const prevSurplusState = (input.prev_surplus_state ?? '').toString().trim().toLo
|
||||
// nouvelle connexion physique. Sous ~90 s → session neuve → on neutralise le
|
||||
// collant pour laisser le système RETESTER le véhicule fraîchement branché.
|
||||
const P11_FRESH_SESSION_MAX_SEC = 90;
|
||||
// P11-bis (19/09/2026) : le charging_time de la borne repart de 0 sur un
|
||||
// debranchement FRANC, mais reste FIGE sur un swap trop rapide (14 s le 19/09 :
|
||||
// VW debranchee, JEEP branchee, borne gelee a l'etat VW). P11 restait alors
|
||||
// aveugle et le collant "vehicule plein" de la VW bloquait la JEEP. Le
|
||||
// last_changed du capteur de connexion, lui, a bien bouge sur ce swap : c'est
|
||||
// un SECOND signal de fraicheur, independant de la borne. Meme fenetre (90 s =
|
||||
// 3 cycles de 30 s, assez pour capter un (re)branchement entre deux cycles).
|
||||
// Cout d'un faux positif (glitch MQTT sub-seconde) : au pire un retest, que le
|
||||
// statut 3 / VDF re-latche aussitot si le vehicule est vraiment plein.
|
||||
const sessionFresh =
|
||||
parsed.evcsVehicleConnected &&
|
||||
Number.isFinite(parsed.evcsChargingTimeSec) &&
|
||||
parsed.evcsChargingTimeSec <= P11_FRESH_SESSION_MAX_SEC;
|
||||
(
|
||||
(Number.isFinite(parsed.evcsChargingTimeSec) &&
|
||||
parsed.evcsChargingTimeSec <= P11_FRESH_SESSION_MAX_SEC) ||
|
||||
(Number.isFinite(parsed.evcsVehicleConnectedAgeSec) &&
|
||||
parsed.evcsVehicleConnectedAgeSec <= P11_FRESH_SESSION_MAX_SEC)
|
||||
);
|
||||
|
||||
// Fix D (08/08/2026) : le statut natif EVCS "charged" (3) vaut aussi fin de
|
||||
// charge, sans attendre le VehicleDemandFilter (désarmé si la session a été
|
||||
|
||||
Reference in New Issue
Block a user