Smartmeter Stromzähler mit dem Raspberry Pi auslesen und Stromverbrauch aufzeichnen

Stromverbrauch messen raspberry pi

Schon länger spiele ich mit dem Gedanken den Stromverbrauch im Haus genauer unter die Lupe zu nehmen. Die meisten modernen digitalen Stromzähler haben eine optische Datenschnittstelle, über die sie ihren Verbrauch im SML-Format (Smart Messaging Language) per Infrarot ausgeben – und die lässt sich mit einem Raspberry Pi und einem einfachen Fototransistor prima auslesen. In diesem Artikel zeige ich euch, wie das mit aktuellem Raspberry Pi OS Bookworm und einem Pi 4 oder Pi 5 funktioniert.

Voraussetzungen: Hat euer Zähler eine optische Schnittstelle?

Bevor ihr Hardware kauft, prüft ob euer Stromzähler eine optische Datenschnittstelle D0 nach DIN EN 62056-21 hat. Die meisten ab ca. 2010 eingebauten digitalen Zähler (Hersteller: Landis+Gyr, Iskra, EMH, ABB u.a.) haben diese Schnittstelle. Sie überträgt Verbrauchswerte im SML-Format via Infrarot-LED.

Einfacher Test: Macht mit eurem Smartphone ein Foto des Zählers. Auf dem Bild sollte ein blinkender Lichtpunkt an der IR-LED sichtbar sein – Smartphone-Kameras sehen Infrarotlicht.

Manche Zähler müssen per PIN freigeschaltet werden, den ihr bei eurem Netzbetreiber unter Angabe der Zählernummer anfordern könnt.

Hinweis Intelligentes Messsystem (iMSys): Neuere Smart Meter mit Kommunikationsmodul (Rollout ab 2025 verpflichtend für Verbraucher >6.000 kWh/Jahr) haben teils eine andere Schnittstelle. Die hier beschriebene Methode gilt für den verbreiteten optischen D0/SML-Ausgang klassischer digitaler Zähler.

Hardware

Raspberry Pi

Schaltung für den Fototransistor

Alternative: Fertiger USB-Lesekopf

Wer sich die Schaltung sparen möchte, greift zu einem fertigen optischen Lesekopf mit USB-Anschluss. Diese werden direkt per USB mit dem Pi verbunden, tauchen als serieller Port (/dev/ttyUSB0) auf und funktionieren ohne Lötarbeit. Beliebt sind Modelle von Volkszähler.org-Unterstützern oder günstige Varianten aus der Community.

Verkabelung der Schaltung

Der Aufbau ist simpel: Fototransistor und Widerstand werden mit dem UART-RXD-Pin des Pi verbunden. Das Mini-Steckbrett lässt sich mit doppelseitigem Klebeband im Zählerschrank befestigen.

Schaltung Smart Meter Raspberry Pi

Pinbelegung:

  • Rot: 3,3V – PIN 1
  • Schwarz: GND – PIN 6
  • Blau: RXD – PIN 10
  • Kollektor des Fototransistors an RXD (blau) und über 1k-Ohm an 3,3V (rot)
  • Emitter an GND (schwarz)

Wichtig: Kollektor und Emitter nicht vertauschen – mit Blick auf die Linse ist der Emitter links, der Kollektor rechts.

Raspberry Pi OS Bookworm einrichten

Ich verwende Raspberry Pi OS Bookworm (64-bit), das aktuelle Standardsystem. Richtet euren Pi wie im Einsteiger-Guide beschrieben ein. Alle weiteren Schritte erledigt ihr per SSH oder direkt am Terminal.

Zuerst System aktualisieren:

Hardware Serial Port aktivieren (UART)

Wir nutzen den UART-RXD-Pin (PIN 10) des Raspberry Pi. Standardmäßig ist dieser an Bluetooth gebunden oder als Konsole konfiguriert – das müssen wir ändern.

Schritt 1: Serial-Konsole deaktivieren via raspi-config

In Raspberry Pi OS Bookworm navigiert ihr zu:

  • 3 Interface Options
  • I6 Serial Port
  • Erste Frage („Login shell über serial?“) → No
  • Zweite Frage („Serial Port Hardware aktivieren?“) → Yes
  • Bestätigen mit OKFinish

Schritt 2: Bluetooth deaktivieren, Hardware-UART freigeben

Öffnet die Konfigurationsdatei – Achtung: seit Bookworm liegt diese unter /boot/firmware/config.txt (nicht mehr /boot/config.txt):

Fügt am Ende folgende Zeile hinzu:

Hinweis: Für Pi 4 und Pi 5 lautet der Overlay disable-bt (nicht mehr pi3-disable-bt wie beim alten Pi 3).

Speichern mit STRG+X, Y, ENTER. Dann den Bluetooth-Systemdienst deaktivieren:

