Le bilan n expose plus que des nombres
L'API Grafana, enfin accessible, a montre que le serveur renvoyait bien une ligne de valeurs au panneau : le defaut etait donc dans le rendu, pas dans la donnee. Restaient deux elements que le panneau « Sur la periode » des vehicules, lui fonctionnel, n'a pas : une colonne de texte dans le resultat, et un override `custom.hidden` pose pour la masquer — propriete qui n'existe pas sur un panneau stat. Les deux disparaissent. Le GROUP BY, lui, reste necessaire et s'ecrit desormais sur une expression constante, `GROUP BY (1 = 1)`, qui ne demande aucune colonne dans le SELECT. PostgreSQL refuse `GROUP BY true` (non-integer constant) mais accepte cette forme. Verifie par l'API sur la fenetre « Last 24 hours » : sept champs, tous de type number, valeurs presentes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -1274,7 +1274,7 @@ report AS (
|
||||
# Une seule ligne, six colonnes : c'est le resume que l'on lit en premier.
|
||||
# L'autonomie se calcule sur la maison SANS la voiture, sinon une grosse charge
|
||||
# solaire du vehicule gonfle artificiellement le taux.
|
||||
# ⚠️ Le `GROUP BY 1` sur une colonne constante n'est pas cosmetique. Un agregat
|
||||
# ⚠️ Le `GROUP BY (1 = 1)` n'est pas cosmetique. Un agregat
|
||||
# GLOBAL (sans GROUP BY) sur ces CTE rendait un panneau vide — sept « — » —
|
||||
# alors que la meme requete donnait les bons totaux en psql, que le fichier
|
||||
# servi par Grafana etait bien le dernier (md5 verifie) et que le serveur ne
|
||||
@@ -1282,7 +1282,6 @@ report AS (
|
||||
# CTE mais groupe par heure, s'affichait lui sans probleme : le GROUP BY etait
|
||||
# la derniere difference structurelle entre les deux.
|
||||
BILAN_TOTAUX = BILAN_BASE + """SELECT
|
||||
'Journee' AS "Periode",
|
||||
round((sum(pv) / 60.0 / 1000.0)::numeric, 1) AS "Solaire produit",
|
||||
round((sum(maison) / 60.0 / 1000.0)::numeric, 1) AS "Maison consommee",
|
||||
round((sum(reseau) / 60.0 / 1000.0)::numeric, 1) AS "Reseau importe",
|
||||
@@ -1291,7 +1290,7 @@ BILAN_TOTAUX = BILAN_BASE + """SELECT
|
||||
round((sum(greatest(-batterie, 0)) / 60.0 / 1000.0)::numeric, 1) AS "Batterie rendue",
|
||||
round((100.0 * greatest(sum(maison) - sum(reseau), 0)
|
||||
/ nullif(sum(maison), 0))::numeric, 0) AS "Autonomie"
|
||||
FROM report GROUP BY 1"""
|
||||
FROM report GROUP BY (1 = 1)"""
|
||||
|
||||
BILAN_FLUX = BILAN_BASE + """SELECT t AS time,
|
||||
pv AS "Production solaire",
|
||||
@@ -1313,8 +1312,7 @@ 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("Periode", [{"id": "custom.hidden", "value": True}])]
|
||||
+ [sur(n, [{"id": "unit", "value": "kwatth"}]) for n in
|
||||
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"},
|
||||
|
||||
Reference in New Issue
Block a user