Hallo zusammen,
hier einmal ein Entwurf zu den Abschnitten 3, 4 und 7. Der ist sicher in Inhalt und Sprache noch ausbaufähig aber schaut doch mal drüber, ob die Richtung so stimmt. Bewusst habe ich viele Sachen weggelassen (z.B. Organisationen, Variablen), da ich denke, dass sie zum grundlegenden Verständnis nicht notwendig sind. Wer sich näher mit Grafana beschäftigt, wird eh irgendwann darauf stoßen.
Kann man die Darstellungsgröße der Bilder eigentlich irgendwie anpassen oder muss ich die dazu noch einmal bearbeiten?
Grundlegende Konzepte: Datasource, Dashboards, Panels...
Zum Verständnis von Grafana ist es hilfreich, die grundlegenden Begriffe und Konzepte zu verstehen, die hier kurz erläutert werden sollen:
Data source
Grafana kann Daten aus verschiedenen Quellen, z.B. InfluxDB, PostgreSQL oder MySQL verarbeiten. Eine "Data source" (Datenquelle) fasst die Einstellungen für jede dieser Quellen zusammen, insbesondere den Typ der verwendeten Datenbank, die Adresse des Servers, den Namen der Datenbank sowie die Login-Daten. Welche Parameter genau angegeben werden müssen, hängt unter anderem von der für die Datenquelle verwendeten Datenbank ab.
Die einzelnen Datenquellen erlauben unterschiedliche Arten der Abfrage, so kann z.B. die vom Timberwolf Server verwendete InfluxDB Daten bei der Abfrage aggregieren. Sie ist damit sehr gut für die Verwendung als Datenbank zur Darstellung von Zeitreihen in Grafana geeignet.
Auf dem Timberwolf Server ist die folgende Datenquelle vordefiniert:
Name: Timberwolf Timeseries DB
Backend: InfluxDB Timeseries Datenbank.
In dieser Datenbank speichert der Timberwolf Server die über den KNX Bus empfangenen (siehe KNX-Busmonitor) oder von den 1-Wire Geräten per Regel in die Timeseries Datenbank geschriebenen Werte.
Weitere Datenquellen, z.B. zur Abfrage schon vorhandener Datenbanken, können vom Anwender in den Einstellungen hinzugefügt werden. Dazu links über das Zahnradsymbol die Menü "Configuration" und dort den Unterpunkt "Data Sources" aufrufen.
Dashboards
Grafana organisiert die Darstellung von Graphen in einzelne Seiten, sogenannte Dashboards. So können zusammengehörige Werte auf einer Seite zusammengefasst werden. Dashboards können wiederum verschiedene Panels (s.u.) aufnehmen, die die eigentliche Darstellung der Daten übernehmen. Dashboards selbst können in Ordner strukturiert werden. Innerhalb eines Dashboards können Daten aus unterschiedlichen Quellen (s. Data source) dargestellt werden, solange dafür verschiedene Panels verwendet werden.
Darüber hinaus erlauben Dashboards gemeinsame Einstellungen für alle auf diesem Dashboard dargestellten Panels (z.B. der darzustellende Zeitrahmen). Die meisten dieser Einstellungen können dann wiederum in den einzelnen Panels des Dashboards überschrieben werden.
Dashboards können als JSON Dateien exportiert oder importiert werden. Diese Funktion ist sehr gut als Backup und für die Migration vorhandener Grafana Dashboards auf den Timberwolf Server geeignet.
Panels
Panels übernehmen die eigentliche grafische Darstellung der Zeitreihen. Es gibt Panels unterschiedlicher Typen, z.B. zur Darstellung von Verlaufskurven, eines einzelnen Zahlenwerts, einer Tabelle von Werten und noch einiges mehr.
Panels werden auf einem Dashboard platziert und können dort per Drag & Drop mit der Maus verschoben werden. Auch die Größe eines Panels kann durch Ziehen an der unteren rechten Ecke mit der Maus angepasst werden. Innerhalb eines Dashboards organisiert Grafana die Panels in "Rows" (Reihen), wobei die einzelnen Reihen mehrere Panels nebeneinander aufnehmen können. Alle Panels innerhalb einer Reihe haben die gleiche Höhe. Alle Reihen haben die gleiche Breite, die je nach Auflösung des verwendeten Browsers skaliert wird.
Innerhalb des gleichen oder in verschiedenen Dashboards können problemlos Panels mit gleichen Daten mehrfach dargestellt werden, z.B. um die Daten unterschiedlich zu visualisieren oder Zeiträume zu vergleichen.
Nachdem ein Panel zum Dashboard hinzugefügt wurde, müssen im "Query Editor" (Abfrageditor) die zur Darstellung auf diesem Panel bestimmten Daten definiert werden. Dies ist im Abschnitt zum Anlegen eines Grafen näher beschrieben. Wie viele Daten auf dem jeweiligen Panel dargestellt werden können, hängt vom Panel ab. So kann z.B. ein Panel zur Darstellung eines Zahlenwertes nur genau einen Wert, eine Verlaufsgrafik aber beliebig viele Datenreihen darstellen. In der Praxis muss man sich trotzdem etwas beschränken, da es sonst schnell unübersichtlich wird.
Der Inhalt der einzelnen Panels kann auch in andere Anwendungen (z.B. eine Visualisierung) eingebunden werden, entweder statisch, eine durch Grafana gerenderte Grafikdatei, oder dynamisch. Näheres dazu im entsprechenden Abschnitt.
Anlegen eines Graphen, mehrere Datenreihen in einem Graphen, Verwendung von zwei y-Achsen, Einheiten, Farben...
An einem einfachen "Schritt für Schritt" Beispiel soll im folgenden gezeigt werden, wie eine erste Grafik in Grafana angelegt werden kann. Ziel ist es, Temperatur und Luftfeuchte in einer Verlaufsgrafik darzustellen. Dabei sollen beide Werte je einer Y-Achse zugeordnet und mit korrekten Einheiten dargestellt werden. Quelle für die Darstellung ist die vom Timberwolf Server angelegte Aufzeichnung der vom KNX-Bus empfangenen Werte. Genau so ließen sich aber auch die Werte der 1-Wire Sensoren darstellen.
Im folgenden die einzelnen Schritte zur Umsetzung:
1. Aufruf von Grafana
Grafana ist eine auf dem Timberwolf Server vorinstallierte Webanwendung, die im Browser bedient wird. Aufrufen lässt sich Grafana entweder über den Link auf der Seite "Time Series" oder direkt unter der folgenden Adresse:
https://timberwolf145.local/proxy/grafana/?orgId=1
Die Seriennummer des Timberwolf Servers (hier 145) muss dabei an den eigenen Server angepasst werden. Der Link kann in den Lesezeichen des Browsers gespeichert werden.
2. Anmelden in Grafana
Beim ersten Aufruf von Grafana erscheint die Anmeldemaske. Der vom Timberwolf Server vorgegebene Standardbenutzer lautet "admin" mit dem Passwort "admin". Dieses Passwort sollte aus Sicherheitsgründen geändert werden. Bei Bedarf können auch weitere Benutzer angelegt werden.
3. Anlegen eines neuen Dashboards
Ein neues Dashboard wird über das oben links auf dem Bildschirm zu sehende "+" Zeichen angelegt. Sobald die Maus darauf zeigt, klappt ein Menü aus in dem das Dashboard mit "Create Dashboard" angelegt werden kann.
4. Festlegen des Typs des ersten Panels
Beim Anlegen des Dashboards erstellt Grafana gleichzeitig auch das erste Panel innerhalb dieses Dashboards. In dem auf "Create Dashboard" folgenden Dialog wird abgefragt welchen Typ dieses Panel haben soll. Weitere Panels, auch unterschiedlicher Typen, können später zum Dashboard hinzugefügt werden. Für dieses Beispiel bitte den Typ "Graph" auswählen, worauf ein neues Dashboard mit einer Verlaufsgrafik angezeigt wird. Diese Verlaufsgrafik enthält zunächst von Grafana generierte Testdaten.
6. Namen des Dashboards festlegen
Der Konfigurationsdialog des Dashboards kann über das kleine "Zahnrad" Icon oben rechts aufgerufen werden. In dem sich öffnenden Dialog reicht es, zunächst einmal einen sinnvollen Namen für das Dashboard zu vergeben, in diesem Beispiel "Demo".
7. Speichern des Dashboards
Jetzt kann das neu erstellte Dashboard zum ersten mal gespeichert werden. Dazu entweder die Tastenkombination Strg+S betätigen oder auf das kleine Disketten-Symbol oben rechts klicken. Die Ablage der Daten organisiert Grafana intern, es muss kein Speicherort ausgewählt werden.
Beim Speichern fragt Grafana nach einer kurzen Beschreibung der Änderungen, um diese später nachvollziehen zu können. Der Dialog kann aber auch leer bleiben.
An der Stelle auch der Hinweis, dass daran gedacht werden sollte, beim Arbeiten an einem Dashboard regelmäßig zu speichern. Auch wenn Grafana sehr stabil läuft, ist es sonst nicht auszuschließen, dass z.B. bei einem Absturz des Browsers die Arbeit vieler Stunden verloren ist.
8. Festlegen der Größe des Panels
Die Größe des Panels kann in Höhe und Breite durch Ziehen mit der Maus an der unteren rechten Ecke geändert werden. In diesem Beispiel nimmt das Panel die volle Breite des Dashboards ein, es ist aber auch möglich, neben dem Panel ein weiteres in der gleichen Reihe darzustellen.
9. Festlegen des Namens des Panels
Zum Öffnen des Konfigurationsdialogs des Panels mit der Maus neben den Titel des Panels zeigen, woraufhin rechts neben dem Namen ein Pfeil nach unten eingeblendet wird. Wird darauf geklickt, klappt ein Menü aus, in dem "Edit" zu wählen ist".
Zunächst kann auf dem Tab "General" unter "Titel" ein Name für das Panel festgelegt werden, in diesem Beispiel wurde "Temperatur" gewählt.
10. Löschen der Testdaten
Die auf dem Panel darzustellende(n) Datenreihe(n) wird im Tab "Metrik" festgelegt. Als erstes sollten die von Grafana erzeugten Testdaten gelöscht werden. Dazu auf das "Mülleimer" Symbol ganz rechts in der Zeile mit "Test data random walk" klicken.
11. Auswahl der Datenreihe (Temperatur)
Anschließend kann die erste Datenreihe zur Darstellung in der Verlaufsgrafik definiert werden. Dazu muss zunächst die auf dem Timberwolf Server standardmäßig erzeugte Datenquelle ausgewählt werden. Dazu bitte im Ausklappmenü "Data Source" die "Timberwolf Timeseries DB" auswählen.
Anschließend über "add query" (blaue Schaltfläche) eine neue Abfrage definieren. In diesem Beispiel wird der Temperaturwert auf der GA 11/2/60 gesendet, dieser Wert muss an die eigenen Gegebenheiten angepasst werden. Im Editor können die einzelnen Felder geändert werden, nachdem darauf geklickt wurde, meist erfolgt die Auswahl dann mit Hilfe der Maus.
Für dieses Beispiel wurde folgende Abfrage definiert:
FROM default KNX_LINE1 WHERE GA = 11/2/60
SELECT field (Val)
FORMAT AS Time Series
ALIAS BY: Temperatur außen
Achtung: Dabei ist darauf zu achten, dass hinter Select wirklich field(Val) aufgeführt wird. Mit dem als Default dort stehenden field(value) werden keine Daten angezeigt.
Die Einträge unter "Group" können erst einmal leer bleiben bzw. entfernt werden.
Unter "Alias by" kann der Name angegeben werden, unter dem der Graph angezeigt werden soll. In diesem Beispiel "Temperatur außen"
Nach der Definition der Abfrage zeigt Grafana die Werte aus der Time Series Datenbank des Timberwolf Servers an. Dabei kann der darzustellende Zeitraum per Mausklick auf "last 6 hours" oben rechts geändert werden. Dort kann auch ein "Refresh Intervall" gewählt werden, nach Ablauf dieser Zeit wird Grafana den Graphen jeweils mit neuen Werten aus der Datenbank aktualisieren.
12. Auswahl der Datenreihe für den zweiten Graphen (Luftfeuchte)
Wiederum wird das "Edit" Menü im Titel des Panels aufgerufen und auf den Tab "Metrik" gewechselt. Die Abfrage kann definiert werden, nachdem unten links, neben "B" auf die Auswahl "Add Query" geklickt wurde. Die zweite Abfrage wird analog zur ersten erstellt, als Alias wurde "Feuchte" festgelegt. In diesem Beispiel wird die GA "11/0/121" für die Luftfeuchte verwendet, diese GA ist ebenfalls an die eigenen Gegebenheiten anzupassen.
13. Auswahl der rechten Y-Achse für die Luftfeuchte
Grafana zeichnet zunächst beide Graphen gegen die linke Y-Achse, was aufgrund des unterschiedlichen Wertebereichs und der verschiedenen Einheiten von Temperatur und Luftfeuchte nicht ideal ist.
Zur Auswahl der rechten Y-Achse für die Luftfeuchte zunächst auf den Tab "Axis" wechseln, dort Einheit und ggf. auch den Wertebereich für beide Y-Achsen auswählen. Dazu jeweils auf den Pfeil hinter "Unit" klicken und dann die Einheiten. In diesem Beispiel wurde für die linke Y-Achse "Temperatur" und anschließend "Celsius(°C)" ausgewählt, für die rechte Achse "none" and dann "Humidity (%H)"
Für beide Y-Achsen getrennt können unter "Y-Min" und "Y-Max" jeweils auch noch der Wertebereich, unter "Decimals" die Dezimalstellen und unter "Label" eine Bezeichnung definiert werden. Meist sind die Automatiken von Grafana aber schon gut genug.
Anschließend kann die Luftfeuchte der rechten Y-Achse zugewiesen werden. Dazu die kurze farbige Linie vor "Feuchte" anklicken. Es erscheint ein Menü in dem die Farbe des jeweiligen Graphen festgelegt und mit "right" die rechte Y-Achse ausgewählt werden kann. Für das Beispiel wurde im gleichen Menü zusätzlich noch die Linienfarbe der Temperatur auf rot und die der Feuchte auf blau geändert.
14. Definition der Legende
Als Standard verwendet Grafana nur eine kurze Legende, in der die jeweilige Farbe der einzelnen Graphen sowie ihr Name (Alias) aufgeführt werden. Zusätzliche Angaben, wie z.B. der aktuelle Werte sowie Minima und Maxima können über den Reiter "Legend" festgelegt werden. Alle statistischen Werte, wie Minimum und Maximum beziehen sich dabei auf den aktuell dargestellten Zeitraum, als aktueller Wert wird der neueste aus der Datenbank ausgelesene Wert dargestellt.
Bei der Anzeige verschiedener statistischer Werte ist die tabellarische Form meist übersichtlicher, auch diese kann in diesem Menü aktiviert werden.
15. Anpassen der Anzeigeoptionen
Im Reiter "Display" können verschiedene Optionen für die Anzeige der einzelnen Graphen ausgewählt werden. Unter anderem lässt sich festlegen, dass die einzelnen Messwerte als Punkte hervorgehoben werden. Das Verbinden der Messwerte mit einer Linie eignet sich gut für physikalische Messgrößen, z.B. die Temperatur, die Darstellung in Stufen vor allem bei Zeitreihen die binäre Werte (an/aus) enthalten oder bei der Verwendung von Aggregatfunktionen in der Abfrage.
16. Abschluss
Nach Abschluss der Arbeiten am Panel kann es über das Symbol mit dem blauen Pfeil, oben rechts, verlassen werden. Anschließend sollte das Dashboard noch einmal gespeichert werden.
Der fertige Graph sieht folgendermaßen aus:
Weitere Panels können jetzt mit dem "Add panel" Symbol, ganz links in der Symbolleiste oben, hinzugefügt werden.
Erzeugen temporärer Graphen
Abschließend noch ein Tip: Der Timberwolf Server erlaubt es Graphen, die nur temporär gebraucht werden, beispielsweise zur Fehlersuche oder für einen schnellen Überblick, mit nur wenigen Mausklicks automatisch zu erstellen. Diese Funktion eignet sich auch gut als "Spickzettel" für die dabei erzeugten Abfragen.
Zum Erzeugen eines Graphen aus einer KNX Gruppenadresse im GA-Editor mit der Maus rechts neben die GA zeigen, es erscheint ein kleines blaues Symbol mit dem Grafana Icon. Nach Mausklick auf dieses Symbol wird Grafana geöffnet und ein Panel mit dem Verlauf des Wertes dieser GA angezeigt.
Um den Verlauf eines Wertes vom 1-Wire Bus darzustellen im Menü "Time Series" auf das blaue Chart Symbol rechts neben den Werten klicken. Zunächst wird rechts eine Vorschau des Verlaufs dargestellt, die durch die Auswahl eines Zeitraums oben im Feld "Zeitrahmen" angepasst werden kann. Wird im Feld Zeitrahmen auf das blaue Grafana Symbol geklickt, öffnet sich wiederum Grafana mit einem Panel in dem der zeitliche Verlauf des 1-Wire Wertes dargestellt wird.
Einbinden in Webseiten, z.B. für eine Visualisierung
Die einzelnen Panels lassen sich gut in externe Webseiten, z.B. eine Visualisierung einbinden. Voraussetzung ist natürlich, dass die Visualisierung Zugriff auf den Grafana Server hat, im einfachsten Fall wenn sich beide im gleichen Netz befinden.
Die Einbindung der Panels kann entweder statisch oder dynamisch erfolgen. Zur statischen Einbindung erzeugt Grafana eine PNG Datei, die in der Visualisierung verwendet werden kann aber keinerlei Interaktion erlaubt. Beim dynamischen Einbinden der Panels hat der Anwender der Vsiualisierung dagegen eingeschränkte Interaktionsmöglichkeiten, so kann er z.B. einzelne Datenreihen auswählen oder in die Grafik zoomen. Darüber hinaus werden dynamisch eingebundene Panels in besserer Qualität dargestellt und sie sind performanter.
Zum ermitteln des Links auf die einzelnen Panels wiederum das Menü im Titel aufrufen und dort den Punkt "share" auswählen. Anschließend wird ein Dialog angezeigt, in dem die verschiedenen Links zum Einbinden in einer Visualisierung angezeigt werden.
Links zum dynamischen Einbinden eines Panels haben z.B. die folgende Form:
Code: Alles auswählen
https://timberwolf145.local/proxy/grafana/d/L9hQXLhmz/demo?panelId=2&orgId=1&from=1536007710003&to=1536094110004&tab=display&fullscreen
Diese Links können per copy & paste direkt übernommen werden. Sinnvoller ist es aber, die Zeitangaben in dem von Grafana generierten Link in relative Zeiten zu ändern, damit der Graph beim Aufruf in der Visualisierung immer aktuell ist. Dazu können die Angaben hinter "from=" und "to=" geändert werden. Grafana akzeptiert den Begriff "now" für die jeweils aktuelle Zeit beim Aufruf des Links, sowie die folgende Einheiten: s (Sekunden), m (Minuten), h (Stunden), d (Tage), w (Wochen), M (Monate), y (Jahre)
Beispiele:
Darstellung der letzten 12 Stunden:
Code: Alles auswählen
https://timberwolf145.local/proxy/grafana/d/L9hQXLhmz/demo?panelId=2&orgId=1&from=now-12h&to=now&tab=display&fullscreen
Darstellung der letzten 2 Tage:
Code: Alles auswählen
https://timberwolf145.local/proxy/grafana/d/L9hQXLhmz/demo?panelId=2&orgId=1&from=now-2d&to=now&tab=display&fullscreen
Zum statischen Einbinden einer PNG Datei kann mit einem Klick auf "Direct link rendert image" eine von Grafana gerenderte Graphik aufgerufen oder, nach Rechtsklick, die Adresse direkt kopiert werden. Auch bei diesen Links können die Zeitangaben angepasst werden.
Zusätzlich erlaub der Dialog noch die Auswahl eines hellen oder dunklen Stils (Theme), je nachdem was besser zur Optik der Visualisierung passt. Diese Option wird als Parameter mit in den generierten Link übernommen.
Zum Testen könne alle Links direkt in die Adresszeile des Browsers eingegeben und aufgerufen werden.
TWS 2500 ID: 145 + 1x TP-UART + 2x DS9490R, VPN geschlossen, Reboot nach Absprache / wiregate198 (im Ruhestand)