Smart Metering im eigenen Heim (VI) – Datenbank per Script anbinden

Im letzten Teil unserer Blogreihe habe ich gezeigt, wie unsere MUC Datenlogger nun auch direkt Datenbanken beschreiben können. Dank Scripting ist dies ganz einfach.

Wie aber werden nun die Daten automatisch generiert und wie übertragen?

Zunächst habe ich ein XSLT-Script erstellt. Diesem Script werden die vom MUC.easyplus generierten XML-Daten übergeben. Das Script transformiert nun die Daten in ein festgelegtes Format. Dazu zählt auch, dass Berechnungen durchgeführt werden können. In meinem Beispiel müssen die Values, also die ganzzahligen Zählerwerte, noch mit der Scale, dem Skalierungsfaktor, multipliziert werden, um den richtigen Wert mit Nachkommastellen zu erhalten.

XSLT-Script

 

Im weiteren Schritt habe ich ein Shell-Script erstellt, welches die Datenbank des MUC.easyplus ausliest, die ausgelesenen Daten vom XSLT-Prozessor verarbeiten lässt und anschließend in eine Datei schreibt. Diese Datei wurde nun zeilenweise an den RaspberryPi übertragen und dort in die Datenbank der InfluxDB gespeichert.

 

#!/bin/bash

exec 1> >(logger -t report) 2>&1

shopt -s nullglob
rm -rf /tmp/reportfiles || true
mkdir /tmp/reportfiles

timestamp=$(date +%s) 

mcsvtoxml -m -c | xsltproc –stringparam serial “$SOLAPP_SERIAL” –stringparam timestamp “$timestamp” /mnt/app/report/report.xsl – > /tmp/report.txt

while read line
do
     curl -i -XPOST “http://192.168.178.62:8086/write?db=mydb” –data-binary “$line”

done < /tmp/report.txt

 

Der MUC.easyplus unterstützt neben den Standard-Übertragungsformaten und -arten auch Anwenderspezifische Erweiterungen über Scripting. Die Dateien werden dazu in das Verzeichnis app/reports abgelegt und können so über die Webseite zur Nutzung konfiguriert werden. Die Report-Instanz im Tab Server muss dafür in den Mode „User“ gesetzt werden. Somit wird das zur Instanz passende/gehörende Shell-Script aufgerufen. Instanz 1 ruft daher die Datei report_1.sh auf. Da diese report_1.sh auf die XSLT-Datei report.xsl zugreift, muss diese auch im selben Ordner abgelegt werden.

So parametriert, wird der Report und damit das Senden an die Datenbank alle 15 Minuten durchgeführt. Mit diesen 15-Minuten-Werten lässt sich dann gut analysieren.

 

MUC Einstellung

 

Nach dem Schreiben der Werte in die Datenbank kann ich diese nun sehr einfach im Grafana visualisieren.

 

Verbrauchsanzeige im Grafana

 

Da ich gerne einen Wochenvergleich meines Strom- und Wasserverbrauchs anschauen möchte, habe ich noch eine Erweiterung im Grafana – CompareQueries – installiert, mit der solche Vergleiche einfach möglich sind.
Dies zeige ich dann im nächsten Teil unserer Blogreihe.

 

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.