Grafana vehicules : colonnes ZERO et Invite (Megane, amis), etaient absentes

This commit is contained in:
Tallagrand Thierry
2026-10-03 23:48:17 +02:00
parent 8e99a1d9ca
commit fd4b3356ac
2 changed files with 59 additions and 6 deletions

View File

@@ -4,7 +4,7 @@
}, },
"uid": "evcs-vehicules", "uid": "evcs-vehicules",
"title": "Les vehicules", "title": "Les vehicules",
"description": "Ce que chaque voiture encaisse, session par session et sur la periode choisie. L'etiquette vient d'un selecteur manuel : elle peut etre fausse, et rien ne permet de la verifier — les deux vehicules sont electriquement indiscernables et leur routine s'inverse le week-end.", "description": "Ce que chaque voiture encaisse, session par session et sur la periode choisie. L'etiquette vient d'un selecteur manuel : elle peut etre fausse, et rien ne permet de la verifier — les deux vehicules sont electriquement indiscernables et leur routine s'inverse le week-end. Vehicules : VW, JEEP, ZERO (moto) ; « Invite » = tout autre (Megane de service, amis).",
"tags": [ "tags": [
"evcs" "evcs"
], ],
@@ -77,7 +77,7 @@
"format": "table", "format": "table",
"rawQuery": true, "rawQuery": true,
"editorMode": "code", "editorMode": "code",
"rawSql": "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 count(*) AS \"Sessions\",\n count(*) FILTER (WHERE NOT vehicule_sur OR vehicule IS NULL) AS \"A confirmer\"\nFROM session_charge WHERE $__timeFilter(debut)" "rawSql": "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 count(*) AS \"Sessions\",\n count(*) FILTER (WHERE NOT vehicule_sur OR vehicule IS NULL) AS \"A confirmer\"\nFROM session_charge WHERE $__timeFilter(debut)"
} }
], ],
"gridPos": { "gridPos": {
@@ -141,6 +141,44 @@
} }
] ]
}, },
{
"matcher": {
"id": "byName",
"options": "ZERO"
},
"properties": [
{
"id": "unit",
"value": "kwatth"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "purple"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Invite"
},
"properties": [
{
"id": "unit",
"value": "kwatth"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "yellow"
}
}
]
},
{ {
"matcher": { "matcher": {
"id": "byName", "id": "byName",
@@ -207,7 +245,7 @@
"format": "table", "format": "table",
"rawQuery": true, "rawQuery": true,
"editorMode": "code", "editorMode": "code",
"rawSql": "WITH bornes AS (\n SELECT $__timeFrom()::timestamptz AS d, $__timeTo()::timestamptz AS f\n),\npas AS (\n SELECT CASE WHEN f - d > interval '70 days' THEN 'month'\n WHEN f - d > interval '4 days' THEN 'day'\n ELSE 'hour' END AS unite,\n CASE WHEN f - d > interval '70 days' THEN 'MM/YYYY'\n WHEN f - d > interval '4 days' THEN 'DD/MM'\n ELSE 'DD/MM HH24' END AS forme\n FROM bornes\n)\nSELECT to_char(date_trunc(pas.unite, debut), pas.forme) AS \"Periode\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 2) AS \"VW\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'JEEP'), 0)::numeric, 2) AS \"JEEP\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule IS NULL), 0)::numeric, 2) AS \"Non etiquete\"\nFROM session_charge, pas\nWHERE $__timeFilter(debut)\nGROUP BY date_trunc(pas.unite, debut), pas.forme\nORDER BY date_trunc(pas.unite, debut)" "rawSql": "WITH bornes AS (\n SELECT $__timeFrom()::timestamptz AS d, $__timeTo()::timestamptz AS f\n),\npas AS (\n SELECT CASE WHEN f - d > interval '70 days' THEN 'month'\n WHEN f - d > interval '4 days' THEN 'day'\n ELSE 'hour' END AS unite,\n CASE WHEN f - d > interval '70 days' THEN 'MM/YYYY'\n WHEN f - d > interval '4 days' THEN 'DD/MM'\n ELSE 'DD/MM HH24' END AS forme\n FROM bornes\n)\nSELECT to_char(date_trunc(pas.unite, debut), pas.forme) AS \"Periode\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 2) AS \"VW\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'JEEP'), 0)::numeric, 2) AS \"JEEP\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'ZERO'), 0)::numeric, 2) AS \"ZERO\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule NOT IN ('VW', 'JEEP', 'ZERO')), 0)::numeric, 2) AS \"Invite\",\n round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule IS NULL), 0)::numeric, 2) AS \"Non etiquete\"\nFROM session_charge, pas\nWHERE $__timeFilter(debut)\nGROUP BY date_trunc(pas.unite, debut), pas.forme\nORDER BY date_trunc(pas.unite, debut)"
} }
], ],
"gridPos": { "gridPos": {
@@ -317,9 +355,13 @@
"color": "green", "color": "green",
"index": 1 "index": 1
}, },
"ZERO": {
"color": "purple",
"index": 2
},
"?": { "?": {
"color": "orange", "color": "orange",
"index": 2 "index": 3
} }
} }
} }

