|
|
# Grafana Dashboards erstellen
|
|
|
|
|
|
TODO: |
|
|
\ No newline at end of file |
|
|
Dieses Tutorial zeigt, wie das folgende Dashboard umgesetzt werden kann.
|
|
|
|
|
|

|
|
|
|
|
|
Dieses Dashboard zeigt die aktuelle Luftfeuchtigkeit und Temperatur an, sowie den jeweiligen Temperaturverlauf.
|
|
|
Es beinhaltet ebenfalls eine Abweichungsfunktion, mit der berechnet wird, in welchem Maße sich die aktuelle
|
|
|
Temperatur und Luftfeuchtigkeit vom Optimalzustand unterscheidet, also abweicht.
|
|
|
|
|
|
## Vorbedingungen
|
|
|
|
|
|
1. **Erreichbare InfluxDB Installation:** Eine InfluxDB Installation muss erreichbar sein.
|
|
|
2. **Protokollierung der Werte:** Die Temperatur und Luftfeuchtigkeit muss von bspw. IOBroker in die InfluxDB
|
|
|
gespeichert werden.
|
|
|
3. **Grafana InfluxDB Verbindung:** In Grafana muss die InfluxDB als Datenquelle konfiguriert sein.
|
|
|
|
|
|
## Anleitung
|
|
|
|
|
|
### Anleitung Graph Luftfeuchtigkeit
|
|
|
|
|
|
1. **Anlegen Dashboard:** In der Dashboard Übersicht von Grafana erstellt man ein neues Dashboard.
|
|
|

|
|
|
2. **Auswahl Datenquelle und Anlegen Panel:** Jeder Graph bzw. Panel ist eine Visualisierung. Für ein solches Panel
|
|
|
muss zunächst die Datenquelle genannt werden, bevor dieses konfiguriert werden kann.
|
|
|

|
|
|

|
|
|
3. Beginnen wir damit, dass wir das Panel für den Graphen der Luftfeuchtigkeit konfigurieren. Wie man auf dem folgenden
|
|
|
Screenshot erkennen kann, teilt sich die Seite in 3 Bereiche:
|
|
|
- Panel Vorschau (oben links mitte): Sobald die Datenqueries korrekt eingestellt sind, wird aufgrund der Panel
|
|
|
Konfiguration eine Vorschau des Graphen bzw. der Visualisierung angezeigt.
|
|
|
- Panel Konfiguration (rechts)
|
|
|
- Datenquellenkonfiguration (unten links mitte)
|
|
|

|
|
|
4. Im Query Bereich wählen wir nun einen der Messwerte aus. Diese sind so angelegt, wie in IOBroker die Baumstruktur
|
|
|
angelegt ist. Der "Baum" in IOBroker wird hier mit den Punkten getrennt als Messwert angezeigt. Wir wählen also
|
|
|
die Daten, die vom Luftfeuchtigkeitsmesser aufgezeichnet wurden.
|
|
|

|
|
|

|
|
|
5. Im vorherigen Schritt bekommen wir bereits eine Vorschau für den Graphen der aktuellen Luftfeuchtigkeit. Mittels des
|
|
|
Panels Konfigurationsmöglichkeiten auf der "rechten" Seite nehmen wir kleinere Anpassungen vor, damit beispielsweise
|
|
|
schneller erkennbar ist, wenn sich ein Wert als zu hoch oder zu niedrig erweist. Dabei schauen wir uns insbesondere
|
|
|
den Threshold Bereich an. Wenn konfiguriert, wie im folgenden Screenshot, werden Werte zwischen 40 und 60 als
|
|
|
Hellgrün angezeigt. Luftfeuchtigkeit darüber oder darunter können zu gesundheitlichen Problemen führen. Unter dem
|
|
|
Punkt: "Show Thresholds" wird im Optimalfall "As filled regions and lines (dashed)" angeklickt. Dadurch wird der
|
|
|
Hintergrund anstatt der Graphenfarblich markiert und ist somit einfacher zu erkennen. Im Anschluss speichern wir das
|
|
|
Panel und Dashboard.
|
|
|

|
|
|

