Instrumentierung eines elektronischen Haushaltzählers (eHZ) zur optimalen Nutzung von Solarstrom.

 

K.O.Linn

 

Der folgende Beitrag ist der Tatsache geschuldet, dass ein pensionierter Professor für Prozessdatenverarbeitung auch im Ruhestand seinen Geist nicht in denselben schicken wollte. Befeuert wurde die Sache durch die Investition in eine Solaranlage und durch den Corona-Lockdown.

 

Motivation: CO2 Einsparung und Spaß am Programmieren von Echtzeit-Anwendungen.

 

Zielsetzung: Es gilt den aktuellen Zählerstand eines Zweiwege Haushaltzählers sekundengenau im WLAN zur Verfügung haben. Mit dieser Information sollen diverse Verbraucher ein- und ausgeschaltet werden, so dass möglichst viel Solarstrom genutzt wird und für bestimmte Verbraucher auf keinen Fall auf Netzstrom zurückgegriffen werden muss.

 

Was sind „geeignete Verbraucher“ eines Privathaushaltes die sich für die gezielte Nutzung von Solarstrom eignen?

(Die elektrischen Großverbraucher Herd und Waschmaschine gehören eher nicht dazu. Denn bei halbgarem Essen und eingelaufenen Socken hört auch für die Grünsten der Spaß auf. Spülmaschine und Wäschetrockner könnte man – bei geeigneter Technik - für eine gewisse Zeit in einen Standby Modus versetzen und so an das Solarstromangebot anpassen.)

 

Vor allem geeignet sind: Klimaanlagen, Pumpen für die Garten-Bewässerung, E-Bikes, Pool-Technik oder Warm­wasser­bereitung mit einem Boiler. Alles Dinge die vor allem bei schönem Wetter genutzt werden, d.h. dann wenn auch viel Solarstrom zur Verfügung steht.

Ich habe z.B. gute Erfahrung mit einem Durchlauferhitzer aus der Schwimmbadtechnik gemacht, den ich nachträglich parallel zur Gasheizung eingebaut habe. Der Heizer lässt sich in 500 W Stufen von 0 - 3 kW regeln und so ziemlich genau dem Angebot an Solarstrom anpassen. Der Boiler ist ein vorhandenes 300 l Standgerät und für mindestens 7 kWh Speicherkapazität gut. Mit dieser Technik kann ich im Sommer die Gasheizung ganz ausschalten und erspare mir so die Stillstandsverluste des Heizkessels und die CO2 Emission des Gasbrenners.

 

Realisierung: In vielen Haushalten sind neuerdings statt der lange üblichen analogen Ferraris Zähler elektronische Zähler verbaut. Diese Zähler besitzen eine optische Schnittstelle über die verschiedene Verbrauchs-Parameter ausgelesen werden können. Unter https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-ttl-ausgang

findet man eine Bau-Anleitungen für eine Elektronik zum Auslesen dieser Zähler.

(Mein Beitrag hier ist eine weitere Variante mit absolut minimalistischem Design.

Das Ganze möchte ich deshalb eher als Gesamtkunstwerk verstanden wissen, denn als eine perfekte techn. Lösung.)

 

1. Schritt den Zähler konfigurieren.

Um den Haushalts-Zähler als universelles Verbrauchsmessgerät zu nutzen, muss man den Zähler nach Eingabe einer PIN so konfigurieren, dass er den „erweiterten Datensatz“ anzeigt. (Mit den Daten der nicht-PIN-geschützten Anzeige kann man nicht viel anfangen. Sie ist nämlich ziemlich ungenau und liefert auch keine Leistungswerte.) D.h. bevor man überhaupt über die Verbrauchsmessung weiter nachdenkt, muss man sich von seinem Energie-Versorger die Zähler-PIN besorgen. Außerdem braucht man eine ausführliche Bedienungsanleitung in der die verschiedenen Betriebsarten des Zählers beschrieben sind.

(Warum man diese Information nicht gleich bei der Installation mitbekommt, gehört zu den vielen Geheimnissen der Energiewende. Die meisten Zähler sind Gott sei Dank ähnlich aufgebaut, so dass man nicht genau die richtige Anleitung braucht. Ich habe es mit einer Anleitung der Deutsche Zählergesellschaft Oranienburg mbH geschafft.)

 

Die Eingabe der PIN ist ein heilloses Gefrickel und erfordert meistens mehrere Anläufe. Bei manchen Zählern muss man dazu auch noch mit der Taschenlampe hantieren, bei anderen Zählern gibt es einen Taster der die gleiche Funktion wie die Taschenlampe hat, aber einfacher zu bedienen ist. Zum Glück muss man diese Prozedur nur einmal durchführen.

 

Für meine Anwendung braucht man von den verschiedenen Funktionen eigentlich nur zwei: „PIN Schutz aus“ und „erweiterter Datensatz“. Die restlichen Funktionen sind in meinen Augen Spielerei - zumindest dann wenn es gelingt die Daten ins WLAN einzuspeisen.

 

Anm.: Der PIN-Schutz ist im Einfamilienhaus überflüssig, in einem Haus mit mehreren Zählern an zentraler Stelle aber durchaus sinnvoll. Die Genauigkeit der Zähler in diesem Modus ist nämlich verblüffend:

