fix garage_decke: Stat-Panels stabil (kein Rot/Grün-Flackern)

filterByRefId, eine Math-Expression, Wert-Farbe statt Hintergrund, blau bei Lücke.
This commit is contained in:
Homelab Cursor 2026-06-27 14:20:17 +02:00
parent 1bc71b9a81
commit b8d2898e92

View file

@ -9,7 +9,7 @@
], ],
"timezone": "browser", "timezone": "browser",
"schemaVersion": 39, "schemaVersion": 39,
"version": 12, "version": 13,
"refresh": "30s", "refresh": "30s",
"panels": [ "panels": [
{ {
@ -61,12 +61,13 @@
"values": false, "values": false,
"calcs": [ "calcs": [
"lastNotNull" "lastNotNull"
] ],
"fields": ""
}, },
"orientation": "auto", "orientation": "auto",
"textMode": "auto", "textMode": "auto",
"colorMode": "background", "colorMode": "value",
"graphMode": "area", "graphMode": "none",
"justifyMode": "auto" "justifyMode": "auto"
}, },
"targets": [ "targets": [
@ -77,8 +78,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "B", "refId": "B",
@ -87,8 +87,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "RL", "refId": "RL",
@ -98,22 +97,20 @@
"name": "Expression" "name": "Expression"
}, },
"type": "math", "type": "math",
"expression": "($A + $B - ${kd_flussrichtung} * ($B - $A)) / 2", "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." "description": "Rücklauf Kältedecke (wärmer). Bei umgekehrter Flussrichtung wird der passende Rohr-Fühler per Schalter zugeordnet — Influx-Tags bleiben fix.",
"transformations": [
{
"id": "filterByRefId",
"options": {
"include": [
"RL"
]
}
}
]
}, },
{ {
"id": 2, "id": 2,
@ -233,12 +230,13 @@
"values": false, "values": false,
"calcs": [ "calcs": [
"lastNotNull" "lastNotNull"
] ],
"fields": ""
}, },
"orientation": "auto", "orientation": "auto",
"textMode": "auto", "textMode": "auto",
"colorMode": "background", "colorMode": "value",
"graphMode": "area", "graphMode": "none",
"justifyMode": "auto" "justifyMode": "auto"
}, },
"targets": [ "targets": [
@ -249,8 +247,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "B", "refId": "B",
@ -259,19 +256,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter", "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} * ($B - $A)) / 2",
"hide": true
}, },
{ {
"refId": "VL", "refId": "VL",
@ -281,11 +266,20 @@
"name": "Expression" "name": "Expression"
}, },
"type": "math", "type": "math",
"expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2", "expression": "($A + $B + ${kd_flussrichtung} * ($B - $A)) / 2"
"hide": false
} }
], ],
"description": "Vorlauf Kältedecke (kälter). Zuordnung über KD Flussrichtung oben." "description": "Vorlauf Kältedecke (kälter). Zuordnung über KD Flussrichtung oben.",
"transformations": [
{
"id": "filterByRefId",
"options": {
"include": [
"VL"
]
}
}
]
}, },
{ {
"id": 4, "id": 4,
@ -445,14 +439,13 @@
"unit": "celsius", "unit": "celsius",
"decimals": 2, "decimals": 2,
"color": { "color": {
"mode": "thresholds", "mode": "thresholds"
"fixedColor": "green"
}, },
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ {
"color": "red", "color": "#5794F2",
"value": null "value": null
}, },
{ {
@ -476,12 +469,13 @@
"values": false, "values": false,
"calcs": [ "calcs": [
"lastNotNull" "lastNotNull"
] ],
"fields": ""
}, },
"orientation": "auto", "orientation": "auto",
"textMode": "auto", "textMode": "auto",
"colorMode": "background", "colorMode": "value",
"graphMode": "area", "graphMode": "none",
"justifyMode": "auto" "justifyMode": "auto"
}, },
"targets": [ "targets": [
@ -492,8 +486,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_klimadecke' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "B", "refId": "B",
@ -502,30 +495,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_kaeltedecke' AND $timeFilter", "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} * ($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", "refId": "DT",
@ -535,8 +505,17 @@
"name": "Expression" "name": "Expression"
}, },
"type": "math", "type": "math",
"expression": "$RL - $VL", "expression": "- ${kd_flussrichtung} * ($B - $A)"
"hide": false }
],
"transformations": [
{
"id": "filterByRefId",
"options": {
"include": [
"DT"
]
}
} }
] ]
}, },
@ -560,14 +539,13 @@
"unit": "celsius", "unit": "celsius",
"decimals": 2, "decimals": 2,
"color": { "color": {
"mode": "thresholds", "mode": "thresholds"
"fixedColor": "green"
}, },
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ {
"color": "red", "color": "#5794F2",
"value": null "value": null
}, },
{ {
@ -591,12 +569,13 @@
"values": false, "values": false,
"calcs": [ "calcs": [
"lastNotNull" "lastNotNull"
] ],
"fields": ""
}, },
"orientation": "auto", "orientation": "auto",
"textMode": "auto", "textMode": "auto",
"colorMode": "background", "colorMode": "value",
"graphMode": "area", "graphMode": "none",
"justifyMode": "auto" "justifyMode": "auto"
}, },
"targets": [ "targets": [
@ -607,8 +586,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "B", "refId": "B",
@ -617,8 +595,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "DT", "refId": "DT",
@ -628,8 +605,17 @@
"name": "Expression" "name": "Expression"
}, },
"type": "math", "type": "math",
"expression": "$B - $A", "expression": "$B - $A"
"hide": false }
],
"transformations": [
{
"id": "filterByRefId",
"options": {
"include": [
"DT"
]
}
} }
] ]
}, },
@ -653,14 +639,13 @@
"unit": "kwatt", "unit": "kwatt",
"decimals": 2, "decimals": 2,
"color": { "color": {
"mode": "thresholds", "mode": "thresholds"
"fixedColor": "green"
}, },
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ {
"color": "red", "color": "#5794F2",
"value": null "value": null
}, },
{ {
@ -684,12 +669,13 @@
"values": false, "values": false,
"calcs": [ "calcs": [
"lastNotNull" "lastNotNull"
] ],
"fields": ""
}, },
"orientation": "auto", "orientation": "auto",
"textMode": "auto", "textMode": "auto",
"colorMode": "background", "colorMode": "value",
"graphMode": "area", "graphMode": "none",
"justifyMode": "auto" "justifyMode": "auto"
}, },
"targets": [ "targets": [
@ -700,8 +686,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='vl_brunnen' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
}, },
{ {
"refId": "B", "refId": "B",
@ -710,19 +695,7 @@
"uid": "ffptl25vzylfke" "uid": "ffptl25vzylfke"
}, },
"query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter", "query": "SELECT last(\"value\") FROM \"temperature\" WHERE \"node\"='garage_decke' AND \"sensor\"='rl_brunnen' AND $timeFilter",
"rawQuery": true, "rawQuery": true
"hide": true
},
{
"refId": "DT",
"datasource": {
"type": "__expr__",
"uid": "__expr__",
"name": "Expression"
},
"type": "math",
"expression": "$B - $A",
"hide": true
}, },
{ {
"refId": "Q", "refId": "Q",
@ -732,8 +705,17 @@
"name": "Expression" "name": "Expression"
}, },
"type": "math", "type": "math",
"expression": "${brunnen_durchfluss} * $DT * 0.0698", "expression": "${brunnen_durchfluss} * ($B - $A) * 0.0698"
"hide": false }
],
"transformations": [
{
"id": "filterByRefId",
"options": {
"include": [
"Q"
]
}
} }
] ]
}, },