|
|
|
|
|
|
### Visualisierung der aktuellen Luftfeuchtigkeit
|
|
|
|
|
|
1. Kopieren/Duplizieren des vorherigen Panels. Dafür klickt man auf die drei Punkte des angelegten Panels und unter
|
|
|
"more" findet sich dann der Button duplicate. Auf dem duplizierten Panel drücken wir dann auf Edit und bearbeiten
|
|
|
dieses Feld.
|
|
|
2. Für dieses Panel nutzen wir eine andere Form der Visualisierung. Für dieses Panel nutzen wir die Visualierungs "
|
|
|
Stat", die eine Anzeige einer einzigen Zahl ermöglicht.
|
|
|

|
|
|
3. Im rechten Konfigurationspanel wählen wir jetzt noch die Berechnungsmethode "Last *" aus. Das ermöglicht uns, dass
|
|
|
wir den letzten aufgezeichneten Wert, der in der InfluxDB gespeichert wurde, anzeigen können. _Für andere
|
|
|
Anwendungsfälle als den aktuell von uns ausgewählten kann man auch beispielsweise den Mittelwert oder Median, den
|
|
|
geringsten oder höchsten Wert anzeigen lassen._
|
|
|

|
|
|
4. Außerdem konfigurieren wir noch den Datentyp. Luftfeuchtigkeit wird in %H für Humidity gemessen.
|
|
|

|
|
|
5. Speichern von Panel und Dashboard.
|
|
|
|
|
|
### Visualisierung der aktuellen Temperatur
|
|
|
|
|
|
1. Kopieren/Duplizieren des vorherigen Panels. Dafür klickt man auf die drei Punkte des angelegten Panels und unter
|
|
|
"more" findet sich dann der Button duplicate. Auf dem duplizierten Panel drücken wir dann auf Edit und bearbeiten
|
|
|
dieses Feld.
|
|
|

|
|
|

|
|
|
2. In diesem Panel müssen wir nur den Messpunkt innerhalb des Queries verändern. Anstatt der Luftfeuchtigkeit wollen wir
|
|
|
die Temperatur anpassen.
|
|
|

|
|
|
3. Setzen eines Alias. Für jedes "Select" kann man sich ein Alias überlegen, sodass man nicht immer den langen Text des
|
|
|
Speicherorts innerhalb der InfluxDB bzw. IOBroker nutzen muss.
|
|
|

|
|
|
4. Anpassen der Threshold, da wir für die Temperatur natürlich andere Grenzen als für die Luftfeuchtigkeit haben.
|
|
|
40-60°C wäre deutlich über optimal ;)
|
|
|

|
|
|
5. Setzen der Messeinheit
|
|
|

|
|
|
6. Speichern von Panel und Dashboard.
|
|
|
|
|
|
### Anleitung Graph Temperatur
|
|
|
|
|
|
1. Analog zu den beiden oberen Punkten wird der Graph für die Luftfeuchtigkeit dupliziert und der Messwert sowie
|
|
|
Panel Konfiguration angepasst.
|
|
|
|
|
|
### Anleitung Abweichungsfunktion.
|
|
|
|
|
|
Während die Formel für eine solche Abweichungsformel nicht unbedingt sehr kompliziert ist, ist das Auswerten und
|
|
|
berechnen eines solchen Wertes mit Grafana recht umständlich. Im folgenden Tutorial wird nur auf die rudimentären
|
|
|
Techniken eingegangen, aus den Screenshots kann dann die Abweichungsformel selbstständig nachgebaut werden.
|
|
|
|
|
|
Wir nutzen die folgende Abweichungsformel:
|
|
|
|
|
|

|
|
|
|
|
|
- G_t => Gewichtungsfaktor für die Temperatur. Also wie wichtig ist die Temperatur im Vergleich zur Luftfeuchtigkeit.
|
|
|
- t => Optimale Temperatur. Wir haben die optimale Temperatur in einem Zimmer zum Beispiel auf 21 Grad definiert.
|
|
|
Hat man allerdings eine Zieltemperatur in HomeMatic IP eingetragen, kann man auch diese nehmen.
|
|
|
- c_t => Aktuelle Temperatur. Was ist die zu diesem Messwert gemessene Temperatur.
|
|
|
- G_h => Gewichtungsfaktor für die Luftfeuchtigkeit. Also wie wichtig ist die Luftfeuchtigkeit im Vergleich zur
|
|
|
Temperatur.
|
|
|
- h => Optimale Luftfeuchtigkeit. Wir haben die optimale Luftfeuchtigkeit in einem Zimmer zum Beispiel auf 50%H
|
|
|
definiert.
|
|
|
- c_h => Aktuelle Luftfeuchtigkeit. Was ist die zu diesem Messwert gemessene Luftfeuchtigkeit.
|
|
|
|
|
|
In unserem Dashboard werden wir nicht nur diese Formel nachbauen, sondern wir normieren diese zusätzlich noch so,
|
|
|
dass diese immer eine Wert zwischen 0 und 100 anzeigt. Je niedriger der Wert, desto niedriger die Abweichung vom
|
|
|
Optimalzustand.
|
|
|
|
|
|
1. Abfrage der Messwerte. Wir benötigen für diese Berechnung beides, Luftfeuctigkeit und Temperatur. Für beide Werte
|
|
|
legen wir uns einen Alias an.
|
|
|

