Blog Tutorial

openHAB-Daten mittels Grafana in Mediola aio NEO anzeigen

Letzte Aktualisierung am 16. Januar 2023

Kürzlich hatte ich über die Integration von Homematic-Daten in OpenHAB 3 und das Anzeigen derselben in einer NEO Remote mittels des Standard Persistence Service auf Basis RRD4j berichtet.

Zusätzlich lassen sich openHAB-Daten automatisch in eine InfluxDB Datenbank schreiben und mittels Grafana noch ansprechender aufbereiten. Auch die so erzeugten Diagramme können leicht in den Mediola aio NEO (oder anderswo) eingebunden, aber auch im Grafana UI anschaulich dargestellt werden.

Installation und Konfiguration der InfluxDB auf einem openHABian System

Die Installation auf openHABian gestaltet sich denkbar einfach. Nach dem SSH-Aufruf von…

sudo openhabian-config

…, findet man im Konfigurationstool unter…

20 | Optional Components Choose from a set of optional software components
24 | InfluxDB+Grafana A powerful persistence and graphing solution

…die entsprechende Konfigurationsroutine, die im Grunde selbsterklärend ist. Sofern nicht schon eine InfluxDB Datenbank installiert ist, die verbunden werden soll, lässt man eine neue Datenbank anlegen. Es sind mehrere Benutzernamen zu verifizieren und Passwörter zu vergeben, die man sich natürlich merken/notieren sollte. Nach dem Abschluss der Installation ist die Datenbank bereits fertig konfiguriert und im Verzeichnis…

/etc/openhab/services/

…dürfte eine Konfigurationsdatei angelegt worden sein…

influxdb.cfg
url=http://localhost:8086
user=openhab
password=PASSWORD
db=openhab
retentionPolicy=autogen

Als Nächstes wird im openHAB UI unter…

Einstellungen | Add-ons | Other Add-ons | Persistence Services

…die „InfluxDB Persistence“ installiert…

Anschließend ist noch unter…

Einstellungen | System Services | Persistence Services

…der Persistence Service auszuwählen, der verwendet werden soll, wenn kein anderer angegeben wurde. Hier ist zwingend eine Option auszuwählen. Ich habe mich für den RRD4j-Service entschieden, weil sonst die früheren Daten nicht mehr angezeigt wurden…

Damit der Persistence Service weiß, was er wann in die InfluxDB schreiben soll, wird im nächsten Schritt die entsprechende Strategie konfiguriert. Hierzu muss im Verzeichnis…

/etc/openhab/persistence

…eine Text-Datei mit dem Namen…

influxdb.persist

…angelegt werden, in der die Strategie nach der Anleitung von OpenHAB eingetragen werden kann. Das funktioniert am besten über ein FTP-Tool wie WinSCP. Hier meine derzeitige Strategie als Beispiel…

Strategies {
   everyMinute : "0 * * * * ?"
   everyHour : "0 0 * * * ?"
   everyDayAtMidnight : "0 0 0 * * ?"
   default = everyChange
}

Items {
  * : strategy = everyChange, restoreOnStartup
}

Im oberen Teil werden die Zeitpunkte deklariert (Cron). Als „default“ ist definiert, dass Datenpunkte bei jeder Änderung aufgezeichnet werden.

Im zweiten Teil ist festgelegt, welche „Items“ wie aufgezeichnet werden sollen. Der Asterisk (*) steht hierbei für alle „Items“. Mir genügt es momentan, alle „Items“ bei Änderung aufzuzeichnen (die Zeilen 2 bis 4 im Beispiel, könnten daher auch weggelassen werden). „restoreOnStartup“ lädt nach einem Neustart von openHAB den letzten Persistence-Status.

Nun sollte bereits automatisch begonnen worden sein, die Daten aufzuzeichnen.

Die Größe der Datenbank lässt sich per SSH abfragen…

sudo du -sh /var/lib/influxdb/data/openhab