Die Leistung wird in cW (1/100 Watt) und die Arbeit in dWh  (1/10 Wh) ausgegeben – jede Sekunde ein Datensatz. Das bedeutet, dass man aus diesen Daten mit einiger Akribie allerhand über die Verbraucher herausfinden kann - z.B. ob das Bügeleisen noch an ist oder der Tee schon gekocht ist.

 

2. Schritt IR-Interface

Die neuen eHZ besitzen eine optische Infrarot-Schnittstelle (D0) zum Auslesen der Verbrauchsdaten. Die Schnittstelle ist bidirectional - wobei mir der Sinn des Dateneingangs (in den Zähler) bislang verborgen geblieben ist. Ich benutze nur den Datenausgang.

Im Lesekopf habe ich die primitive Schaltung aus 3 Widerständen, einem IR-Fototransistor und einem NPN Transistor untergebracht. Der Lesekopf wird mit 2 kleinen Stabmagneten am Zähler festgehalten. (Diese könnten allerdings etwas stärker sein.) Wer noch aus der guten alten Zeit der analogen Fotografie ein Filmdöschen sich bewahrt hat kann das Ganze dort einbauen und mit 3,3 V und der seriellen Schnittstelle eines ESP8266 verbinden. (Im Internet findet man leicht viele Bauanleitungen für einen IR Lesekopf – ich habe allerdings noch keine gefunden die so simpel ist wie meine. Das Ganze kostet incl. ESP ca. 5 € und funktioniert seit über einem Jahr ohne Probleme.)

3. Schritt Programmierung des ESP8266

Möglicherweise findet sich im Internet auch das ultimative Programm zum Decodieren der D0 Schnittstelle. (https://www.msxfaq.de/sonst/bastelbude/smartmeter_d0_sml.htm ist schon mal ein guter Startpunkt.) Leider habe ich für mich nicht das Richtige gefunden und mich deshalb selbst an die Programmierung gemacht.

(Ich finde Programmieren auch deutlich kreativer als planlos im Internet herumzusuchen. In Corona Zeiten braucht man sowieso eine sinnvolle Beschäftigung.)

 

Die vom Zähler gelieferten Daten sind SML codiert - ein schreckliches Protokoll aus der Zeit vor JSON und XML.

(https://www.msxfaq.de/sonst/bastelbude/smartmeter_d0_sml_protokoll.htm)

Bei meinem Zähler ist ein Datensatz ungefähr 256 Bytes lang. Man muss diese Daten jedoch nicht vollständig parsen. Meistens reicht es die Startsequenz, die Stopsequenz, die bezogene Energie, die gelieferte Energie, die aktuelle Leistung (mit Vorzeichen) und die zugehörigen 10er Exponenten und die Prüfsumme aus dem Datensatz herauszufiltern. Die Übertragung der Daten mit 9600 Baud dauert ca. 250 ms, dann kommen ca. 750 ms Pause und alles beginnt von neuem. Die Pause reicht locker aus, um mit dem ESP8266 einen Datensatz zu decodieren, zu überprüfen, zu speichern und die Ergebnisse per UDP zu verschicken – und ggfs. die AJAX-Schnittstelle zur Visualisierung zu bedienen. Danach steht in meinem WLAN der aktuelle Verbrauch überall zur Verfügung und kann von WLAN Steckdosen und Shelly® oder Sonoff® Devices genutzt werden um ausgewählte Verbraucher immer dann einzuschalten wenn genügend Sonnenstrom zur Verfügung steht.

 

Der ESP8266 hat genügend RAM-Speicher um 8640 Messwerte zu speichern. Das reicht um einen Tag lang alle 10 s einen Wert zu speichern. Um mehr Daten zu speichern, sollte man sich einen Raspberry zulegen.

 

4. Schritt User Interface

Das Userinterface läuft über das HTTP-Protokoll. Zur Parametrierung benutze ich ein command line Interface (CLI) mit dem man einzelne Parameter gezielt einstellen kann. (Dieses Interface ist nicht sehr benutzerfreundlich und nur für Entwickler gedacht.) Für häufige Anwendungen habe ich mir mit dem MIT App Inventor (http://appinventor.mit.edu/) eine App gebastelt mit der ich alle meine ESPs lesen und steuern kann.

Außerdem habe ich mit Google-Charts ( https://developers.google.com/chart ) eine Visualisierung fabriziert mit der ich den Stromfluß ins Netz und aus dem Netz sowie die Leistung der Solaranlage sowohl am PC als auch auf dem Smartphone darstellen kann.

(Die Anzeige ist - dank AJAX - dynamisch und wird ca. alle 10 s aktualisiert. Außerdem werden die exakten Messwerte durch Antippen mit dem Cursor angezeigt.)

Auf dem Diagramm ist nicht nur der Energiefluss ins und aus dem Netz dargestellt, sondern auch der - an diesem trüben Tag geringe - Beitrag der PV-Anlage zur Gesamtleistung. Wie man einen SMA Wechselrichter ausliest steht hier:  https://www.cs.hs-rm.de/~linn/AuslesenSMAWechselrichter.htm

 

Für erhellende Kommentare und Anregungen gibt es eine Mailbox.