L'energie de la session dans le panneau Chargeur VE
Quatrieme valeur : « Session », le compteur de la BORNE, celui qui vaut les 8 kWh de VRM et compte depuis le vrai debut de la charge. Il vient de PostgreSQL et non d'InfluxDB : `sensor.evcs_hq2239dnt7p_*` n'est pas dans les globs d'entites envoyees a InfluxDB. Plutot que de redemarrer Home Assistant pour l'y ajouter — en pleine charge, a 4 h du matin — la valeur est reprise de la table `session_charge`, ou elle est deja enregistree. Le panneau passe donc en source « Mixed », chaque requete portant la sienne. La session n'est affichee que si elle date de moins de deux heures : au-dela, la case reste vide plutot que d'exhiber le reliquat d'une charge terminee la veille — meme principe que la fenetre de lecture des autres panneaux. La premiere rangee passe a sept unites de hauteur et la Batterie a neuf colonnes : quatre et cinq valeurs cote a cote redevenaient illisibles a cinq unites, c'est le defaut deja corrige une fois sur ce meme panneau. 54/54 requetes verifiees. Valeur attendue a l'ecran : 8,30 kWh. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -140,7 +140,7 @@
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 5,
|
||||
"h": 5
|
||||
"h": 7
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
@@ -257,7 +257,7 @@
|
||||
"x": 5,
|
||||
"y": 0,
|
||||
"w": 4,
|
||||
"h": 5
|
||||
"h": 7
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
@@ -381,8 +381,8 @@
|
||||
"gridPos": {
|
||||
"x": 9,
|
||||
"y": 0,
|
||||
"w": 10,
|
||||
"h": 5
|
||||
"w": 9,
|
||||
"h": 7
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
@@ -523,7 +523,7 @@
|
||||
"percentChangeColorMode": "standard",
|
||||
"noValue": "—",
|
||||
"text": {
|
||||
"valueSize": 26,
|
||||
"valueSize": 22,
|
||||
"titleSize": 11
|
||||
},
|
||||
"wideLayout": true
|
||||
@@ -534,8 +534,8 @@
|
||||
"title": "Chargeur VE",
|
||||
"description": "Consigne = ce que le controleur demande a la borne, reecrit toutes les 30 s. Courant = ce que la voiture prend reellement.",
|
||||
"datasource": {
|
||||
"type": "influxdb",
|
||||
"uid": "evcs-influx"
|
||||
"type": "datasource",
|
||||
"uid": "-- Mixed --"
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@@ -561,13 +561,24 @@
|
||||
"uid": "evcs-influx"
|
||||
},
|
||||
"query": "from(bucket: \"evcs\")\n |> range(start: -24h)\n |> filter(fn: (r) => r._measurement == \"A\" and r.entity_id == \"victron_evcs_set_current\" and r._field == \"value\")\n |> last()\n |> keep(columns: [\"_value\"])\n |> rename(columns: {_value: \"Consigne\"})"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"datasource": {
|
||||
"type": "grafana-postgresql-datasource",
|
||||
"uid": "evcs-pg"
|
||||
},
|
||||
"format": "table",
|
||||
"rawQuery": true,
|
||||
"editorMode": "code",
|
||||
"rawSql": "-- Le compteur de la BORNE, repris de la table des sessions : il\n-- compte depuis le vrai debut, la ou une integration ne couvre que\n-- ce que le service a vu. Session close depuis plus de 2 h : rien.\nSELECT round(coalesce(energie_station_kwh, energie_kwh)::numeric, 2) AS \"Session\"\nFROM session_charge\nWHERE fin > now() - interval '2 hours'\nORDER BY debut DESC LIMIT 1"
|
||||
}
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 19,
|
||||
"x": 18,
|
||||
"y": 0,
|
||||
"w": 5,
|
||||
"h": 5
|
||||
"w": 6,
|
||||
"h": 7
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
@@ -633,6 +644,29 @@
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "Session"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "kwatth"
|
||||
},
|
||||
{
|
||||
"id": "decimals",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"id": "color",
|
||||
"value": {
|
||||
"mode": "fixed",
|
||||
"fixedColor": "green"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -651,6 +685,10 @@
|
||||
"justifyMode": "center",
|
||||
"percentChangeColorMode": "standard",
|
||||
"noValue": "—",
|
||||
"text": {
|
||||
"valueSize": 22,
|
||||
"titleSize": 11
|
||||
},
|
||||
"wideLayout": true
|
||||
}
|
||||
},
|
||||
@@ -682,7 +720,7 @@
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 0,
|
||||
"y": 5,
|
||||
"y": 7,
|
||||
"w": 5,
|
||||
"h": 8
|
||||
},
|
||||
@@ -775,7 +813,7 @@
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 5,
|
||||
"y": 5,
|
||||
"y": 7,
|
||||
"w": 13,
|
||||
"h": 8
|
||||
},
|
||||
@@ -944,7 +982,7 @@
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 18,
|
||||
"y": 5,
|
||||
"y": 7,
|
||||
"w": 6,
|
||||
"h": 8
|
||||
},
|
||||
@@ -1065,7 +1103,7 @@
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 0,
|
||||
"y": 13,
|
||||
"y": 15,
|
||||
"w": 24,
|
||||
"h": 9
|
||||
},
|
||||
@@ -1212,7 +1250,7 @@
|
||||
],
|
||||
"gridPos": {
|
||||
"x": 0,
|
||||
"y": 22,
|
||||
"y": 24,
|
||||
"w": 24,
|
||||
"h": 9
|
||||
},
|
||||
|
||||
@@ -798,7 +798,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
flux_dernier("A", "W", "victron_grid_power_l1", "Puissance", fenetre="6h"),
|
||||
flux_dernier("B", "V", "airtria_mpii_v1_input_voltage_l1", "Tension", fenetre="6h"),
|
||||
flux_dernier("C", "A", "gx_device_grid_current_l1", "Courant", fenetre="6h")],
|
||||
IN, 0, 0, 5, 5,
|
||||
IN, 0, 0, 5, 7,
|
||||
"Positif : le reseau alimente la maison. Le contacteur EDF est pilote par "
|
||||
"le workflow d'hysteresis, pas depuis ici.",
|
||||
overrides=[col("Puissance", "watt"), col("Tension", "volt"), col("Courant", "amp", dec=1)]),
|
||||
@@ -806,7 +806,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
stat("Charges CA", [
|
||||
flux_dernier("A", "W", "victron_consumption_power_l1", "Consommation"),
|
||||
flux_dernier("B", "Hz", "airtria_mpii_v1_output_frequency_l1", "Frequence")],
|
||||
IN, 5, 0, 4, 5,
|
||||
IN, 5, 0, 4, 7,
|
||||
"Ce que la maison consomme, voiture comprise.",
|
||||
overrides=[col("Consommation", "watt"), col("Frequence", "hertz", dec=1)]),
|
||||
|
||||
@@ -816,7 +816,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
flux_dernier("C", "V", "victron_battery_voltage", "Tension"),
|
||||
flux_dernier("D", "A", "victron_battery_current", "Courant"),
|
||||
flux_dernier("E", "°C", "victron_battery_temperature", "Temperature")],
|
||||
IN, 9, 0, 10, 5,
|
||||
IN, 9, 0, 9, 7,
|
||||
"Puissance positive : la batterie se charge. Sept modules actifs sur huit, "
|
||||
"un pack bloquant la charge vers 94 %.",
|
||||
overrides=[
|
||||
@@ -828,29 +828,42 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
# Cinq valeurs dans huit colonnes : Grafana reduisait le texte jusqu'a
|
||||
# l'illisible. Dix colonnes et une taille imposee, plutot que de laisser
|
||||
# l'ajustement automatique decider.
|
||||
taille={"valueSize": 26, "titleSize": 11}),
|
||||
taille={"valueSize": 22, "titleSize": 11}),
|
||||
|
||||
stat("Chargeur VE", [
|
||||
dict(stat("Chargeur VE", [
|
||||
flux_dernier("A", "W", "victron_evcs_ac_power", "Puissance"),
|
||||
flux_dernier("B", "A", "victron_evcs_current", "Courant"),
|
||||
flux_dernier("C", "A", "victron_evcs_set_current", "Consigne")],
|
||||
IN, 19, 0, 5, 5,
|
||||
flux_dernier("C", "A", "victron_evcs_set_current", "Consigne"),
|
||||
sql("D", "-- Le compteur de la BORNE, repris de la table des sessions : il\n"
|
||||
"-- compte depuis le vrai debut, la ou une integration ne couvre que\n"
|
||||
"-- ce que le service a vu. Session close depuis plus de 2 h : rien.\n"
|
||||
"SELECT round(coalesce(energie_station_kwh, energie_kwh)::numeric, 2) AS \"Session\"\n"
|
||||
"FROM session_charge\n"
|
||||
"WHERE fin > now() - interval '2 hours'\n"
|
||||
"ORDER BY debut DESC LIMIT 1", fmt="table")],
|
||||
IN, 18, 0, 6, 7,
|
||||
"Consigne = ce que le controleur demande a la borne, reecrit toutes les "
|
||||
"30 s. Courant = ce que la voiture prend reellement.",
|
||||
overrides=[col("Puissance", "watt"), col("Courant", "amp", dec=1),
|
||||
col("Consigne", "amp", dec=0)]),
|
||||
col("Consigne", "amp", dec=0),
|
||||
sur("Session", [{"id": "unit", "value": "kwatth"},
|
||||
{"id": "decimals", "value": 2},
|
||||
{"id": "color", "value": {"mode": "fixed", "fixedColor": "green"}}])],
|
||||
taille={"valueSize": 22, "titleSize": 11}),
|
||||
# Sources melangees : le panneau porte « Mixed », chaque requete la sienne.
|
||||
datasource={"type": "datasource", "uid": "-- Mixed --"}),
|
||||
|
||||
stat("Chargeur PV", [
|
||||
flux_dernier("A", "W", "victron_pv_power_system", "Production"),
|
||||
flux_dernier("B", "W", "victron_pv_power_10m_avg", "Moyenne 10 min")],
|
||||
IN, 0, 5, 5, 8,
|
||||
IN, 0, 7, 5, 8,
|
||||
"Rappel qui vaut pour toute lecture de cette valeur : sans injection, la "
|
||||
"production MESUREE vaut min(ressource, consommation + absorption "
|
||||
"batterie). Basse ne veut pas dire mauvais temps.",
|
||||
overrides=[col("Production", "watt"), col("Moyenne 10 min", "watt")]),
|
||||
|
||||
dict(table("Detail par tracker", [flux("A", TRACKERS_FLUX)],
|
||||
IN, 5, 5, 13, 8,
|
||||
IN, 5, 7, 13, 8,
|
||||
"Les 52 panneaux en quatre plans : sud-est 40 degres, trois chaines sud "
|
||||
"35 degres, ouest 45 degres. Le suiveur de trois panneaux ne publie pas "
|
||||
"de mode de fonctionnement et n'apparait donc pas ici.",
|
||||
@@ -892,7 +905,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
' |> keep(columns: ["_value"])\n'
|
||||
' |> rename(columns: {_value: "Desequilibre"})'),
|
||||
flux_dernier("D", "%", "airtria_8_us2000c_state_of_health", "Sante", fenetre="48h")],
|
||||
IN, 18, 5, 6, 8,
|
||||
IN, 18, 7, 6, 8,
|
||||
"« Charge max » est la limite que le BMS impose au systeme entier. Le "
|
||||
"04/09 elle est tombee de 150 a 20 A en trois minutes, des 76 % de charge, "
|
||||
"au moment ou l'alarme de tension de cellule s'est declenchee — le parc "
|
||||
@@ -918,7 +931,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
('sensor.victron_battery_power', 'Batterie'),
|
||||
('sensor.victron_consumption_power_l1', 'Maison'),
|
||||
('sensor.victron_evcs_ac_power', 'Voiture')], fmt="table")],
|
||||
PG, 0, 13, 24, 9, "watt",
|
||||
PG, 0, 15, 24, 9, "watt",
|
||||
"Batterie positive : elle se charge. Reseau positif : il alimente. "
|
||||
"Aux instants ou tout est a zero sauf la maison, c'est la batterie qui "
|
||||
"porte tout.",
|
||||
@@ -932,7 +945,7 @@ systeme = dashboard("evcs-systeme", "Le systeme", (
|
||||
"transformations": FILTRE_VUE}),
|
||||
|
||||
dict(barchart("Energie par periode", [sql("A", ENERGIE_SQL, fmt="table")],
|
||||
PG, 0, 22, 24, 9, "kwatth",
|
||||
PG, 0, 24, 24, 9, "kwatth",
|
||||
"Le pas suit la periode choisie : l'heure jusqu'a 4 jours, le jour "
|
||||
"jusqu'a 70, le mois au-dela. Obtenue en integrant la puissance, PAS en "
|
||||
"lisant les compteurs kWh du GX : ceux-ci se remettent a zero sans le "
|
||||
|
||||
Reference in New Issue
Block a user