Donnerstag, 5. Juni 2025

Den Stromzähler auslesen

Vor einigen Wochen hat unser Netzbetreiber einen 'intelligenten' Stromzähler, auch SMART Meter genannt, von Landis Gyr bei uns installiert. Laut Herstellerangaben verfügt er über ein optisches Interface, das Nachrichten in der Smart Message Language (SML) ausgeben kann. Dieses Kommunikationsprotokoll wurde für Firmwareupgrades oder dem Austausch von Messdaten entwickelt. Zum Auslesen der Daten genügt eigentlich ein IR Phototransitor, ich habe mich jedoch für den Kauf eines fertigen Lesekopfs mit UART Schnittstelle entschieden. Die Signale Rx und Tx werden mit TTL Pegel von 3 bis 5 Volt übertragen, so dass der Lesekopf direkt an einen Rasperry Pi Zero 2W angeschlossen werden kann.


Auch softwareseitig gibt es bereits fertige Lösungen. Volkszaehler.org stellt einen Datenlogger namens 'vzlogger', sowie als middleware eine PHP Datenbank zum Speichern der ausgelesenen Daten zur Verfügung. Darüber hinaus gibt es ein web frontend zur graphischen Darstellung der ausgelesenen Werte. Wie die Volkszähler Software auf einem Raspberry Pi mit fertigem Image installiert wird, ist hier beschrieben.

Um sich in einem ersten Schritt die Daten anzuschauen, die vom Lesekopf geliefert werden, kann man z.B. das Terminal Programm minicom installieren. Das geht mit  'sudo apt-get install minicom'. Anschließend kann der port mit 'minicom -s' konfiguriert werden. Laut Landis Gyr Benutzhandbuch werden folgenden Einstellungen benötigt.


Der Befehl 'minicom -H -C hex.log' gibt die empfangenen Daten in hexadezimaler Darstellung aus und speichert sie in 'hex.log'.


Laut Wikipedia kennzeichnen die empfangenen '1B 1B 1B 1B' eine Escape Sequenz, und die '01 01 01 01' markieren den Beginn einer SML Nachricht.

Alternativ können zur Darstellung der vom Messkopf empfangenen Daten auch die Programme picocom oder xxd verwenden werden. Mit xxd gelingt die Darstellung besonders einfach.

Um die SML Daten interpretieren zu können, müssen wir die 'Volkszähler' Software bemühen. Zunächst müssen wir den Datenlogger vzlogger konfigurieren. Dazu kann der vzlogger.conf-Editor benutzt werden. Der screenshot unten zeigt eine so erzeugte Konfigurationsdatei namens 'vzlogger.conf'. Achtung, der log Pfad muss  z.B. mit dem nano Editor händisch auf '/var/log/vzlogger/vzlogger.log' geändert werden, sonst startet vzlogger nicht richtig.

Nach 'sudo reboot' oder 'sudo systemctl restart vzlogger', kann mit 'systemctl status vzlogger' überprüft werden, ob der Datenlogger sauber läuft.


Wenn Alles passt, finden sich in 'vzlogger.log' 'readings' mit OBIS code '1.8.0' für den Bezug von Strom in Wh, und mit '2.8.0.' für die Einspeisung in Wh. Im Auslieferungszustand des  SMART Meters erfolgt die Änderung der Werte allerdings nur in kW Sprüngen.

Laut Landis Gyr Benutzhandbuch lässt sich neben der bezogenen oder eingespeisten Energie auch die aktuell verbrauchte Leistung auslesen. Dies ist allerdings nur nach Eingabe einer PIN möglich, die vom Netzbetreiber erfragt werden kann. Zur dauerhaften Ausgabe muss der PIN des Zählers deaktiviert werden. 

Mit Hilfe einer modifizierten Taschenlampe, deren Beleuchtungsstärke mindesten 400 Lux betragen muss, kann man durch das Menü des Zählers navigieren. 

Für die Eingaben muss die optische Schnittstelle entweder mit kurzen Pulsen weniger als 2 Sekunden , oder mit langen Pulsen mehr als 2 Sekunden beleuchtet werden.


Wird der 'erweiterter Datensatz' im Menuepunkt 'InF' aktiviert, erfolgt die Ausgabe der Energie zudem mit einer Genauigkeit von Wattstunden (Wh).


Um die Daten graphisch darstellen zu können, müssen im web frontend Kanäle angelegt werden. Dazu muss man im Webbrowser 'http://<IP des pi>/' eingeben, und dann den gewünschten Kanal 'hinzufügen'.


Über das (i) der Kanäle lässt sich der 'Universally Unique Identifier' UUID herausfinden, der beim Anlegen der Kanäle erzeugt wurde. Anschließend müssen dieses Kanäle zusammen mit der UUID in der 'vzlogger.conf' hinterlegt werden. Ich habe folgende Einträge gemacht.


Nach  'sudo systemctl restart vzlogger' sollte die graphische Darstellung dann klappen. Das Bild unten zeigt den typischer Verbrauch und die typische Einspeisung an einem sonnigen Frühlingstag.



Obwohl in den ersten beiden Kanälen ein Energiemeter gewählt wurde, werden praktischerweise nicht die Zählerstände sondern eine errechnete Leistung angezeigt.

Im letzten Schritt habe ich mir ein Gehäuse aus dem Thingiverse ausgedruckt, und zum besseren Halt am metallischen Verteilerkasten einen Magneten aufgeklebt.


Im Eingebauten Zustand sieht das Ganze dann wie folgt aus.



Jetzt lässt sich im Browser eines beliebigen Smartphones der aktuelle Stromverbrauch überwachen. 

Viel Spaß beim selber Basteln...



Keine Kommentare:

Kommentar veröffentlichen