Teil 2: SML-Zählerdaten in die InfluxDB

Im Teil 1 wurde der Raspberry Pi soweit vorbereitet, dass nun eine Software installiert werden kann, um die Daten vom Zähler in die InfluxDB Datenbank zu pumpen.

Die moderne Messeinrichtung ist der Standardzähler bei der Digitalisierung der Energiewende. Er sammelt die Verbrauchsdaten täglich und speichert diese für jeden Tag, jede Woche, jeden Monat und jedes Jahr. Die Tiefe des Speichers (also die Zeit, wie lange ein Datensatz im Zähler bleibt) beträgt zwei Jahre. Der jeweil älteste Datensatz wird durch den neuesten Datensatz ersätz (Firt In, First out – fifo)

Die moderne Messeinrichtung bietet zwei Schnittstellen:

  • eine rückwärtige LMN-Schnistelle
  • die optische Info-Schnittstelle vorne am Gehäuse

Nur die Info-Schnittstelle ist für den Stromkunden nutzbar. Dort werden die Daten jedoch optisch als Infrarot-Signale ausgegeben, um eine elektrische Trennung von Kundengeräten von der Messtechnik des Zählers zu gewährleisten. Ein sogenannter Tastkopf muss daher als zusätzliche Hardware den Datenstrom des Zählers für die weitere Datenverarbeitung zugänglich machen.

Im weiteren Verlauf wird ein Tastkopf eingesetzt, der die Daten in TCP/IP Pakete umwandelt und per WiFi über einen WLAN-Router in ein Netzwerk einspeist – ein INFO-Adapter. Mit diesem Aufbau erhält man die größte Flexibilität bei der weiteren Datenverarbeitung. Wer dagegen lieber die Daten über USB einlesen möchte, kann dies natürlich auch tun.

Um die Daten der TCP/IP-Pakete (bzw. den USB-Datenstrom) in die InfluxDB Datenbank umzuleiten, muss die Software SMLToJSON isntalliert werden auf dem Raspberry Pi. Das geschieht mit zwei Kommandos, die in dem Installationsverzeichnis der Software ausgeführt werden

wget https://github.com/jblu48317/SMLToJSON/archive/master.zip

unzip master.zip

In dem Verzeichnis SMLToJSON-master/bin/ muss nun die Datei startSML2JSONClient_TCP_influx.sh angepasst werden.

Zunächst muss die Adresse von dem INFO-Adapter eingerichtet werden. Der Port bleibt dabei unverändert:

device=192.168.8.138:8899

Für die INfluxDB Datenbank müssen die im Teil 1 eingerichteten Zugangsinformationen hier eingesetzt werden, damit die Daten auch abgespeichert werden können:

INFLUXDB_HOST=http://127.0.0.1:8088
INFLUXDB_DBNAME=MeteringData
INFLUXDB_DSNAME=Demo_01
INFLUXDB_USER=admin
INFLUXDB_PASSWD=passwd

Damit ist nun die IT-Brücke geschlagen zwischen dem Zähler und der Datenbank im Raspberry Pi. Der vorher isolierte Zähler kann nun die Daten für die IT-Verarbeitung bereit stellen.

Um das ganze zu testen – nachdem man die Konfiguration abgespeichert hat – bieten sich folgendes Vorgehen an:

Zuerst lässt sich die Installation von SML2Json testen, wie in dem folgenden Bild gezeigt:

Mit ssh wird ein Terminal-Fenster auf dem Raspberry PI geöffnet, in diesem Beispiel der Host GrafanaPi:

ssh pi@GrafanaPi

Nach dem Aufruf des fertig konfigurierten bash-Scripts startSML2JSONClient_TCP_influx.sh zeigt die Ausgabe in dem Terminal an:

  • dass die Daten per TCP/IP von der Adresse des Taskopfes – 192.168.8.138 – und da vom Port 8899 abgelesen werden und
  • dass die Daten auf dem lokalen Rechner in die InfluxDB-Datenbank MeteringData und dort in die Messwerteliste Demo_1 eingetragen werden.

Nun kontrollieren wir noch, ob die Daten tatsächlich in der Datenbank landen. Auch hier zunächst der Ablauf als Screenshot:

In einem weiteren ssh-Terminal zum GrafanaPi wird der Datenbank-Server aufgerufen, der daraufhin eine Kommandozeile anbietet. In der Kommandozeile des Servers wird anschließend die Datenbank ausgewählt und dann er aktuelle Datensatz ausgegeben:

influx -username admin -password passwd

use MeteringData

select last (*) from Demo_1

Wird eine Datentabelle genau wie die obige angezeigt, ist alles korrekt konfiguriert und der Raspberry Pi als Datensammler einsetzbar. Damit direkt beim booten des Rechners der bashSript SML2Json aktiv ist, sollte der Aufruf immer beim Hochfahren des Rechners gestartet werden. Dazu wir der cron-Editor des Raspberry Pi aufgerufen:

crontab -e

In der Datei wird dann folgende Zeile eingetragen am Ende der Datei:

@reboot /home/pi/SML2JSON/bin/startSML2JSONClient_TCP_influx.sh

Nun können wir uns dem letzten Teil zuwenden – dem Aufbau des Energie-Cockpits als Grafana-Dashboard.