From cea4a91e20166fe52d30456326d08251271681e8 Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Tue, 8 Sep 2026 09:34:27 +0200 Subject: [PATCH] Le message d echec ne tenait pas dans son helper, et HA n etait pas en panne MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deux rectifications au diagnostic d hier soir, faites en deployant. HA n etait PAS injoignable. J avais lu « le noeud d ecriture rend 0 item » comme un echec ; c est la sortie normale d un input_text.set_value reussi. Le service d historisation, qui interroge HA depuis l autre NAS, a enregistre 300 a 414 mesures par heure sans interruption de 22 h a 06 h, et le controleur EVCS n a eu aucune erreur. Seul l acces Internet du workflow etait touche. Le .17 n a ni redemarre (49 jours d uptime) ni perdu son reseau physique. Et le mecanisme d alerte existant n a jamais fonctionne : zero message d echec publie en quatre jours. Le helper evcs_balance_forecast_updated etait declare max: 32 alors que « échec : réponse illisible ou sans résultat » fait 43 caracteres — Home Assistant rejetait la valeur, et le slice(0, 250) du code ne pouvait pas le savoir. Reproduit puis corrige : a 32 refuse, a 128 accepte. Un helper input_text susceptible de recevoir un message d erreur doit etre dimensionne pour le message le plus long, pas pour la valeur nominale : ici 11 caracteres contre 43. Deploiement verifie en production : forecast_day0 = 2026-09-08, statut ok. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj --- HANDOFF.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/HANDOFF.md b/HANDOFF.md index 1a452ef..f661c92 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -5675,7 +5675,50 @@ et chaque scenario ayant la sienne : decalage non corrige · cas decale non reconnu · retour a la garde d'age (3 scenarios) · courbe perimee utilisee quand meme. -### A FAIRE AVANT QUE LE CORRECTIF AGISSE +### Deploye le 08/09 a 09:25 — et deux rectifications sur le diagnostic + +Helper cree, `input_text.reload`, les deux workflows pousses (48/48 avant +chaque PUT). Verifie en production : `evcs_balance_forecast_day0` = `2026-09-08`, +statut du bilan `ok`. + +⚠️ **RECTIFICATION 1 — Home Assistant n'etait PAS injoignable.** J'avais +interprete « le noeud d'ecriture rend 0 item » comme un echec. C'est faux : +`[[]]` est la sortie NORMALE d'un `input_text.set_value` reussi. Preuves que HA +tournait : le service d'historisation, qui interroge HA depuis l'autre NAS, a +enregistre **300 a 414 mesures par heure sans interruption** de 22 h a 06 h, et +le controleur EVCS n'a eu aucune erreur. La panne ne concernait que l'acces +**Internet** du workflow (`socket hang up` vers Forecast.Solar). + +Le .17 n'a par ailleurs ni redemarre (**49 jours** d'uptime) ni perdu son +reseau physique (rien dans `dmesg` depuis le 2 septembre). La cause de +l'indisponibilite Internet reste **non etablie** ; deux autres workflows a appel +sortant ont eu des erreurs dans la meme fenetre, une seule occurrence en quatre +jours. + +### ⚠️ RECTIFICATION 2 — le mecanisme d'alerte existant n'a JAMAIS fonctionne + +En cherchant pourquoi 4 h 45 de panne n'avaient laisse aucune trace, +constat : **zero message d'echec dans +`input_text.evcs_balance_forecast_updated` en quatre jours**, alors que +`BUILD_HA_CALLS_FORECAST` en publie un a chaque echec depuis toujours. + +Cause : le helper etait declare **`max: 32`**, et +« échec : réponse illisible ou sans résultat » fait **43 caracteres**. Home +Assistant rejetait la valeur. Le `slice(0, 250)` du code ne pouvait pas le +savoir. Reproduit puis corrige en direct : a 32 le message est refuse, a 128 il +passe (verifie par ecriture puis restauration de la valeur legitime). + +`max` porte a **128** (sauvegarde `SAVE/evcs_energy_balance.yaml.bak2.*`). +⚠️ **Regle a retenir** : un helper `input_text` qui peut recevoir un message +d'erreur doit etre dimensionne pour le message le plus long, pas pour la valeur +nominale. Ici la valeur nominale fait 11 caracteres et le message 43. + +### Ce qui reste ouvert +La cause de l'indisponibilite Internet de la nuit du 07 au 08/09. Une seule +occurrence ; a instruire si elle se reproduit — le rapport de nuit la signalera +desormais. + +### Historique : ce qu'il fallait faire pour deployer 1. Creer le helper `input_text.evcs_balance_forecast_day0` dans `/mnt/ARCH3/docker/HA/packages/evcs_energy_balance.yaml`, a cote de `evcs_balance_forecast_today`, puis `input_text.reload` — aucun redemarrage.