From 5dd791aae055dd6d089fa614f154e0a4b2436af5 Mon Sep 17 00:00:00 2001 From: Homelab Cursor Date: Sat, 27 Jun 2026 11:47:53 +0200 Subject: [PATCH] garage_decke: VL/RL-Anzeige folgt KD-Flussrichtung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Schalter tauscht hydraulische Zuordnung der fest montierten Fühler; ΔT bleibt Rücklauf minus Vorlauf. --- infra/grafana/garage_decke.json | 228 +++++++++++++++++++++++++++----- 1 file changed, 195 insertions(+), 33 deletions(-) diff --git a/infra/grafana/garage_decke.json b/infra/grafana/garage_decke.json index cfae42efd..fbd1c50cc 100644 --- a/infra/grafana/garage_decke.json +++ b/infra/grafana/garage_decke.json @@ -9,7 +9,7 @@ ], "timezone": "browser", "schemaVersion": 39, - "version": 3, + "version": 4, "refresh": "30s", "panels": [ { @@ -77,9 +77,43 @@ "uid": "ffptl25vzylfke" }, "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter", - "rawQuery": true + "rawQuery": true, + "hide": true + }, + { + "refId": "B", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "RL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B - ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": false + }, + { + "refId": "VL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B + ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": true } - ] + ], + "description": "Rücklauf Kältedecke (wärmer). Bei umgekehrter Flussrichtung wird der passende Rohr-Fühler per Schalter zugeordnet — Influx-Tags bleiben fix." }, { "id": 2, @@ -214,10 +248,44 @@ "type": "influxdb", "uid": "ffptl25vzylfke" }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "B", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter", - "rawQuery": true + "rawQuery": true, + "hide": true + }, + { + "refId": "RL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B - ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": true + }, + { + "refId": "VL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B + ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": false } - ] + ], + "description": "Vorlauf Kältedecke (kälter). Zuordnung über KD Flussrichtung oben." }, { "id": 4, @@ -383,7 +451,33 @@ "showPoints": "never", "axisPlacement": "auto" } - } + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "RL_KD" + }, + "properties": [ + { + "id": "displayName", + "value": "RL Klimadecke" + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "VL_KD" + }, + "properties": [ + { + "id": "displayName", + "value": "VL Kältedecke" + } + ] + } + ] }, "options": { "legend": { @@ -403,13 +497,46 @@ }, "targets": [ { - "refId": "rl_klimadecke", + "refId": "KD_A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, - "query": "SELECT mean(\"value\") AS \"RL Klimadecke\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter GROUP BY time($__interval)", - "rawQuery": true + "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter GROUP BY time($__interval)", + "rawQuery": true, + "hide": true + }, + { + "refId": "KD_B", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter GROUP BY time($__interval)", + "rawQuery": true, + "hide": true + }, + { + "refId": "RL_KD", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B - ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": false + }, + { + "refId": "VL_KD", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B + ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": false }, { "refId": "pwt", @@ -420,15 +547,6 @@ "query": "SELECT mean(\"value\") AS \"PWT-Oberfläche\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='pwt' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true }, - { - "refId": "vl_kaeltedecke", - "datasource": { - "type": "influxdb", - "uid": "ffptl25vzylfke" - }, - "query": "SELECT mean(\"value\") AS \"VL Kältedecke\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter GROUP BY time($__interval)", - "rawQuery": true - }, { "refId": "vl_brunnen", "datasource": { @@ -453,7 +571,7 @@ "id": 7, "type": "stat", "title": "ΔT Kältedecke", - "description": "Wärmeaufnahme Kältedecke. Richtung über Variable „KD Flussrichtung“ oben: Normal = rl_klimadecke − vl_kaeltedecke, Umgekehrt = vl − rl (2. Pumpe).", + "description": "Wärmeaufnahme Kältedecke = Rücklauf − Vorlauf (hydraulisch, unabhängig vom Flussrichtungs-Schalter).", "gridPos": { "h": 4, "w": 6, @@ -510,7 +628,7 @@ }, "targets": [ { - "refId": "RL", + "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" @@ -520,7 +638,7 @@ "hide": true }, { - "refId": "VL", + "refId": "B", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" @@ -529,6 +647,28 @@ "rawQuery": true, "hide": true }, + { + "refId": "RL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B - ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": true + }, + { + "refId": "VL", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B + ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": true + }, { "refId": "DT", "datasource": { @@ -537,7 +677,7 @@ "name": "Expression" }, "type": "math", - "expression": "${kd_flussrichtung} * ($RL - $VL)", + "expression": "$RL - $VL", "hide": false } ] @@ -932,23 +1072,45 @@ }, "targets": [ { - "refId": "RL_KD", + "refId": "KD_A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, - "query": "SELECT mean(\"value\") AS \"RL KD\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter GROUP BY time($__interval)", + "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": true }, + { + "refId": "KD_B", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter GROUP BY time($__interval)", + "rawQuery": true, + "hide": true + }, + { + "refId": "RL_KD", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "($A + $B - ${kd_flussrichtung} * ($A - $B)) / 2", + "hide": true + }, { "refId": "VL_KD", "datasource": { - "type": "influxdb", - "uid": "ffptl25vzylfke" + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" }, - "query": "SELECT mean(\"value\") AS \"VL KD\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter GROUP BY time($__interval)", - "rawQuery": true, + "type": "math", + "expression": "($A + $B + ${kd_flussrichtung} * ($A - $B)) / 2", "hide": true }, { @@ -959,7 +1121,7 @@ "name": "Expression" }, "type": "math", - "expression": "${kd_flussrichtung} * ($RL_KD - $VL_KD)", + "expression": "$RL_KD - $VL_KD", "hide": false }, { @@ -1016,10 +1178,10 @@ { "current": { "selected": true, - "text": "Umgekehrt (VL−RL)", + "text": "Umgekehrt (Fühler getauscht)", "value": "-1" }, - "description": "Flussrichtung Kältedecke: Sensor-Tags rl_klimadecke/vl_kaeltedecke bleiben am Rohr, ΔT wird mit Faktor 1 (RL−VL) oder −1 (VL−RL) berechnet. Stand 27.06.: umgekehrt (2. Pumpe, Entlüftung).", + "description": "Flussrichtung Kältedecke: tauscht hydraulische VL/RL-Zuordnung der fest montierten Fühler (rl_klimadecke, vl_kaeltedecke). Normal = Standard; Umgekehrt = 2. Pumpe / Entlüftung.", "hide": 0, "includeAll": false, "label": "KD Flussrichtung", @@ -1028,12 +1190,12 @@ "options": [ { "selected": false, - "text": "Normal (RL−VL)", + "text": "Normal (Fühler = VL/RL)", "value": "1" }, { "selected": true, - "text": "Umgekehrt (VL−RL)", + "text": "Umgekehrt (Fühler getauscht)", "value": "-1" } ],