From 44eb415cb8750d6032612c6a088e4d037dc6c366 Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Mon, 7 Sep 2026 23:41:36 +0200 Subject: [PATCH] Les deux panneaux du haut affichent enfin quelque chose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le bilan rendait sept tirets et l'histogramme « No numeric fields found », alors que verifier-dashboards donnait les deux requetes vertes : il prouve qu'une requete s'execute, pas qu'elle s'affiche. FILTRE_VUE ne se recopie pas d'un tableau a l'autre : cette transformation ne garde que les colonnes nommees par la variable $vue, propre a « Le systeme ». Sur un tableau qui n'a pas cette variable, elle filtre tout. Retiree. champs="/.*/" est reserve aux etats d'alarme, qui sont du texte ; sur des colonnes numeriques il empeche le rendu. Remis a "" comme le panneau « Sur la periode » des vehicules, et les unites kWh et % ajoutees en overrides — sans elles les chiffres etaient nus. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj --- HANDOFF.md | 18 +++ .../grafana/dashboards/journee.json | 134 ++++++++++++------ tools/gen-grafana-dashboards.py | 22 +-- 3 files changed, 126 insertions(+), 48 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index 118bd1b..acc158d 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -5527,6 +5527,24 @@ l'intermittent etait touche. 73/73 requetes valides. (04/09), dans le sens de la SURESTIMATION. Toute lecture d'energie vehicule anterieure au 07/09 doit etre reprise. +### Deux pieges d'affichage, corriges apres lecture a l'ecran + +Les deux panneaux du haut etaient vides au premier rendu, alors que +`verifier-dashboards` les donnait verts — troisieme rappel que ce controle +prouve l'execution d'une requete, pas son affichage. + +1. **`FILTRE_VUE` ne se recopie pas d'un tableau a l'autre.** Cette + transformation ne garde que les colonnes nommees par la variable `$vue`, + propre au tableau « Le systeme ». Sur un tableau qui n'a pas cette variable, + elle filtre TOUT et Grafana affiche « No numeric fields found ». Retiree : + ici on veut les quatre colonnes en permanence. +2. **`champs="/.*/"` est reserve aux etats d'ALARME, qui sont du texte.** + Sur des colonnes numeriques il empeche le rendu — sept « — » a la place des + valeurs. La valeur juste est `""` (defaut), qui ne garde que les numeriques, + comme le panneau « Sur la periode » du tableau des vehicules. Les unites + (kWh, %) ont ete ajoutees en overrides dans la foulee : sans elles les + chiffres etaient nus. + ### Rappel de methode, deuxieme fois en trois jours `verifier-dashboards.mjs` prouve qu'une requete s'EXECUTE, pas qu'elle rend la grandeur voulue — il annoncait 73/73 avec le chiffre faux. Le seul controle qui diff --git a/deploy/historisation/grafana/dashboards/journee.json b/deploy/historisation/grafana/dashboards/journee.json index c07d5ee..c2b3cb1 100644 --- a/deploy/historisation/grafana/dashboards/journee.json +++ b/deploy/historisation/grafana/dashboards/journee.json @@ -103,6 +103,98 @@ "mappings": [] }, "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Solaire produit" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Maison consommee" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Voiture" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Batterie chargee" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Batterie rendue" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Reseau importe" + }, + "properties": [ + { + "id": "unit", + "value": "kwatth" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 3 + }, + { + "color": "orange", + "value": 8 + } + ] + } + } + ] + }, { "matcher": { "id": "byName", @@ -134,34 +226,6 @@ } } ] - }, - { - "matcher": { - "id": "byName", - "options": "Reseau importe" - }, - "properties": [ - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 3 - }, - { - "color": "orange", - "value": 8 - } - ] - } - } - ] } ] }, @@ -170,7 +234,7 @@ "calcs": [ "lastNotNull" ], - "fields": "/.*/", + "fields": "", "values": false }, "orientation": "horizontal", @@ -241,17 +305,7 @@ "mode": "multi", "sort": "none" } - }, - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(Time|time|Heure|$vue)$" - } - } - } - ] + } }, { "type": "timeseries", diff --git a/tools/gen-grafana-dashboards.py b/tools/gen-grafana-dashboards.py index 4595a8a..e26eb9a 100644 --- a/tools/gen-grafana-dashboards.py +++ b/tools/gen-grafana-dashboards.py @@ -1294,20 +1294,26 @@ journee = dashboard( "consommation de la maison qui n'est PAS venue du reseau. " "« Batterie rendue » est ce qu'elle a restitue, donc du solaire " "differe et non une consommation supplementaire.", - overrides=[sur("Autonomie", [{"id": "unit", "value": "percent"}, + overrides=[sur(n, [{"id": "unit", "value": "kwatth"}]) for n in + ("Solaire produit", "Maison consommee", "Voiture", + "Batterie chargee", "Batterie rendue")] + + [sur("Reseau importe", [{"id": "unit", "value": "kwatth"}, + {"id": "thresholds", "value": seuils( + ("green", None), ("#EAB839", 3), + ("orange", 8))}]), + sur("Autonomie", [{"id": "unit", "value": "percent"}, {"id": "thresholds", "value": seuils( ("red", None), ("#EAB839", 60), - ("green", 85))}]), - sur("Reseau importe", [{"id": "thresholds", "value": seuils( - ("green", None), ("#EAB839", 3), - ("orange", 8))}])], - champs="/.*/"), + ("green", 85))}])]), - dict(barchart("Energie heure par heure", [sql("A", ENERGIE_SQL, fmt="table")], + # ⚠️ PAS de FILTRE_VUE ici : cette transformation ne garde que les colonnes + # nommees par la variable $vue de « Le systeme ». Sur un tableau qui n'a pas + # cette variable, elle filtre TOUT et Grafana affiche « No numeric fields + # found ». Ici on veut les quatre colonnes, tout le temps. + barchart("Energie heure par heure", [sql("A", ENERGIE_SQL, fmt="table")], PG, 0, 5, 24, 9, "kwatth", "La forme de la journee : quand le solaire a couvert la maison, et quand " "il a fallu acheter. Le pas suit la periode choisie."), - transformations=FILTRE_VUE), ts("Les flux de la journee", [sql("A", BILAN_FLUX)], PG, 0, 14, 24, 10, "watt",