fix(grafana): complete heizraum.json with all 10 panels (Issue #4)

This commit is contained in:
orbitalo 2026-07-09 17:57:42 +00:00
parent 3343ee94e3
commit 3718154331

View file

@ -6,8 +6,6 @@
"schemaVersion": 39,
"version": 1,
"refresh": "30s",
"time": {"from": "now-6h", "to": "now"},
"id": null,
"panels": [
{
"id": 1,
@ -20,16 +18,211 @@
"unit": "none",
"decimals": 0,
"thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "green", "value": 1}]},
"color": {"mode": "thresholds"},
"mappings": [
{"type": "value", "options": {"1": {"text": "ONLINE", "color": "green", "index": 0}, "0": {"text": "OFFLINE", "color": "red", "index": 1}}},
{"type": "special", "options": {"match": "null", "result": {"text": "OFFLINE", "color": "red", "index": 2}}}
],
"noValue": "OFFLINE",
"color": {"mode": "thresholds"}
"noValue": "OFFLINE"
}
},
"options": {"reduceOptions": {"values": false, "calcs": ["lastNotNull"]}, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "none", "justifyMode": "auto"},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT last(\"value\") FROM \"node_status\" WHERE \"node\"='heizraum'", "rawQuery": true}]
},
{
"id": 2,
"gridPos": {"h": 4, "w": 4, "x": 4, "y": 0},
"type": "gauge",
"title": "Puffer SoC %",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "percent",
"decimals": 0,
"min": 0,
"max": 100,
"thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "orange", "value": 25}, {"color": "yellow", "value": 50}, {"color": "green", "value": 75}]},
"color": {"mode": "thresholds"}
}
},
"options": {"reduceOptions": {"values": false, "calcs": ["lastNotNull"]}, "orientation": "auto", "showThresholdLabels": false, "showThresholdMarkers": true},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^puffer_/ AND $timeFilter GROUP BY time($__interval)", "rawQuery": true}]
},
{
"id": 3,
"gridPos": {"h": 10, "w": 24, "x": 0, "y": 4},
"type": "timeseries",
"title": "Pufferschichtung",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^puffer_/ AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "5 Schichten Pufferspeicher (1=oben … 5=unten)"
},
{
"id": 4,
"gridPos": {"h": 10, "w": 24, "x": 0, "y": 14},
"type": "timeseries",
"title": "Heizkreise",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^hk_/ AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "hk_vl_zum_mischer, hk_vl_nach_mischer, hk_rl_1_links, hk_rl_2_links, hk_rl_3_nebengelass, hk_rl_gesamt"
},
{
"id": 5,
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 24},
"type": "timeseries",
"title": "Thermosolar",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^solar_/ AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "solar_vl, solar_rl"
},
{
"id": 6,
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 24},
"type": "timeseries",
"title": "Erzeuger Öl",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^oel_/ AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "oel_vl, oel_rl"
},
{
"id": 7,
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 32},
"type": "timeseries",
"title": "Erzeuger Holzvergaser",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\" =~ /^hv_/ AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "hv_vl, hv_body, hv_rl"
},
{
"id": 8,
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 32},
"type": "timeseries",
"title": "Warmwasser / Außen",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND (\"sensor\"='ww_zirku_rl' OR \"sensor\"='aussen_heizraum') AND $timeFilter GROUP BY time($__interval), \"sensor\"", "rawQuery": true}],
"description": "ww_zirku_rl, aussen_heizraum"
},
{
"id": 9,
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 40},
"type": "timeseries",
"title": "Spreizung ΔT (VLRL)",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "off"}
}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [
{"refId": "oel_vl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='oel_vl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false},
{"refId": "oel_vl_rl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='oel_rl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false},
{"refId": "hv_vl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='hv_vl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false},
{"refId": "hv_vl_rl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='hv_rl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false},
{"refId": "solar_vl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='solar_vl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false},
{"refId": "solar_vl_rl", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='solar_rl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "hide": false}
],
"transformations": [
{"id": "calculateField", "options": {"mode": "binary", "binary": {"left": "oel_vl.value", "operator": "-", "right": "oel_rl.value"}, "alias": "ΔT Öl"}},
{"id": "calculateField", "options": {"mode": "binary", "binary": {"left": "hv_vl.value", "operator": "-", "right": "hv_rl.value"}, "alias": "ΔT HV"}},
{"id": "calculateField", "options": {"mode": "binary", "binary": {"left": "solar_vl.value", "operator": "-", "right": "solar_rl.value"}, "alias": "ΔT Solar"}},
{"id": "organize", "options": {"excludeByName": {"oel_vl.value": true, "oel_rl.value": true, "hv_vl.value": true, "hv_rl.value": true, "solar_vl.value": true, "solar_rl.value": true}}}
],
"description": "Spreizung ΔT = Vorlauf Rücklauf für Öl-, Holzvergaser- und Solarkreis. Positiv = Wärmeabgabe."
},
{
"id": 10,
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 48},
"type": "timeseries",
"title": "HV-Rücklauf-Wächter",
"datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"},
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 2, "fillOpacity": 10, "gradientMode": "none", "spanNulls": 300000, "showPoints": "never", "pointSize": 5,
"stacking": {"mode": "none", "group": "A"}, "axisPlacement": "auto", "axisLabel": "", "axisColorMode": "text", "scaleDistribution": {"type": "linear"}, "axisCenteredZero": false,
"hideFrom": {"tooltip": false, "viz": false, "legend": false}, "thresholdsStyle": {"mode": "area"}
},
"thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "orange", "value": 45}, {"color": "yellow", "value": 55}, {"color": "green", "value": 60}]}
}
},
"options": {"legend": {"displayMode": "table", "placement": "bottom", "calcs": ["last", "mean", "max"]}, "tooltip": {"mode": "multi", "sort": "none"}},
"targets": [{"refId": "A", "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, "query": "SELECT mean(\"value\") FROM \"temperature\" WHERE \"node\"='heizraum' AND \"sensor\"='hv_rl' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true}],
"description": "HV-Rücklauftemperatur. Soll >5560 °C im Betrieb (Mischventil-Diagnose)."
}
]
],
"time": {"from": "now-6h", "to": "now"},
"id": null
}