Nach dem Neustart ist der Hardware-UART unter /dev/ttyAMA0 (bzw. Symlink /dev/serial0) verfügbar.

Schritt 3: UART-Port prüfen

Ausgabe sollte zeigen: /dev/serial0 → ttyAMA0

Fototransistor testen mit minicom

  • Serial port setup wählen
  • A → Serial Device: /dev/ttyAMA0 eingeben, Enter
  • E → Bps/Par/Bits: 9600 8N1 wählen (C, L, V, W)
  • Save setup as dflExit

Wenn ihr im Minicom-Fenster wirre Zeichen seht, empfängt der Fototransistor korrekt SML-Daten. Minicom beendet ihr mit CTRL+A, Q, ENTER.

Anschließend UART-Parameter festlegen:

vzlogger installieren

Der vzlogger liest die SML-Daten aus und leitet sie weiter. Unter Bookworm könnt ihr ihn direkt als Paket installieren:

Falls die Paketversion veraltet ist oder Probleme macht, alternativ aus dem Quellcode kompilieren (Build-Script von volkszaehler.org):

vzlogger konfigurieren

Schritt 1: OBIS-Kennzahlen ermitteln

Erstellt zunächst eine Testkonfiguration, um zu sehen welche Werte euer Zähler sendet:

Inhalt:

vzlogger starten und Log beobachten:

Ihr seht jetzt die empfangenen OBIS-Kennzahlen, z.B.:

Die wichtigsten OBIS-Kennzahlen:

OBIS-Kennzahl Bedeutung Einheit
1-0:1.7.0 Momentanleistung Bezug Watt
1-0:1.8.0 Zählerstand Bezug gesamt Wh
1-0:1.8.1 / 1.8.2 Zählerstand Tarif 1 / Tarif 2 Wh
1-0:2.8.0 Einspeisung (Photovoltaik) Wh
1-0:16.7.0 Wirkleistung (alle Phasen) Watt

Schritt 2: Volkszähler-Kanäle anlegen

Öffnet das Volkszähler-Webinterface im Browser unter http://<ip-des-pi>/ und legt für jede OBIS-Kennzahl einen Kanal an. Notiert euch nach dem Erstellen die UUID jedes Kanals – ihr braucht sie für die vzlogger-Konfiguration.

Volkszähler Weboberfläche

Schritt 3: vzlogger Endkonfiguration

Editiert /etc/vzlogger.conf und tragt die UUIDs der Kanäle ein:

Tipp: Die Parameter aggtime und aggmode reduzieren die Schreibhäufigkeit in die Datenbank deutlich – sonst werden alle 2 Sekunden Einträge erzeugt, was mehrere MB pro Tag ergibt und SD-Karten schnell verschleißt.

vzlogger neu starten:

Im Volkszähler-Webinterface sollten jetzt live Daten erscheinen:

Volkszähler Webinterface mit Stromverbrauch

Alternative: Home Assistant mit SML-Integration

Wer Home Assistant betreibt, kann den Stromzähler direkt ohne Volkszähler einbinden. Home Assistant bietet eine native SML-Integration, die vzlogger und die Volkszähler-Middleware komplett ersetzt:

  1. Fototransistor-Schaltung wie oben aufbauen (oder USB-Lesekopf nutzen)
  2. In Home Assistant: Einstellungen → Geräte & Dienste → Integration hinzufügen → SML
  3. Serielles Gerät (/dev/ttyAMA0 oder /dev/ttyUSB0) auswählen
  4. HA erkennt die OBIS-Kennzahlen automatisch und legt Sensoren an

Die Verbrauchsdaten landen dann direkt im Home Assistant Energie-Dashboard – inklusive Tages-/Monatsauswertung, Kostenberechnung und Vergleichsdiagrammen. Das ist heute für die meisten der komfortablere Weg.

Hinweise für den Raspberry Pi Zero 2 W

Der Pi Zero 2 W ist aufgrund seiner Größe ideal für den Einsatz im Zählerschrank. Er hat nur einen Micro-USB-Anschluss, über den er mit Strom versorgt wird. UART-Konfiguration und Pinbelegung sind identisch mit Pi 4. Da der Zero 2 W nur über WLAN verfügt (kein Ethernet), müsst ihr WLAN vorher im Raspberry Pi Imager einrichten oder einen WLAN-Extender in der Nähe des Zählerschranks nutzen.

Fazit

Mit einem Raspberry Pi und einem einfachen Fototransistor habt ihr für unter 30 Euro ein vollständiges Stromverbrauchs-Monitoring für euer Zuhause. Der Volkszähler bietet eine bewährte, lokale Lösung – wer Home Assistant nutzt, kann die SML-Integration aber noch einfacher und direkt einbinden. Wichtig für 2025: den neuen Konfig-Pfad /boot/firmware/config.txt und den Overlay disable-bt nutzen – damit klappt die UART-Aktivierung unter Bookworm reibungslos.

Ähnliche Beiträge