Den eigenen Stromzähler mit dem Raspberry Pi auslesen

    7. Mai 2017, 16:25
    58 Postings

    Wie man Verbrauchsdaten stunden- oder gar minutengenau messen kann

    Wer den Gesamt-Stromverbrauch des eigenen Haushalts ermitteln möchte, blickt dazu auf seinen Stromzähler und macht sich in möglichst gleichmäßigen Intervallen Notizen. Was aber, wenn man die Verbrauchsdaten stunden- oder gar minutengenau haben möchte, am besten in einer Datenbank? Ist der Stromzähler noch ein altes Modell mit sich drehender Zählerscheibe, so sind die Möglichkeiten begrenzt. Pfiffige Menschen haben sich Minikameras vor die Verbrauchsanzeige montiert, die den numerischen Zählerstand fotografieren. OCR-Software wandelt die Zahlen in den Fotos dann in Text zurück. Das Verfahren ist jedoch, besonders bei wechselnden Lichtverhältnissen, fehleranfällig.

    Smart Meter

    Besser hat es, wer bereits einen der neuen Smart Meter besitzt. Zwar sind die Geräte nicht besonders beliebt, weil sie vom Stromanbieter fernauslesbar und damit nicht vollständig in der Hand des Kunden sind. Aber wenn der Zähler schon einmal da ist, kann ihn auch zum eigenen Vorteil nutzen. Smart Meter gibt es von verschiedenen Herstellern, aber fast alle besitzen an der Vorderseite eine Infrarot-Leuchtdiode, die in kurzen Abständen den aktuellen Zählerstand hinauspulst.

    Raspberry statt Windows-PC

    Um an die Daten zu gelangen, benötigen wir einen Infrarot-Empfänger, der vor die sendende LED montiert wird. Wer am Lötkolben versiert ist, kann sich einen IR-Lesekopf selbst bauen, unter http://volkszaehler.org hat sich dazu ein reicher Erfahrungsschatz angehäuft. Fertige Leseköpfe gibt es im Netz zu kaufen. Noch einen Schritt weiter geht co.met und bietet ein Ethernet-Gateway an, das die Zählerdaten per Webserver im LAN bereitstellt. Käuflich erworbenen Leseköpfen liegt meist eine Software für Windows bei, die die Daten aufbereitet. Aber wer permanent minutengenaue Verbrauchsdaten haben möchten, müsste einen Windows-PC im Dauerbetrieb halten. Das ist nicht wirtschaftlich, aber der Stromverbrauch eines Raspberry Pi fällt dagegen kaum ins Gewicht. Um die Software müssen wir uns in diesem Fall allerdings selbst kümmern.

    "Smart Message Language"

    Ist der Lesekopf einmal montiert (die meisten haften magnetisch), sind die Rohdaten des Zählers schnell verfügbar, doch sie liegen nicht in einem menschenlesbaren Format vor, sondern in SML, der mit XML verwandten "Smart Message Language" – und zwar in hexadezimaler Schreibweise. Noch vor wenigen Jahren war Dokumentation zu SML kaum auffindbar, aber das hat sich zum Glück geändert.

    In den Links am Ende des Wikipedia-Artikels über SML finden sich Code-Beispiele und eine vollständige SML-Parameterdokumentation. Daraus erfährt man, dass etwa in den Bytes, die auf "01 08 00 63" folgen, der Verbrauch über die letzten 365 Tage kodiert ist. Der Wert wird permanent fortgeschrieben. Wenn sich die gleichen Bytes nach einer Stunde noch einmal ausgeben lassen, kann festgestellt werden, dass sich die Werte leicht erhöht haben, nämlich um den Stromverbrauch der letzten Stunde. Wer sich die Auswertungssoftware nicht selbst schreiben mag, findet fertigen Code auf http://volkszehler.org oder folgt den Links im erwähnten Wikipedia-Artikel.

    RRDTool

    Jetzt brauchen man lediglich noch einen Raspberry Pi, der periodisch die Zählerstände ausliest und aus der Differenz den aktuellen Stromverbrauch ermittelt. Wenn dazu noch die Werte in eine kleine Datenbank geschrieben werden und Graphen erstellt werden sollen, bietet sich die Software RRDTool an – damit kann man sogar sogar live verfolgen, wenn größere Verbraucher die Muskeln spielen lassen. (Charly Kühnast, 7.5.2017)

    • Ein IR-Lesekopf.
      foto: kühnast

      Ein IR-Lesekopf.

    Share if you care.