From e0fb37341db03c9da210c3f788583c22c3990196 Mon Sep 17 00:00:00 2001 From: Homelab Cursor Date: Tue, 14 Jul 2026 22:08:26 +0200 Subject: [PATCH] auto-mirror: Live-Configs CT143 -> Git (2026-07-14) --- infra/grafana/heizraum.json | 977 +++++++++++++++++++++++++++++++---- infra/grafana/oelknoten.json | 15 +- infra/telegraf/openwb.conf | 118 ++--- 3 files changed, 955 insertions(+), 155 deletions(-) diff --git a/infra/grafana/heizraum.json b/infra/grafana/heizraum.json index d0eb16e3e..47521848b 100644 --- a/infra/grafana/heizraum.json +++ b/infra/grafana/heizraum.json @@ -1,228 +1,1019 @@ { "uid": "heizraum", "title": "Heizraum", - "tags": ["heizraum", "temperatur", "puffer", "heizkreise"], + "tags": [ + "heizraum", + "temperatur", + "puffer", + "heizkreise" + ], "timezone": "browser", "schemaVersion": 39, - "version": 1, + "version": 3, "refresh": "30s", "panels": [ { "id": 1, - "gridPos": {"h": 4, "w": 4, "x": 0, "y": 0}, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 0 + }, "type": "stat", - "title": "Status", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "title": "ESP32 IO", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, "fieldConfig": { "defaults": { "unit": "none", "decimals": 0, - "thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "green", "value": 1}]}, - "color": {"mode": "thresholds"}, + "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}}} + { + "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" } }, - "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}] + "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 + } + ], + "description": "ESP32 Heizraum Aktor/Display LWT" }, { "id": 2, - "gridPos": {"h": 4, "w": 4, "x": 4, "y": 0}, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 0 + }, "type": "gauge", "title": "Puffer SoC %", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "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"} + "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}] + "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}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 4 + }, "type": "timeseries", "title": "Pufferschichtung", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "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"} + "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)" + "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 \u2026 5=unten)" }, { "id": 4, - "gridPos": {"h": 10, "w": 24, "x": 0, "y": 14}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 14 + }, "type": "timeseries", "title": "Heizkreise", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "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"} + "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}], + "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}, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 24 + }, "type": "timeseries", "title": "Thermosolar", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "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"} + "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}], + "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}, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 24 + }, "type": "timeseries", - "title": "Erzeuger Öl", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "title": "Erzeuger \u00d6l", + "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"} + "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}], + "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}, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 32 + }, "type": "timeseries", "title": "Erzeuger Holzvergaser", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "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"} + "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}], + "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}, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 32 + }, "type": "timeseries", - "title": "Warmwasser / Außen", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "title": "Warmwasser / Au\u00dfen", + "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"} + "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}], + "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}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 40 + }, "type": "timeseries", - "title": "Spreizung ΔT (VL−RL)", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "title": "Spreizung \u0394T (VL\u2212RL)", + "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"} + "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"}}, + "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} + { + "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}}} + { + "id": "calculateField", + "options": { + "mode": "binary", + "binary": { + "left": "oel_vl.value", + "operator": "-", + "right": "oel_rl.value" + }, + "alias": "\u0394T \u00d6l" + } + }, + { + "id": "calculateField", + "options": { + "mode": "binary", + "binary": { + "left": "hv_vl.value", + "operator": "-", + "right": "hv_rl.value" + }, + "alias": "\u0394T HV" + } + }, + { + "id": "calculateField", + "options": { + "mode": "binary", + "binary": { + "left": "solar_vl.value", + "operator": "-", + "right": "solar_rl.value" + }, + "alias": "\u0394T 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." + "description": "Spreizung \u0394T = Vorlauf \u2212 R\u00fccklauf f\u00fcr \u00d6l-, Holzvergaser- und Solarkreis. Positiv = W\u00e4rmeabgabe." }, { "id": 10, - "gridPos": {"h": 8, "w": 24, "x": 0, "y": 48}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 48 + }, "type": "timeseries", - "title": "HV-Rücklauf-Wächter", - "datasource": {"type": "influxdb", "uid": "ffptl25vzylfke"}, + "title": "HV-R\u00fccklauf-W\u00e4chter", + "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"} + "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}]} + "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 >55–60 °C im Betrieb (Mischventil-Diagnose)." + "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\u00fccklauftemperatur. Soll >55\u201360 \u00b0C im Betrieb (Mischventil-Diagnose)." + }, + { + "id": 11, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 0 + }, + "type": "stat", + "title": "Sensor-1", + "datasource": { + "type": "influxdb", + "uid": "ffptl25vzylfke" + }, + "fieldConfig": { + "defaults": { + "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" + } + }, + "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-sensor-1'", + "rawQuery": true + } + ], + "description": "ESP Easy heizraum-sensor-1 LWT" } ], - "time": {"from": "now-6h", "to": "now"}, - "id": null -} + "time": { + "from": "now-6h", + "to": "now" + }, + "id": null, + "links": [ + { + "title": "Nebengelass / Erdtrasse", + "type": "link", + "url": "/d/heizung_nebengelass", + "icon": "dashboard", + "targetBlank": false + } + ] +} \ No newline at end of file diff --git a/infra/grafana/oelknoten.json b/infra/grafana/oelknoten.json index 26ff4eb20..70880cb86 100644 --- a/infra/grafana/oelknoten.json +++ b/infra/grafana/oelknoten.json @@ -8,7 +8,7 @@ ], "timezone": "browser", "schemaVersion": 39, - "version": 1, + "version": 2, "refresh": "30s", "panels": [ { @@ -615,5 +615,14 @@ "from": "now-6h", "to": "now" }, - "id": null -} + "id": null, + "links": [ + { + "title": "Nebengelass / Erdtrasse", + "type": "link", + "url": "/d/heizung_nebengelass", + "icon": "dashboard", + "targetBlank": false + } + ] +} \ No newline at end of file diff --git a/infra/telegraf/openwb.conf b/infra/telegraf/openwb.conf index 48d8049ec..23a9acdaf 100644 --- a/infra/telegraf/openwb.conf +++ b/infra/telegraf/openwb.conf @@ -1,60 +1,60 @@ -[[outputs.influxdb]] - urls = ["http://127.0.0.1:8086"] - database = "iobroker" - namedrop = ["temperature", "io_state", "power", "node_status"] - -[[inputs.mqtt_consumer]] - servers = ["tcp://192.168.178.104:1883"] - topics = [ - "openWB/global/WHouseConsumption", - "openWB/global/DailyYieldHausverbrauchKwh", - "openWB/evu/W", - "openWB/evu/WhImported", - "openWB/evu/WhExported", - "openWB/evu/DailyYieldImportKwh", - "openWB/evu/DailyYieldExportKwh", - "openWB/evu/WPhase1", - "openWB/evu/WPhase2", - "openWB/evu/WPhase3", - "openWB/pv/W", - "openWB/pv/WhCounter", - "openWB/pv/DailyYieldKwh", - "openWB/housebattery/W", - "openWB/housebattery/%Soc", - "openWB/housebattery/WhImported", - "openWB/housebattery/WhExported", - "openWB/housebattery/DailyYieldImportKwh", - "openWB/housebattery/DailyYieldExportKwh" - ] - data_format = "value" - data_type = "float" - name_override = "openwb" - topic_tag = "topic" - -# OpenWB Wallbox/Ladepunkt Daten -[[inputs.mqtt_consumer]] - servers = ["tcp://192.168.178.104:1883"] - topics = [ - "openWB/lp/1/W", - "openWB/lp/1/%Soc", - "openWB/lp/1/kWhCounter", - "openWB/lp/1/kWhDailyCharged", - "openWB/lp/1/kWhChargedSincePlugged", - "openWB/lp/1/APhase1", - "openWB/lp/1/APhase2", - "openWB/lp/1/APhase3", - "openWB/lp/1/boolPlugStat", - "openWB/lp/1/boolChargeStat", - "openWB/lp/1/ChargeStatus", - "openWB/lp/1/kmCharged", - "openWB/global/kWhCounterAllChargePoints", - "openWB/global/DailyYieldAllChargePointsKwh" - ] - data_format = "value" - data_type = "float" - name_override = "openwb_wallbox" - topic_tag = "topic" - - [inputs.mqtt_consumer.tags] - source = "openwb" +[[outputs.influxdb]] + urls = ["http://127.0.0.1:8086"] + database = "iobroker" + namedrop = ["temperature", "io_state", "power", "node_status"] + +[[inputs.mqtt_consumer]] + servers = ["tcp://192.168.178.104:1883"] + topics = [ + "openWB/global/WHouseConsumption", + "openWB/global/DailyYieldHausverbrauchKwh", + "openWB/evu/W", + "openWB/evu/WhImported", + "openWB/evu/WhExported", + "openWB/evu/DailyYieldImportKwh", + "openWB/evu/DailyYieldExportKwh", + "openWB/evu/WPhase1", + "openWB/evu/WPhase2", + "openWB/evu/WPhase3", + "openWB/pv/W", + "openWB/pv/WhCounter", + "openWB/pv/DailyYieldKwh", + "openWB/housebattery/W", + "openWB/housebattery/%Soc", + "openWB/housebattery/WhImported", + "openWB/housebattery/WhExported", + "openWB/housebattery/DailyYieldImportKwh", + "openWB/housebattery/DailyYieldExportKwh" + ] + data_format = "value" + data_type = "float" + name_override = "openwb" + topic_tag = "topic" + +# OpenWB Wallbox/Ladepunkt Daten +[[inputs.mqtt_consumer]] + servers = ["tcp://192.168.178.104:1883"] + topics = [ + "openWB/lp/1/W", + "openWB/lp/1/%Soc", + "openWB/lp/1/kWhCounter", + "openWB/lp/1/kWhDailyCharged", + "openWB/lp/1/kWhChargedSincePlugged", + "openWB/lp/1/APhase1", + "openWB/lp/1/APhase2", + "openWB/lp/1/APhase3", + "openWB/lp/1/boolPlugStat", + "openWB/lp/1/boolChargeStat", + "openWB/lp/1/ChargeStatus", + "openWB/lp/1/kmCharged", + "openWB/global/kWhCounterAllChargePoints", + "openWB/global/DailyYieldAllChargePointsKwh" + ] + data_format = "value" + data_type = "float" + name_override = "openwb_wallbox" + topic_tag = "topic" + + [inputs.mqtt_consumer.tags] + source = "openwb" device = "wallbox" \ No newline at end of file