diff --git a/HANDOFF.md b/HANDOFF.md index b7eb772..fc1ff1a 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -6108,5 +6108,113 @@ c'est donc la charge du MATIN qui dira ce que le 150 A libere. Cellules a 2 mV d'ecart et aucune alarme sur toute la sequence. + +## 65. Session du 13/09/2026 (soir) — Six sessions sur douze etaient mal etiquetees + +### Le declencheur +Une session voisine sur OpenClaw prepare un « concierge vehicule » : un agent +qui demande par WhatsApp quel vehicule est branche quand l'etiquette est +douteuse. En lui donnant les noms d'entites, j'ai verifie le selecteur. +`input_select.victron_evcs_vehicle` etait sur **VW, inchange depuis le 07/09 +20:49** — six jours. Onze sessions consecutives en avaient herite. + +### ⚠️ `vehicule_sur` ne dit pas ce que son nom laisse croire +Les onze lignes affichaient `vehicule_sur = true`. En lisant le code : +`vehicule_sur = vehicule_sur AND (nouveau = ancien)` — le drapeau ne passe a +faux que si le selecteur change PENDANT une session. Un selecteur perime depuis +six jours reste « sur ». C'est le defaut de conception qui a rendu l'anomalie +invisible, et il est de mon fait. + +### Ce que la puissance revele, et qui corrige une doctrine +`p_max_w` sur les douze sessions : +``` +3 606 a 3 784 W -> onze sessions, toutes a 20 A de consigne +6 360 W / 28 A -> UNE session, le 11/09 16:54 +``` +Cette derniere est une **Megane electrique de service**, utilisee pour aller a +Rennes — 7,45 kWh attribues a la VW qui ne les a jamais pris. Le proprietaire +depanne aussi des amis en charge : le vehicule invite est un cas recurrent, et +il n'etait documente nulle part. + +**La doctrine « vehicules indiscernables » ne vaut donc QUE pour la VW et la +JEEP l'une par rapport a l'autre.** Regle a sens unique : `consigne_max_a >= 20` +ET `p_max_w > 4200` ⟹ invite, certain ; en dessous on ne sait rien, car un +invite a chargeur 16 A est identique a la VW. Toute question sur l'identite d'un +vehicule doit offrir « aucune des deux ». + +### ⚠️ LA FRONTIERE D'UN BRANCHEMENT EST UN FAIT, PAS UN ECART DE TEMPS +J'ai d'abord reconstruit les groupes soiree+nuit par l'ecart entre sessions. +Les ecarts reels valent **5 h 19 a 5 h 25** — le creux entre la fin du solaire +et l'ouverture des heures creuses. Aucun seuil de duree ne les distingue d'une +nuit entiere. + +La table `evenement` enregistre les transitions de +`binary_sensor.victron_evcs_vehicle_connected`, en jsonb structure : +`detail->>'entite'`, `detail->>'avant'`, `detail->>'apres'`. Un branchement va +d'un `apres='on'` au `apres='off'` suivant. C'est un FAIT observe. + +Les branchements reels de la semaine : +``` +mar 08/09 19:39 -> mer 08:57 2 sessions +mer 09/09 15:55 -> jeu 09:05 3 SESSIONS +jeu 10/09 18:19 -> ven 16:27 2 sessions +ven 11/09 16:53 -> 18:27 1 session (Megane) +sam 12/09 11:42 -> 11:53 1 session +sam 12/09 11:55 -> en cours 1 session +``` + +**Le mercredi est un triplet, et j'avais applique une correction incoherente** : +15:55 en JEEP, 19:35 et 01:25 laissees en VW. Physiquement impossible — un seul +point de charge, le cable n'a pas bouge. Le journal me l'a mis sous le nez. + +### La raison, que rien n'aurait pu deduire +Mot du proprietaire : « mercredi c'est typique du contexte humain pas logique du +tout car ma femme a branche la JEEP et le soir quand mon fils est arrive il n'a +pas debranche la JEEP pour brancher la VW a la place, donc le jeudi il a roule a +l'essence ». Plus le contexte de la semaine : sa femme (JEEP) en conges, son +fils (VW) en stage sans retour le midi — la routine documentee entierement +inversee. + +Il ajoute qu'il lui est **plus facile de donner ces informations par WhatsApp +que de venir sur un PC**. C'est l'argument central de l'agent conversationnel, +et il est meilleur que celui que je defendais (« le selecteur s'oublie ») : le +systeme n'a aucun canal d'entree pour le contexte humain. + +### Etiquettes finales (reparation idempotente, 6 lignes) +5 VW, 6 JEEP, 1 MEGANE — contre 11 VW et 1 JEEP avant. Chaque predicat verifie +en lecture avant ecriture : fenetre d'une minute, exactement une ligne visee, +energies concordantes. + +### L'INVARIANT a retenir +**Un cable, un vehicule** : toutes les sessions d'un meme branchement portent la +meme etiquette. C'est une propriete physique, independante de toute +connaissance metier, qu'aucune evolution de regle ne peut invalider. Un groupe a +etiquettes mixtes signale soit une frontiere fausse, soit une ligne fausse — les +deux meritent une alerte. C'est ce controle qui aurait signale mon triplet le +jour meme ; il est desormais au cahier des charges du concierge, en continu. + +### Contrat arrete avec la session OpenClaw +- Airtria publie dans SON espace de noms, ne touche aucun actionneur, et le + service d'historisation — proprietaire de `session_charge` — lit et applique. +- Un seul helper JSON, `session_debut` en LISTE (ecritures sequentielles sur un + helper unique perdraient une confirmation sur deux, mon service ne passant que + toutes les 60 s). +- La clef `debut` porte les **millisecondes** : renvoyer la chaine verbatim, + jointure sur ±1 s. +- `input_text` : declarer `max: 255` — le defaut est 100, et un rejet est + SILENCIEUX (incident `forecast_updated` du 08/09). +- Une fenetre d'analyse historique doit commencer sur un `on`, jamais au milieu + d'un branchement. + +### ⚠️ `evcs_lecture` N'EST PAS EN LECTURE SEULE +Verifie en repondant : SELECT partout, plus **INSERT sur `evenement`** — octroi +delibere du 04/09 pour les annotations manuelles, mais que le README decrivait +a deux endroits comme « lecture seule », et que j'ai repete a un tiers. Ne pas +confier ce role a un agent externe : `evenement` alimente les annotations +Grafana, le rapport de nuit et l'attribution des transitions, et une ligne +etrangere y serait indiscernable des notres. Un role dedie `airtria_ro`, SELECT +sur `session_charge` et `evenement` uniquement, est en attente de creation par +le proprietaire. README corrige. + --- -*Document mis a jour le : 13/09/2026 — table de charge 150/130/80/30, pv_mid 51,2 → 51,5 V, golden-acm 20/20* +*Document mis a jour le : 13/09/2026 (soir) — six etiquettes de vehicule corrigees, frontiere de branchement lue dans le journal, contrat du concierge arrete*