…und liefert dann ein Ergebnis wie folgt…

100K /var/lib/influxdb/data/openhab

Erste Schritte mit Grafana

Das UI von Grafana erreicht man über die IP des openHAB-Servers und den Port 3000…

http://<openHAB-IP>:3000

Zur Konfiguration loggt man sich unten links als Administrator ein, wobei beim ersten Mal als Benutzer und Password „admin“ einzugeben sind. Das Passwort muss anschließend geändert werden.

Grafana ist aus meiner Sicht recht intuitiv zu konfigurieren, aber auch sehr mächtig. Ein Blick in die Dokumentation lohnt sich auf jeden Fall für die ersten Schritte.

Unter…

Configuration | Data sources | Add data sources

…wählt man als Datenquelle eine „InfluxDB“…

…und konfiguriert diese wie folgt…

Der Datenbankname muss mit dem in der „influxdb.cfg“ identisch sein, hier „openhab“.

Anschließend kann ein „Dashboard“ angelegt, in welchem wiederum sogenannte „Panels“ eingefügt werden können, welche z.B. Diagramme beinhalten…

Im „Panel“ wählt man als „data source“ „openhab“ und kann dann seine „Items“ als Datenquelle auswählen…

Falls bei der Auswahl einer „Line“ keine Linie, sondern nur Punkte angezeigt werden, liegt das wahrscheinlich daran, dass zwischen den Werten „Nullwerte“ geschrieben wurden. Linien sollten erscheinen, wenn man unter „Connect null values“ „Always“ auswählt oder einen passenden „Threshold“ definiert…

…bzw. individuell nach „fill(linear)“ gruppiert…

Ansonsten verweise ich in Bezug auf das Diagrammdesign auf die Dokumentation von Grafana. Vielleicht an dieser Stelle noch der abstrakte Hinweis, dass individuelle Einstellungen, wie z.B. eine Skale mit einer individuellen Einheit auf der rechten Seite, über „Overrides“ realisiert werden können…

Einbindung einer Grafik in aio NEO

„Panels“, aber auch „Dashboards“, können über das „Teilen“-Symbol als Link oder iFrame exportiert und woanders eingebunden werden…

Hierbei ist zu beachten, dass das „Teilen“-Fenster immer in Abhängigkeit von dem Element angeboten wird, von dem aus man es aufruft und daher hinsichtlich der Möglichkeiten unterschiedlich aussehen kann.

Falls der „Rahmen“ des UI stört, kann dieser einfach ausgeblendet werden, indem man an die URL „&kiosk“ anhängt.

In meine NEO Remotes binde ich die Grafana-Grafiken über iFrames ein, die direkt in den Hauptbereich des HTML-Gerüsts eingetragen werden. Anschließend ist nur noch die Größe (width, height) anzupassen. Diese wählt man etwas kleiner als das Webseitenelement. Bei 1775 * 1240 z.B. passt: width=“1750″ height=“1220″…

Datenexport und Backup

Bei Bedarf können die Daten als Tabelle angesehen und in eine csv-Datei exportiert werden…

Zum Backup kann das Dashboard über den Teilen-Button exportiert…

…und bei Bedarf importiert werden…

Zu weitergehenden Sicherungs- und Wiederherstellungsfunktionen von InfluxDB und Grafana verweise ich auf die entsprechenden Dokumentationen oder die Community.

Ich nutze die „Mirroring Funktion“ von openHABian und hoffe, dass damit eine funktionierende Backup-SD-Karte erstellt wurde, wenn ich sie mal brauche.

Bitte beachten...

SMART WOHNEN in Stern's Haus ist ein rein privates, nicht kommerzielles Projekt. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“, Support kann ich nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis.
Die Verwendung erfolgt auf eigenes Risiko, ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung! Für die Einhaltung der einschlägigen technischen Vorschriften ist jeder Anwender selbst verantwortlich!
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN in Stern's Haus | smart-wohnen.org

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert