diff --git a/infra/grafana/garage_decke.json b/infra/grafana/garage_decke.json index ccd6784c9..90790babe 100644 --- a/infra/grafana/garage_decke.json +++ b/infra/grafana/garage_decke.json @@ -9,7 +9,7 @@ ], "timezone": "browser", "schemaVersion": 39, - "version": 1, + "version": 2, "refresh": "30s", "panels": [ { @@ -365,7 +365,7 @@ "h": 10, "w": 24, "x": 0, - "y": 4 + "y": 8 }, "datasource": { "type": "influxdb", @@ -448,10 +448,624 @@ "rawQuery": true } ] + }, + { + "id": 7, + "type": "stat", + "title": "ΔT Kältedecke (RL − VL)", + "description": "Wärmeaufnahme Kältedecke: rl_klimadecke minus vl_kaeltedecke. Höher = mehr Kühlleistung bei Durchfluss.", + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 4 + }, + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "unit": "celsius", + "decimals": 2, + "color": { + "mode": "thresholds", + "fixedColor": "green" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "yellow", + "value": 1.5 + }, + { + "color": "green", + "value": 2.5 + } + ] + } + } + }, + "options": { + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ] + }, + "orientation": "auto", + "textMode": "auto", + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto" + }, + "targets": [ + { + "refId": "RL", + "datasource": { + "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": "VL", + "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": "DT", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL - $VL", + "hide": false + } + ] + }, + { + "id": 8, + "type": "stat", + "title": "ΔT Brunnen (RL − VL)", + "description": "Temperaturhub Brunnenkreis am PWT: rl_brunnen minus vl_brunnen (nach Umbau Tauchhülse aussagekräftig).", + "gridPos": { + "h": 4, + "w": 6, + "x": 6, + "y": 4 + }, + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "unit": "celsius", + "decimals": 2, + "color": { + "mode": "thresholds", + "fixedColor": "green" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "yellow", + "value": 1.5 + }, + { + "color": "green", + "value": 2.5 + } + ] + } + } + }, + "options": { + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ] + }, + "orientation": "auto", + "textMode": "auto", + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto" + }, + "targets": [ + { + "refId": "RL", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "VL", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "DT", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL - $VL", + "hide": false + } + ] + }, + { + "id": 9, + "type": "stat", + "title": "Leistung Brunnen", + "description": "Q ≈ Durchfluss [l/min] × ΔT [K] × 0,0698 → kW. Durchfluss oben einstellbar (typ. 3–4,5 l/min).", + "gridPos": { + "h": 4, + "w": 6, + "x": 12, + "y": 4 + }, + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "unit": "kwatt", + "decimals": 2, + "color": { + "mode": "thresholds", + "fixedColor": "green" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "blue", + "value": null + }, + { + "color": "green", + "value": 0.5 + }, + { + "color": "yellow", + "value": 2 + }, + { + "color": "orange", + "value": 4 + } + ] + } + } + }, + "options": { + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ] + }, + "orientation": "auto", + "textMode": "auto", + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto" + }, + "targets": [ + { + "refId": "RL", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "VL", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "DT", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL - $VL", + "hide": true + }, + { + "refId": "Q", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "${brunnen_durchfluss} * $DT * 0.0698", + "hide": false + } + ] + }, + { + "id": 10, + "type": "stat", + "title": "PWT ΔT (RL Brunnen − Oberfläche)", + "description": "Plausibilitätscheck: Differenz Brunnen-RL zu PWT-Oberfläche. Großer Wert = Fühler/Position noch prüfen.", + "gridPos": { + "h": 4, + "w": 6, + "x": 18, + "y": 4 + }, + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "unit": "celsius", + "decimals": 1, + "color": { + "mode": "thresholds", + "fixedColor": "green" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "yellow", + "value": 1.5 + }, + { + "color": "green", + "value": 2.5 + } + ] + } + } + }, + "options": { + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ] + }, + "orientation": "auto", + "textMode": "auto", + "colorMode": "background", + "graphMode": "area", + "justifyMode": "auto" + }, + "targets": [ + { + "refId": "RL", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "PWT", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='pwt' AND $timeFilter", + "rawQuery": true, + "hide": true + }, + { + "refId": "DT", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL - $PWT", + "hide": false + } + ] + }, + { + "id": 11, + "type": "timeseries", + "title": "ΔT Verlauf (KD + Brunnen)", + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 18 + }, + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "unit": "celsius", + "decimals": 2, + "custom": { + "drawStyle": "line", + "lineInterpolation": "linear", + "lineWidth": 2, + "fillOpacity": 15, + "spanNulls": 300000, + "showPoints": "never", + "axisPlacement": "auto" + } + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "DT_KD" + }, + "properties": [ + { + "id": "displayName", + "value": "ΔT Kältedecke" + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "DT_BW" + }, + "properties": [ + { + "id": "displayName", + "value": "ΔT Brunnen" + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "Q_BW" + }, + "properties": [ + { + "id": "displayName", + "value": "Leistung Brunnen" + }, + { + "id": "unit", + "value": "kwatt" + }, + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "purple" + } + } + ] + } + ] + }, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "calcs": [ + "last", + "mean", + "max", + "min" + ] + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "refId": "RL_KD", + "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)", + "rawQuery": true, + "hide": true + }, + { + "refId": "VL_KD", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "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, + "hide": true + }, + { + "refId": "DT_KD", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL_KD - $VL_KD", + "hide": false + }, + { + "refId": "RL_BW", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT mean(\"value\") AS \"RL Brunnen\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter GROUP BY time($__interval)", + "rawQuery": true, + "hide": true + }, + { + "refId": "VL_BW", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "query": "SELECT mean(\"value\") AS \"VL Brunnen\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter GROUP BY time($__interval)", + "rawQuery": true, + "hide": true + }, + { + "refId": "DT_BW", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "$RL_BW - $VL_BW", + "hide": false + }, + { + "refId": "Q_BW", + "datasource": { + "type": "__expr__", + "uid": "__expr__", + "name": "Expression" + }, + "type": "math", + "expression": "${brunnen_durchfluss} * $DT_BW * 0.0698", + "hide": false + } + ] } ], "time": { "from": "now-6h", "to": "now" + }, + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "3.75", + "value": "3.75" + }, + "description": "Brunnen-Volumenstrom in l/min (geschätzt/gemessen, typ. 3–4,5)", + "hide": 0, + "includeAll": false, + "label": "Brunnen l/min", + "multi": false, + "name": "brunnen_durchfluss", + "options": [ + { + "selected": false, + "text": "3", + "value": "3" + }, + { + "selected": false, + "text": "3.25", + "value": "3.25" + }, + { + "selected": false, + "text": "3.5", + "value": "3.5" + }, + { + "selected": true, + "text": "3.75", + "value": "3.75" + }, + { + "selected": false, + "text": "4", + "value": "4" + }, + { + "selected": false, + "text": "4.25", + "value": "4.25" + }, + { + "selected": false, + "text": "4.5", + "value": "4.5" + } + ], + "query": "3,3.25,3.5,3.75,4,4.25,4.5", + "skipUrlSync": false, + "type": "custom" + } + ] } -} \ No newline at end of file +}