|
|
|
2. Im Anschluss müssen wir diese Werte "transformieren". Dafür gibt es unterschiedlichste Möglichkeiten und Methoden.
|
|
|
Für eine ausführlichere Erklärung verweisen wir auf die Grafana Dokumentation. Wir brauchen für unsere Anleitung
|
|
|
ausschließlich die Transformation "Add field from calculation".
|
|
|

|
|
|
3. Ausführen der Berechnung. Wenn den Screenshots gefolgt wird, kann die Formel nachgebaut werden:
|
|
|

|
|
|

|
|
|

|
|
|

|
|
|

|
|
|
4. Hinzufügen eines weiteren Messpunktes. Anstatt von einer Optimaltemperatur von 21°C auszugehen, wollen wir von
|
|
|
unserer, in HomeMatic konfigurierten Zieltemperatur ausgehen. Dafür müssen wir diesen Messwert auslesen. Wird das
|
|
|
nicht benötigt, dann kann auch von beispielsweise der 21 ausgegangen werden.
|
|
|

|
|
|

|
|
|

|
|
|
5. Anlegen der Treshold. Wir haben beschlossen, eine Abweichung zwischen 0 und 50 noch als einigermaßen in "Ordnung" zu
|
|
|
betrachten und erst darüber Abweichungen als kritisch zu sehen. Diese Betrachtungsweise überlassen wir aber dem Leser
|
|
|
selbst.
|
|
|

|
|
|
6. Speichern von Panel und Dashboard.
|
|
|

