{ "uid": "garage_decke", "title": "Garage Decke", "tags": [ "garage", "temperatur", "decke", "shelly" ], "timezone": "browser", "schemaVersion": 39, "version": 11, "refresh": "30s", "panels": [ { "id": 1, "type": "stat", "title": "RL Klimadecke", "gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 5 }, { "color": "orange", "value": 28 }, { "color": "red", "value": 35 } ] }, "color": { "mode": "thresholds" } } }, "options": { "reduceOptions": { "values": false, "calcs": [ "lastNotNull" ] }, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "area", "justifyMode": "auto" }, "targets": [ { "refId": "A", "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": "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} * ($B - $A)) / 2", "hide": false }, { "refId": "VL", "datasource": { "type": "__expr__", "uid": "__expr__", "name": "Expression" }, "type": "math", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 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, "type": "stat", "title": "PWT-Oberfläche", "gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 5 }, { "color": "orange", "value": 28 }, { "color": "red", "value": 35 } ] }, "color": { "mode": "thresholds" } } }, "options": { "reduceOptions": { "values": false, "calcs": [ "lastNotNull" ] }, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "area", "justifyMode": "auto" }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='pwt' AND $timeFilter", "rawQuery": true } ] }, { "id": 3, "type": "stat", "title": "VL Kältedecke", "gridPos": { "h": 4, "w": 4, "x": 8, "y": 0 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 5 }, { "color": "orange", "value": 28 }, { "color": "red", "value": 35 } ] }, "color": { "mode": "thresholds" } } }, "options": { "reduceOptions": { "values": false, "calcs": [ "lastNotNull" ] }, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "area", "justifyMode": "auto" }, "targets": [ { "refId": "A", "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": "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} * ($B - $A)) / 2", "hide": true }, { "refId": "VL", "datasource": { "type": "__expr__", "uid": "__expr__", "name": "Expression" }, "type": "math", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2", "hide": false } ], "description": "Vorlauf Kältedecke (kälter). Zuordnung über KD Flussrichtung oben." }, { "id": 4, "type": "stat", "title": "VL Brunnen (vor PWT)", "gridPos": { "h": 4, "w": 4, "x": 12, "y": 0 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 5 }, { "color": "orange", "value": 28 }, { "color": "red", "value": 35 } ] }, "color": { "mode": "thresholds" } } }, "options": { "reduceOptions": { "values": false, "calcs": [ "lastNotNull" ] }, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "area", "justifyMode": "auto" }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter", "rawQuery": true } ] }, { "id": 5, "type": "stat", "title": "RL Brunnen (nach PWT)", "gridPos": { "h": 4, "w": 4, "x": 16, "y": 0 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 5 }, { "color": "orange", "value": 28 }, { "color": "red", "value": 35 } ] }, "color": { "mode": "thresholds" } } }, "options": { "reduceOptions": { "values": false, "calcs": [ "lastNotNull" ] }, "orientation": "auto", "textMode": "auto", "colorMode": "background", "graphMode": "area", "justifyMode": "auto" }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", "rawQuery": true } ] }, { "id": 6, "type": "timeseries", "title": "Garage Decke - Verlauf", "gridPos": { "h": 10, "w": 24, "x": 0, "y": 8 }, "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "fieldConfig": { "defaults": { "unit": "celsius", "custom": { "drawStyle": "line", "lineInterpolation": "linear", "lineWidth": 2, "fillOpacity": 10, "spanNulls": 300000, "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": { "displayMode": "table", "placement": "bottom", "calcs": [ "last", "mean", "max", "min" ] }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "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": "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} * ($B - $A)) / 2", "hide": false }, { "refId": "VL_KD", "datasource": { "type": "__expr__", "uid": "__expr__", "name": "Expression" }, "type": "math", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2", "hide": false }, { "refId": "pwt", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "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_brunnen", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "query": "SELECT mean(\"value\") AS \"VL Brunnen (vor PWT)\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true }, { "refId": "rl_brunnen", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "query": "SELECT mean(\"value\") AS \"RL Brunnen (nach PWT)\" FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter GROUP BY time($__interval)", "rawQuery": true } ] }, { "id": 7, "type": "stat", "title": "ΔT Kältedecke", "description": "Wärmeaufnahme Kältedecke = Rücklauf (warm) − Vorlauf (kalt). Flussrichtung tauscht Zuordnung der fest montierten Fühler.", "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": "A", "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": "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} * ($B - $A)) / 2", "hide": true }, { "refId": "VL", "datasource": { "type": "__expr__", "uid": "__expr__", "name": "Expression" }, "type": "math", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2", "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 (Ziel >684 W)", "description": "Q = l/min × ΔT × 0,0698 kW. Benchmark: 684 W (gemessen 3,5 l/min, isolierte Fühler). Grün ab 0,684 kW.", "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": "red", "value": null }, { "color": "orange", "value": 0.5 }, { "color": "yellow", "value": 0.62 }, { "color": "green", "value": 0.684 } ] } } }, "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" } }, { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "green", "value": 0.684 } ] } } ] } ] }, "options": { "legend": { "displayMode": "table", "placement": "bottom", "calcs": [ "last", "mean", "max", "min" ] }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "ffptl25vzylfke" }, "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": "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} * ($B - $A)) / 2", "hide": true }, { "refId": "VL_KD", "datasource": { "type": "__expr__", "uid": "__expr__", "name": "Expression" }, "type": "math", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2", "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": "Umgekehrt (Fühler getauscht)", "value": "-1" }, "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", "multi": false, "name": "kd_flussrichtung", "options": [ { "selected": false, "text": "Normal (Fühler = VL/RL)", "value": "1" }, { "selected": true, "text": "Umgekehrt (Fühler getauscht)", "value": "-1" } ], "query": "1,-1", "skipUrlSync": false, "type": "custom" }, { "current": { "selected": true, "text": "3.5", "value": "3.5" }, "description": "Brunnen-Volumenstrom l/min. Gemessen 27.06.: 3,5 (ohne Verstaerkerpumpe). Nach 50-W-Pumpe am Brunnenausgang neu messen und Wert anpassen.", "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": true, "text": "3.5", "value": "3.5" }, { "selected": false, "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" }, { "selected": false, "text": "5", "value": "5" }, { "selected": false, "text": "5.5", "value": "5.5" }, { "selected": false, "text": "6", "value": "6" }, { "selected": false, "text": "7", "value": "7" }, { "selected": false, "text": "8", "value": "8" } ], "query": "3,3.25,3.5,3.75,4,4.25,4.5,5,5.5,6,7,8", "skipUrlSync": false, "type": "custom" } ] } }