View File

@@ -1339,6 +1339,8 @@ pas AS (
SELECT to_char(date_trunc(pas.unite, debut), pas.forme) AS "Periode", SELECT to_char(date_trunc(pas.unite, debut), pas.forme) AS "Periode",
round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 2) AS "VW", round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 2) AS "VW",
round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'JEEP'), 0)::numeric, 2) AS "JEEP", round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'JEEP'), 0)::numeric, 2) AS "JEEP",
round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'ZERO'), 0)::numeric, 2) AS "ZERO",
round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule NOT IN ('VW', 'JEEP', 'ZERO')), 0)::numeric, 2) AS "Invite",
round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule IS NULL), 0)::numeric, 2) AS "Non etiquete" round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule IS NULL), 0)::numeric, 2) AS "Non etiquete"
FROM session_charge, pas FROM session_charge, pas
WHERE $__timeFilter(debut) WHERE $__timeFilter(debut)
@@ -1349,13 +1351,17 @@ vehicules = dashboard("evcs-vehicules", "Les vehicules", (
"Ce que chaque voiture encaisse, session par session et sur la periode " "Ce que chaque voiture encaisse, session par session et sur la periode "
"choisie. L'etiquette vient d'un selecteur manuel : elle peut etre fausse, " "choisie. L'etiquette vient d'un selecteur manuel : elle peut etre fausse, "
"et rien ne permet de la verifier — les deux vehicules sont " "et rien ne permet de la verifier — les deux vehicules sont "
"electriquement indiscernables et leur routine s'inverse le week-end."), "electriquement indiscernables et leur routine s'inverse le week-end. "
"Vehicules : VW, JEEP, ZERO (moto) ; « Invite » = tout autre (Megane de "
"service, amis)."),
frm="now-7d", refresh="5m", panels=[ frm="now-7d", refresh="5m", panels=[
stat("Sur la periode", [ stat("Sur la periode", [
sql("A", sql("A",
"SELECT round(coalesce(sum(coalesce(energie_station_kwh, energie_kwh)) FILTER (WHERE vehicule = 'VW'), 0)::numeric, 1) AS \"VW\",\n" "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 = '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"
" count(*) AS \"Sessions\",\n" " count(*) AS \"Sessions\",\n"
" count(*) FILTER (WHERE NOT vehicule_sur OR vehicule IS NULL) AS \"A confirmer\"\n" " count(*) FILTER (WHERE NOT vehicule_sur OR vehicule IS NULL) AS \"A confirmer\"\n"
"FROM session_charge WHERE $__timeFilter(debut)", fmt="table")], "FROM session_charge WHERE $__timeFilter(debut)", fmt="table")],
@@ -1370,6 +1376,10 @@ vehicules = dashboard("evcs-vehicules", "Les vehicules", (
{"id": "color", "value": {"mode": "fixed", "fixedColor": "blue"}}]), {"id": "color", "value": {"mode": "fixed", "fixedColor": "blue"}}]),
sur("JEEP", [{"id": "unit", "value": "kwatth"}, sur("JEEP", [{"id": "unit", "value": "kwatth"},
{"id": "color", "value": {"mode": "fixed", "fixedColor": "green"}}]), {"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( sur("Etiquette douteuse", [{"id": "thresholds", "value": seuils(
("green", None), ("orange", 1))}])]), ("green", None), ("orange", 1))}])]),
@@ -1410,7 +1420,8 @@ vehicules = dashboard("evcs-vehicules", "Les vehicules", (
{"id": "mappings", "value": [{"type": "value", "options": { {"id": "mappings", "value": [{"type": "value", "options": {
"VW": {"color": "blue", "index": 0}, "VW": {"color": "blue", "index": 0},
"JEEP": {"color": "green", "index": 1}, "JEEP": {"color": "green", "index": 1},
"?": {"color": "orange", "index": 2}}}]}]), "ZERO": {"color": "purple", "index": 2},
"?": {"color": "orange", "index": 3}}}]}]),
sur("Doute", [{"id": "custom.width", "value": 150}]), sur("Doute", [{"id": "custom.width", "value": 150}]),
sur("kWh", [{"id": "unit", "value": "kwatth"}]), sur("kWh", [{"id": "unit", "value": "kwatth"}]),
sur("kWh integres", [{"id": "unit", "value": "kwatth"}, sur("kWh integres", [{"id": "unit", "value": "kwatth"},