|
|
|
|
|
|
### Visualisierung der aktuellen Abweichung
|
|
|
|
|
|
1. Analog zu den vorherigen Punkten kann das vorher angelegte Panel dupliziert werden und die Visualisierung "Stat"
|
|
|
ausgewählt werden.
|
|
|
|
|
|
|
|
|
|
|
|
## Download
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"annotations": {
|
|
|
"list": [
|
|
|
{
|
|
|
"builtIn": 1,
|
|
|
"datasource": {
|
|
|
"type": "grafana",
|
|
|
"uid": "-- Grafana --"
|
|
|
},
|
|
|
"enable": true,
|
|
|
"hide": true,
|
|
|
"iconColor": "rgba(0, 211, 255, 1)",
|
|
|
"name": "Annotations & Alerts",
|
|
|
"type": "dashboard"
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
"editable": true,
|
|
|
"fiscalYearStartMonth": 0,
|
|
|
"graphTooltip": 0,
|
|
|
"id": 3,
|
|
|
"links": [],
|
|
|
"liveNow": false,
|
|
|
"panels": [
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"mode": "thresholds"
|
|
|
},
|
|
|
"mappings": [],
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "light-red",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-yellow",
|
|
|
"value": 30
|
|
|
},
|
|
|
{
|
|
|
"color": "green",
|
|
|
"value": 40
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-yellow",
|
|
|
"value": 60
|
|
|
},
|
|
|
{
|
|
|
"color": "light-red",
|
|
|
"value": 70
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
"unit": "humidity"
|
|
|
},
|
|
|
"overrides": []
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 8,
|
|
|
"w": 7,
|
|
|
"x": 0,
|
|
|
"y": 0
|
|
|
},
|
|
|
"id": 3,
|
|
|
"options": {
|
|
|
"colorMode": "value",
|
|
|
"graphMode": "none",
|
|
|
"justifyMode": "center",
|
|
|
"orientation": "auto",
|
|
|
"reduceOptions": {
|
|
|
"calcs": [
|
|
|
"lastNotNull"
|
|
|
],
|
|
|
"fields": "",
|
|
|
"values": false
|
|
|
},
|
|
|
"textMode": "auto",
|
|
|
"wideLayout": true
|
|
|
},
|
|
|
"pluginVersion": "10.2.1",
|
|
|
"targets": [
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"$__interval"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.humidity",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Aktuelle Luftfeuchtigkeit",
|
|
|
"type": "stat"
|
|
|
},
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"mode": "palette-classic"
|
|
|
},
|
|
|
"custom": {
|
|
|
"axisBorderShow": false,
|
|
|
"axisCenteredZero": false,
|
|
|
"axisColorMode": "text",
|
|
|
"axisLabel": "",
|
|
|
"axisPlacement": "auto",
|
|
|
"barAlignment": 0,
|
|
|
"drawStyle": "line",
|
|
|
"fillOpacity": 0,
|
|
|
"gradientMode": "none",
|
|
|
"hideFrom": {
|
|
|
"legend": false,
|
|
|
"tooltip": false,
|
|
|
"viz": false
|
|
|
},
|
|
|
"insertNulls": 3600000,
|
|
|
"lineInterpolation": "linear",
|
|
|
"lineStyle": {
|
|
|
"fill": "solid"
|
|
|
},
|
|
|
"lineWidth": 1,
|
|
|
"pointSize": 5,
|
|
|
"scaleDistribution": {
|
|
|
"type": "linear"
|
|
|
},
|
|
|
"showPoints": "auto",
|
|
|
"spanNulls": 3600000,
|
|
|
"stacking": {
|
|
|
"group": "A",
|
|
|
"mode": "none"
|
|
|
},
|
|
|
"thresholdsStyle": {
|
|
|
"mode": "dashed+area"
|
|
|
}
|
|
|
},
|
|
|
"mappings": [],
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "dark-yellow",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "dark-green",
|
|
|
"value": 40
|
|
|
},
|
|
|
{
|
|
|
"color": "dark-red",
|
|
|
"value": 60
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
"overrides": []
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 8,
|
|
|
"w": 17,
|
|
|
"x": 7,
|
|
|
"y": 0
|
|
|
},
|
|
|
"id": 4,
|
|
|
"options": {
|
|
|
"legend": {
|
|
|
"calcs": [],
|
|
|
"displayMode": "list",
|
|
|
"placement": "bottom",
|
|
|
"showLegend": true
|
|
|
},
|
|
|
"tooltip": {
|
|
|
"mode": "multi",
|
|
|
"sort": "none"
|
|
|
}
|
|
|
},
|
|
|
"targets": [
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"$__interval"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.humidity",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Luftfeuchtigkeit",
|
|
|
"type": "timeseries"
|
|
|
},
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"fixedColor": "dark-red",
|
|
|
"mode": "thresholds"
|
|
|
},
|
|
|
"displayName": "Aktuelle Temperatur",
|
|
|
"mappings": [],
|
|
|
"max": 50,
|
|
|
"min": -10,
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "light-yellow",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "green",
|
|
|
"value": 17
|
|
|
},
|
|
|
{
|
|
|
"color": "super-light-green",
|
|
|
"value": 22
|
|
|
},
|
|
|
{
|
|
|
"color": "super-light-yellow",
|
|
|
"value": 24
|
|
|
},
|
|
|
{
|
|
|
"color": "#E24D42",
|
|
|
"value": 27
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
"unit": "celsius"
|
|
|
},
|
|
|
"overrides": []
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 8,
|
|
|
"w": 7,
|
|
|
"x": 0,
|
|
|
"y": 8
|
|
|
},
|
|
|
"id": 2,
|
|
|
"options": {
|
|
|
"colorMode": "value",
|
|
|
"graphMode": "none",
|
|
|
"justifyMode": "center",
|
|
|
"orientation": "auto",
|
|
|
"reduceOptions": {
|
|
|
"calcs": [
|
|
|
"lastNotNull"
|
|
|
],
|
|
|
"fields": "",
|
|
|
"values": false
|
|
|
},
|
|
|
"textMode": "value",
|
|
|
"wideLayout": true
|
|
|
},
|
|
|
"pluginVersion": "10.2.1",
|
|
|
"targets": [
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"$__interval"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.actualTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Aktuelle Temperatur",
|
|
|
"type": "stat"
|
|
|
},
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"fixedColor": "dark-green",
|
|
|
"mode": "fixed"
|
|
|
},
|
|
|
"custom": {
|
|
|
"axisBorderShow": false,
|
|
|
"axisCenteredZero": false,
|
|
|
"axisColorMode": "text",
|
|
|
"axisLabel": "",
|
|
|
"axisPlacement": "auto",
|
|
|
"barAlignment": 0,
|
|
|
"drawStyle": "line",
|
|
|
"fillOpacity": 0,
|
|
|
"gradientMode": "none",
|
|
|
"hideFrom": {
|
|
|
"legend": false,
|
|
|
"tooltip": false,
|
|
|
"viz": false
|
|
|
},
|
|
|
"insertNulls": 3600000,
|
|
|
"lineInterpolation": "smooth",
|
|
|
"lineWidth": 1,
|
|
|
"pointSize": 5,
|
|
|
"scaleDistribution": {
|
|
|
"type": "linear"
|
|
|
},
|
|
|
"showPoints": "auto",
|
|
|
"spanNulls": 3600000,
|
|
|
"stacking": {
|
|
|
"group": "A",
|
|
|
"mode": "none"
|
|
|
},
|
|
|
"thresholdsStyle": {
|
|
|
"mode": "off"
|
|
|
}
|
|
|
},
|
|
|
"mappings": [],
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "green",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "red",
|
|
|
"value": 80
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
"overrides": [
|
|
|
{
|
|
|
"matcher": {
|
|
|
"id": "byName",
|
|
|
"options": "Temperatur"
|
|
|
},
|
|
|
"properties": [
|
|
|
{
|
|
|
"id": "color",
|
|
|
"value": {
|
|
|
"fixedColor": "dark-red",
|
|
|
"mode": "fixed"
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
"__systemRef": "hideSeriesFrom",
|
|
|
"matcher": {
|
|
|
"id": "byNames",
|
|
|
"options": {
|
|
|
"mode": "exclude",
|
|
|
"names": [
|
|
|
"Temperatur"
|
|
|
],
|
|
|
"prefix": "All except:",
|
|
|
"readOnly": true
|
|
|
}
|
|
|
},
|
|
|
"properties": [
|
|
|
{
|
|
|
"id": "custom.hideFrom",
|
|
|
"value": {
|
|
|
"legend": false,
|
|
|
"tooltip": false,
|
|
|
"viz": false
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 8,
|
|
|
"w": 17,
|
|
|
"x": 7,
|
|
|
"y": 8
|
|
|
},
|
|
|
"id": 1,
|
|
|
"options": {
|
|
|
"legend": {
|
|
|
"calcs": [],
|
|
|
"displayMode": "list",
|
|
|
"placement": "bottom",
|
|
|
"showLegend": true
|
|
|
},
|
|
|
"tooltip": {
|
|
|
"mode": "single",
|
|
|
"sort": "none"
|
|
|
}
|
|
|
},
|
|
|
"targets": [
|
|
|
{
|
|
|
"alias": "Temperatur",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"$__interval"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.actualTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
},
|
|
|
{
|
|
|
"alias": "Zieltemperatur",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"$__interval"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"hide": false,
|
|
|
"measurement": "hmip.0.devices.3014F711A000201A49955EDE.channels.1.setPointTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "B",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Temperatur",
|
|
|
"type": "timeseries"
|
|
|
},
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"mode": "thresholds"
|
|
|
},
|
|
|
"mappings": [],
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "transparent",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "green",
|
|
|
"value": 0
|
|
|
},
|
|
|
{
|
|
|
"color": "super-light-green",
|
|
|
"value": 30
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-yellow",
|
|
|
"value": 60
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-red",
|
|
|
"value": 90
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
"overrides": []
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 9,
|
|
|
"w": 7,
|
|
|
"x": 0,
|
|
|
"y": 16
|
|
|
},
|
|
|
"id": 8,
|
|
|
"options": {
|
|
|
"colorMode": "value",
|
|
|
"graphMode": "area",
|
|
|
"justifyMode": "auto",
|
|
|
"orientation": "auto",
|
|
|
"reduceOptions": {
|
|
|
"calcs": [
|
|
|
"lastNotNull"
|
|
|
],
|
|
|
"fields": "",
|
|
|
"values": false
|
|
|
},
|
|
|
"textMode": "auto",
|
|
|
"wideLayout": true
|
|
|
},
|
|
|
"pluginVersion": "10.2.1",
|
|
|
"targets": [
|
|
|
{
|
|
|
"alias": "Humidity",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.humidity",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"query": "SELECT mean(\"value\") FROM \"hm-rpc.2.000E5A49A13D3D.1.HUMIDITY\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
|
|
|
"rawQuery": false,
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
},
|
|
|
{
|
|
|
"alias": "Temperatur",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"hide": false,
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.actualTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "B",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
},
|
|
|
{
|
|
|
"alias": "Wished Temperature",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"hide": false,
|
|
|
"measurement": "hmip.0.groups.097e733a-1995-4765-bb01-22b0106fa42c.setPointTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "C",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Abweichung",
|
|
|
"transformations": [
|
|
|
{
|
|
|
"id": "groupingToMatrix",
|
|
|
"options": {
|
|
|
"columnField": "Time",
|
|
|
"emptyValue": "null",
|
|
|
"rowField": "hm-rpc.2.000E5A49A13D3D.1.HUMIDITY.mean",
|
|
|
"valueField": "hm-rpc.2.000E5A49A13D3D.1.ACTUAL_TEMPERATURE.mean"
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "MaxAbweichungHumidity",
|
|
|
"binary": {
|
|
|
"left": "0",
|
|
|
"operator": "+",
|
|
|
"right": "20"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "MaxAbweichungTemp",
|
|
|
"binary": {
|
|
|
"left": "0",
|
|
|
"operator": "+",
|
|
|
"right": "5"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "humi - opti",
|
|
|
"binary": {
|
|
|
"left": "Humidity",
|
|
|
"operator": "-",
|
|
|
"right": "50"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "",
|
|
|
"mode": "unary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "humi - opti",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "AbweichungHumi",
|
|
|
"binary": {
|
|
|
"left": "abs(humi - opti)",
|
|
|
"operator": "+",
|
|
|
"right": "0"
|
|
|
},
|
|
|
"mode": "reduceRow",
|
|
|
"reduce": {
|
|
|
"include": [
|
|
|
"abs(humi - opti)",
|
|
|
"MaxAbweichungHumidity"
|
|
|
],
|
|
|
"reducer": "min"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "NormHumi",
|
|
|
"binary": {
|
|
|
"left": "AbweichungHumi",
|
|
|
"operator": "/",
|
|
|
"right": "MaxAbweichungHumidity"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "optihumi",
|
|
|
"binary": {
|
|
|
"left": "NormHumi",
|
|
|
"operator": "*",
|
|
|
"right": "0.4"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "temp - opti",
|
|
|
"binary": {
|
|
|
"left": "Temperatur",
|
|
|
"operator": "-",
|
|
|
"right": "Wished Temperature"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "",
|
|
|
"mode": "unary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "temp - opti",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "AbweichungTemp",
|
|
|
"binary": {
|
|
|
"left": "abs(temp - opti)",
|
|
|
"operator": "+",
|
|
|
"right": "0"
|
|
|
},
|
|
|
"mode": "reduceRow",
|
|
|
"reduce": {
|
|
|
"include": [
|
|
|
"abs(temp - opti)",
|
|
|
"MaxAbweichungTemp"
|
|
|
],
|
|
|
"reducer": "min"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "NormTemp",
|
|
|
"binary": {
|
|
|
"left": "AbweichungTemp",
|
|
|
"operator": "/",
|
|
|
"right": "MaxAbweichungTemp"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "optitemp",
|
|
|
"binary": {
|
|
|
"left": "NormTemp",
|
|
|
"operator": "*",
|
|
|
"right": "0.6"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "Abweichung norm",
|
|
|
"binary": {
|
|
|
"left": "optihumi",
|
|
|
"operator": "+",
|
|
|
"right": "optitemp"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "Abweichung",
|
|
|
"binary": {
|
|
|
"left": "Abweichung norm",
|
|
|
"operator": "*",
|
|
|
"right": "100"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": true
|
|
|
}
|
|
|
}
|
|
|
],
|
|
|
"type": "stat"
|
|
|
},
|
|
|
{
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"fieldConfig": {
|
|
|
"defaults": {
|
|
|
"color": {
|
|
|
"mode": "palette-classic"
|
|
|
},
|
|
|
"custom": {
|
|
|
"axisBorderShow": false,
|
|
|
"axisCenteredZero": false,
|
|
|
"axisColorMode": "text",
|
|
|
"axisLabel": "",
|
|
|
"axisPlacement": "auto",
|
|
|
"barAlignment": 0,
|
|
|
"drawStyle": "line",
|
|
|
"fillOpacity": 0,
|
|
|
"gradientMode": "none",
|
|
|
"hideFrom": {
|
|
|
"legend": false,
|
|
|
"tooltip": false,
|
|
|
"viz": false
|
|
|
},
|
|
|
"insertNulls": 3600000,
|
|
|
"lineInterpolation": "smooth",
|
|
|
"lineStyle": {
|
|
|
"fill": "solid"
|
|
|
},
|
|
|
"lineWidth": 1,
|
|
|
"pointSize": 12,
|
|
|
"scaleDistribution": {
|
|
|
"type": "linear"
|
|
|
},
|
|
|
"showPoints": "auto",
|
|
|
"spanNulls": 3600000,
|
|
|
"stacking": {
|
|
|
"group": "A",
|
|
|
"mode": "none"
|
|
|
},
|
|
|
"thresholdsStyle": {
|
|
|
"mode": "dashed+area"
|
|
|
}
|
|
|
},
|
|
|
"mappings": [],
|
|
|
"thresholds": {
|
|
|
"mode": "absolute",
|
|
|
"steps": [
|
|
|
{
|
|
|
"color": "transparent",
|
|
|
"value": null
|
|
|
},
|
|
|
{
|
|
|
"color": "green",
|
|
|
"value": 0
|
|
|
},
|
|
|
{
|
|
|
"color": "super-light-green",
|
|
|
"value": 30
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-yellow",
|
|
|
"value": 60
|
|
|
},
|
|
|
{
|
|
|
"color": "semi-dark-red",
|
|
|
"value": 90
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
"overrides": []
|
|
|
},
|
|
|
"gridPos": {
|
|
|
"h": 9,
|
|
|
"w": 17,
|
|
|
"x": 7,
|
|
|
"y": 16
|
|
|
},
|
|
|
"id": 5,
|
|
|
"options": {
|
|
|
"legend": {
|
|
|
"calcs": [],
|
|
|
"displayMode": "list",
|
|
|
"placement": "bottom",
|
|
|
"showLegend": true
|
|
|
},
|
|
|
"tooltip": {
|
|
|
"mode": "multi",
|
|
|
"sort": "none"
|
|
|
}
|
|
|
},
|
|
|
"targets": [
|
|
|
{
|
|
|
"alias": "Humidity",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.humidity",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"query": "SELECT mean(\"value\") FROM \"hm-rpc.2.000E5A49A13D3D.1.HUMIDITY\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
|
|
|
"rawQuery": false,
|
|
|
"refId": "A",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
},
|
|
|
{
|
|
|
"alias": "Actual Temperatur",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"hide": false,
|
|
|
"measurement": "hmip.0.devices.3014F711A0000E5A49A13D3D.channels.1.actualTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "B",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
},
|
|
|
{
|
|
|
"alias": "WishedTemperatur",
|
|
|
"datasource": {
|
|
|
"type": "influxdb",
|
|
|
"uid": "c6434227-cb19-437f-8bba-57cf1cbb3868"
|
|
|
},
|
|
|
"groupBy": [
|
|
|
{
|
|
|
"params": [
|
|
|
"10m"
|
|
|
],
|
|
|
"type": "time"
|
|
|
},
|
|
|
{
|
|
|
"params": [
|
|
|
"null"
|
|
|
],
|
|
|
"type": "fill"
|
|
|
}
|
|
|
],
|
|
|
"hide": false,
|
|
|
"measurement": "hmip.0.groups.097e733a-1995-4765-bb01-22b0106fa42c.setPointTemperature",
|
|
|
"orderByTime": "ASC",
|
|
|
"policy": "default",
|
|
|
"refId": "C",
|
|
|
"resultFormat": "time_series",
|
|
|
"select": [
|
|
|
[
|
|
|
{
|
|
|
"params": [
|
|
|
"value"
|
|
|
],
|
|
|
"type": "field"
|
|
|
},
|
|
|
{
|
|
|
"params": [],
|
|
|
"type": "mean"
|
|
|
}
|
|
|
]
|
|
|
],
|
|
|
"tags": []
|
|
|
}
|
|
|
],
|
|
|
"title": "Abweichung",
|
|
|
"transformations": [
|
|
|
{
|
|
|
"id": "groupingToMatrix",
|
|
|
"options": {
|
|
|
"columnField": "Time",
|
|
|
"emptyValue": "null",
|
|
|
"rowField": "hm-rpc.2.000E5A49A13D3D.1.HUMIDITY.mean",
|
|
|
"valueField": "hm-rpc.2.000E5A49A13D3D.1.ACTUAL_TEMPERATURE.mean"
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "MaxAbweichungHumidity",
|
|
|
"binary": {
|
|
|
"left": "0",
|
|
|
"operator": "+",
|
|
|
"right": "20"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "MaxAbweichungTemp",
|
|
|
"binary": {
|
|
|
"left": "0",
|
|
|
"operator": "+",
|
|
|
"right": "5"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "humi - opti",
|
|
|
"binary": {
|
|
|
"left": "Humidity",
|
|
|
"operator": "-",
|
|
|
"right": "50"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "",
|
|
|
"mode": "unary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "humi - opti",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "AbweichungHumi",
|
|
|
"binary": {
|
|
|
"left": "abs(humi - opti)",
|
|
|
"operator": "+",
|
|
|
"right": "0"
|
|
|
},
|
|
|
"mode": "reduceRow",
|
|
|
"reduce": {
|
|
|
"include": [
|
|
|
"abs(humi - opti)",
|
|
|
"MaxAbweichungHumidity"
|
|
|
],
|
|
|
"reducer": "min"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "NormHumi",
|
|
|
"binary": {
|
|
|
"left": "AbweichungHumi",
|
|
|
"operator": "/",
|
|
|
"right": "MaxAbweichungHumidity"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "optihumi",
|
|
|
"binary": {
|
|
|
"left": "NormHumi",
|
|
|
"operator": "*",
|
|
|
"right": "0.3"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "temp - opti",
|
|
|
"binary": {
|
|
|
"left": "Actual Temperatur",
|
|
|
"operator": "-",
|
|
|
"right": "WishedTemperatur"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "",
|
|
|
"mode": "unary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"unary": {
|
|
|
"fieldName": "temp - opti",
|
|
|
"operator": "abs"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "AbweichungTemp",
|
|
|
"binary": {
|
|
|
"left": "abs(temp - opti)",
|
|
|
"operator": "+",
|
|
|
"right": "0"
|
|
|
},
|
|
|
"mode": "reduceRow",
|
|
|
"reduce": {
|
|
|
"include": [
|
|
|
"abs(temp - opti)",
|
|
|
"MaxAbweichungTemp"
|
|
|
],
|
|
|
"reducer": "min"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "NormTemp",
|
|
|
"binary": {
|
|
|
"left": "AbweichungTemp",
|
|
|
"operator": "/",
|
|
|
"right": "MaxAbweichungTemp"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "optitemp",
|
|
|
"binary": {
|
|
|
"left": "NormTemp",
|
|
|
"operator": "*",
|
|
|
"right": "0.7"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "Abweichung normiert",
|
|
|
"binary": {
|
|
|
"left": "optihumi",
|
|
|
"operator": "+",
|
|
|
"right": "optitemp"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": false
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
"id": "calculateField",
|
|
|
"options": {
|
|
|
"alias": "Abweichung in Prozent",
|
|
|
"binary": {
|
|
|
"left": "Abweichung normiert",
|
|
|
"operator": "*",
|
|
|
"right": "100"
|
|
|
},
|
|
|
"mode": "binary",
|
|
|
"reduce": {
|
|
|
"reducer": "sum"
|
|
|
},
|
|
|
"replaceFields": true
|
|
|
}
|
|
|
}
|
|
|
],
|
|
|
"type": "timeseries"
|
|
|
}
|
|
|
],
|
|
|
"refresh": "5s",
|
|
|
"schemaVersion": 38,
|
|
|
"tags": [],
|
|
|
"templating": {
|
|
|
"list": []
|
|
|
},
|
|
|
"time": {
|
|
|
"from": "now-24h",
|
|
|
"to": "now"
|
|
|
},
|
|
|
"timepicker": {},
|
|
|
"timezone": "",
|
|
|
"title": "Temperatur / Luftfeuchtigkeit",
|
|
|
"uid": "fdedafcd-23ac-4a3a-a29f-2c3e5a2b4924",
|
|
|
"version": 18,
|
|
|
"weekStart": ""
|
|
|
}
|
|
|
``` |
|
|
\ No newline at end of file |