Smart Metering im eigenen Heim (IV) – Daten visualisieren mit Grafana

Wie im dritten Teil schon erwähnt, hatte ich ja bereits ein Auge auf Grafana geworfen. Nun musste ich mir überlegen, wie das Ganze dann zusammen mit OpenHAB gebracht wird. Grafana unterstützt viele Datenquellen, sinnvoll für eine Verbrauchsdarstellung ist eine klassische Datenbank. Da Grafana an dieser Stelle deutlich flexibler als OpenHAB ist, muss ich mich nach OpenHAB richten. Dieses unterstützt unter anderem eine InfluxDB-Datenbank. Das erleichtert einiges, denn InfluxDB ist eine weit verbreitete Datenbank für Zeitreihen und auch in Grafana gut unterstützt. Diese Kombination wird auch im Internet oft zusammen genannt.

Also installiere ich zunächst InfluxDB auf dem Raspberry Pi. Auch hier hilft eine Recherche im Internet. In wenigen Minuten ist InfluxDB installiert und eingerichtet. Mir reichen hier meistens die Standardeinstellungen. Über die Administrationswebseite von InfluxDB lege ich mir eine Datenbank nach Anleitung an und erstelle Nutzerrechte. Das wars für den Teil Datenbank. Hier ist die Administrationswebseite zu sehen:

 

InfluxDb_admin

 

Nun muss ich OpenHAB dazu bringen, die Werte in die Datenbank zu schreiben. Dafür gibt es so genannte Persistence-Dienste.

 

openHAB_Persistence

 

Diese lassen sich – wie fast alles andere auch – nur auf Konfigurationsdateiebene in OpenHAB anlegen. In der Datei /etc/openhab2/services/influxdb.cfg ergänze ich nun ein paar Zeilen, damit auf die InfluxDB zugegriffen werden kann.

 

InfluxDb_influxcfg

 

Die Datenbank ist nun verfügbar. Nun muss ich noch festlegen, wie oft die die Werte für die Leistungsaufnahme und die Zählerstände für Elektrizität und Gas nach Bedarf in der Datenbank abgelegt werden.

 

InfluxDb_persistence

 

Da ich den Momentanwert der Leistungsaufnahme möglichst hochauflösend erfassen will, konfiguriere ich diesen auf Speicherung bei jeder Änderung. Bei den Zählern interessieren mich nur die 15min-Werte, eine häufigere Auslesung erscheint mir unnötig.

Nach dem Speichern der Konfiguration sollten nun die Daten in die Datenbank laufen. Über die Administrationswebseite von InfluxDB sehe ich auch sehr schnell, dass die Daten tatsächlich geschrieben werden. Sehr gut. Nun noch Grafana.

Auch hier orientiere ich mich bei der Installation an Beschreibungen im Internet. Auch dies dauert nur wenige Minuten und Grafana startet auf dem Raspberry Pi. Nach dem ich einen Nutzer angelegt habe, lege ich meine InfluxDB-Datenbank als Datenquelle an. Der Treiber ist soweit vorbereitet, es sind lediglich der Datenbankname und die Zugangsdaten anzugeben. Das ist schnell gemacht. Auch hier bin ich überrascht, wie gut das Zusammenspiel mehrerer Komponenten ist.

 

Grafana_DBplugin
grafana_influxdb

 

Die Daten landen in der Datenbank, die Datenbank ist eingebunden, fehlt nun noch die eigentliche Visualisierung. Ich erstelle ein Dashboard in Grafana. Über die Webseite von meinem Grafanasystem geht das sehr intuitiv und es lässt sich ganz einfach auf das Dashboard ein Panel – also eine Diagrammfläche – einfügen. Beinahe selbsterklärend ist die Anbindung der Datenbank als Datenquelle für das Diagramm. Ich wähle einfach den Namen meines Presisitence-Objekts aus und schon erscheint eine Grafik dazu. Geschafft, zumindest grob. Eine erste grafische Visualisierung steht.

Da ich erst einmal einen Zählerstand anzeigen lassen wollte, erscheint im Versuch eine treppenartige Grafik. Klar, denn jeweils nach 15 Minuten ist der Wert um einen gewissen Wert größer als 15 Minuten davor. Dazwischen wird der Wert nicht gespeichert, bleibt also beim alten Wert. Da die 15min-Verbräuche zum eigentlichen Zählerstand sehr klein sind, sind die Stufen klein und schwer zu unterscheiden. Da muss ich mir also noch etwas überlegen. Ich lasse mir daher erstmal die Momentanleistungen anzeigen. Das funktioniert auch sofort und sieht richtig gut aus. Man kann wirklich Lastspitzen, Rampen, zeitbasierte Lasten usw. voneinander unterscheiden. So wünsche ich mir das.

 

grafana_leistung

 

Aber was mache ich mit den Zählerständen? Mich interessiert ja eigentlich nur die Differenz des Zählerstands alle 15 Minuten. Also muss ich irgendwie die Differenz ausrechnen und auch diese in die Datenbank schreiben. Aber wo soll ich da ansetzen? In OpenHAB? Auf der Suche im Internet stoße ich auf einen sehr eleganten Weg. Dieser deutet auf die Mächtigkeit von Grafana hin. Denn ich muss nur noch einen Parameter im Diagramm ergänzen, um an das Ziel zu kommen. Grafana sorgt selbst für die Differenzbildung.

 

Grafana_Energie

 

Damit kann ich nun meinen 15-Minuten-Lastgang der Elektrizität darstellen. Und weil es so gut funktioniert hat, erstelle ich auch noch zwei Panels mit der Darstellung des Tagesverbrauchs von Elektrizität und Gas. Auch hier bildet Grafana selbst die Tagesdifferenz.

Damit bin ich vorerst am Ziel. Mein Verbrauch wird mir grafisch ansprechend visualisiert.

 

Grafana_komplett
Kategorien:
Kategorien

Ähnliche Beiträge

Leitfaden zur Kommunikation mit Modbus

mehr lesen

Unsere neuen Software-Funktionen

mehr lesen

Cookies & Skripte von Drittanbietern

Diese Website verwendet Cookies. Für eine optimale Performance, eine reibungslose Verwendung sozialer Medien und aus Werbezwecken empfiehlt es sich, der Verwendung von Cookies & Skripten durch Drittanbieter zuzustimmen. Dafür werden möglicherweise Informationen zu Ihrer Verwendung der Website von Drittanbietern für soziale Medien, Werbung und Analysen weitergegeben.
Weitere Informationen finden Sie unter Datenschutz und im Impressum.
Welchen Cookies & Skripten und der damit verbundenen Verarbeitung Ihrer persönlichen Daten stimmen Sie zu?

Sie können Ihre Einstellungen jederzeit unter Datenschutz ändern.