Grafana vehicules : resume en tableau, couleurs fixes ; HANDOFF concierge vehicule non confirme
This commit is contained in:
@@ -1347,6 +1347,9 @@ WHERE $__timeFilter(debut)
|
||||
GROUP BY date_trunc(pas.unite, debut), pas.forme
|
||||
ORDER BY date_trunc(pas.unite, debut)"""
|
||||
|
||||
COULEURS_VEHICULES = {"VW": "blue", "JEEP": "green", "ZERO": "purple",
|
||||
"Invite": "yellow", "Non etiquete": "orange"}
|
||||
|
||||
vehicules = dashboard("evcs-vehicules", "Les vehicules", (
|
||||
"Ce que chaque voiture encaisse, session par session et sur la periode "
|
||||
"choisie. L'etiquette vient d'un selecteur manuel : elle peut etre fausse, "
|
||||
@@ -1356,39 +1359,38 @@ vehicules = dashboard("evcs-vehicules", "Les vehicules", (
|
||||
"service, amis)."),
|
||||
frm="now-7d", refresh="5m", panels=[
|
||||
|
||||
stat("Sur la periode", [
|
||||
table("Sur la periode", [
|
||||
sql("A",
|
||||
"SELECT round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 1) AS \"VW\",\n"
|
||||
" round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'JEEP'), 0)::numeric, 1) AS \"JEEP\",\n"
|
||||
" round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'ZERO'), 0)::numeric, 1) AS \"ZERO\",\n"
|
||||
" round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule NOT IN ('VW', 'JEEP', 'ZERO')), 0)::numeric, 1) AS \"Invite\",\n"
|
||||
" round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule IS NULL), 0)::numeric, 1) AS \"Non etiquete\",\n"
|
||||
" count(*) AS \"Sessions\",\n"
|
||||
" count(*) FILTER (WHERE NOT vehicule_sur OR vehicule IS NULL) AS \"A confirmer\"\n"
|
||||
"FROM session_charge WHERE $__timeFilter(debut)", fmt="table")],
|
||||
PG, 0, 0, 24, 5,
|
||||
"« Etiquette douteuse » compte les sessions ou le selecteur a change en "
|
||||
"cours de route, ou n'etait pas renseigne. C'est la mesure honnete de "
|
||||
"l'incertitude : elle ne peut pas etre levee autrement qu'en positionnant "
|
||||
"le selecteur au branchement.",
|
||||
taille={"valueSize": 34, "titleSize": 12},
|
||||
overrides=[
|
||||
sur("VW", [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": "blue"}}]),
|
||||
sur("JEEP", [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": "green"}}]),
|
||||
sur("ZERO", [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": "purple"}}]),
|
||||
sur("Invite", [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": "yellow"}}]),
|
||||
sur("Etiquette douteuse", [{"id": "thresholds", "value": seuils(
|
||||
("green", None), ("orange", 1))}])]),
|
||||
PG, 0, 0, 24, 4,
|
||||
"kWh charges par vehicule sur la plage choisie (compteur de la borne). "
|
||||
"« Invite » = tout vehicule hors foyer (Megane de service, amis). "
|
||||
"« A confirmer » compte les sessions dont l'etiquette vient du selecteur "
|
||||
"sans confirmation : la seule mesure honnete de l'incertitude.",
|
||||
overrides=[sur(n, [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "decimals", "value": 1},
|
||||
{"id": "custom.cellOptions", "value": {"type": "color-text"}},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": c}}])
|
||||
for n, c in COULEURS_VEHICULES.items()] + [
|
||||
sur("A confirmer", [{"id": "custom.cellOptions", "value": {"type": "color-text"}},
|
||||
{"id": "thresholds", "value": seuils(("green", None), ("orange", 1))},
|
||||
{"id": "color", "value": {"mode": "thresholds"}}])]),
|
||||
|
||||
barchart("Energie par periode et par vehicule",
|
||||
[sql("A", SESSIONS_PERIODE, fmt="table")],
|
||||
PG, 0, 5, 24, 9, "kwatth",
|
||||
PG, 0, 4, 24, 9, "kwatth",
|
||||
"Le pas suit la plage choisie : l'heure jusqu'a 4 jours, le jour jusqu'a "
|
||||
"70, le mois au-dela. « Non etiquete » est ce qui a ete charge sans que le "
|
||||
"selecteur soit renseigne — a interpreter, pas a ignorer."),
|
||||
"selecteur soit renseigne — a interpreter, pas a ignorer.",
|
||||
overrides=[sur(n, [{"id": "color", "value": {"mode": "fixed", "fixedColor": c}}])
|
||||
for n, c in COULEURS_VEHICULES.items()]),
|
||||
|
||||
table("Les sessions", [
|
||||
sql("A",
|
||||
@@ -1404,7 +1406,7 @@ vehicules = dashboard("evcs-vehicules", "Les vehicules", (
|
||||
" source_mode AS \"Source au depart\",\n"
|
||||
" to_char(debranche_a, 'Dy HH24:MI') AS \"Debranche\"\n"
|
||||
"FROM session_charge WHERE $__timeFilter(debut) ORDER BY debut DESC", fmt="table")],
|
||||
PG, 0, 14, 24, 11,
|
||||
PG, 0, 13, 24, 11,
|
||||
"« kWh » vient du compteur de la BORNE, qui compte depuis le vrai debut "
|
||||
"de la session. « kWh integres » est mon propre calcul, qui ne couvre que "
|
||||
"ce que le service a vu — un ecart entre les deux signale un demarrage ou "
|
||||
@@ -1789,7 +1791,7 @@ journee = dashboard(
|
||||
# found ». Ici on veut les quatre colonnes, tout le temps.
|
||||
barchart("Energie heure par heure",
|
||||
[sql("A", energie_sql(prevision=True), fmt="table")],
|
||||
PG, 0, 5, 24, 9, "kwatth",
|
||||
PG, 0, 4, 24, 9, "kwatth",
|
||||
"La forme de la journee : quand le solaire a couvert la maison, quand il "
|
||||
"a fallu acheter — et, a la suite des barres mesurees, ce que la derniere "
|
||||
"prevision annonce pour les heures qui restent. L'heure EN COURS n'a pas "
|
||||
|
||||
Reference in New Issue
Block a user