Login schließen
Hinweis: In Ihrem Browser müssen Cookies und JavaScript aktiviert sein!
Login login

Seit Mitte 2012 befindet sich auf unserem Hausdach eine Photovoltaikanlage. Die Vergütungen für Stromerzeugung und Einspeisung ins öffentliche Netz sind dabei preislich so gestaltet, dass ein sofortiger Verbrauch des produzierten Stromes im eigenen Haushalt besonders lohnenswert ist. Energiehungrige Geräte sollten also bevorzugt an sonnigen Tagen zur Mittagszeit laufen. Bei einigen Geräten wie einem Kühlschrank ist das nur schlecht machbar, bei anderen wie der Waschmaschine funktioniert es mit einem Blick auf die Wettervorhersage und ein bisschen Planung sehr gut.

Irgendwann kam die Idee auf, das Schalten der Geräte zu automatisieren, um auf Lastschwankungen der elektrischen Geräte und auf über den Himmel ziehende Wolken reagieren zu können. Als Kandidat für diese Steuerung bot sich der Nachtspeicherofen im ausgebauten Obergeschoss des Schuppens an. So ein Ofen kann kurzfristig je nach Bedarf geschalten werden, bei viel Sonne mehrere kWh Energie aufnehmen und kommt bei Regenwetter auch mal einen Tag ohne Strom aus. Da er drei getrennte Heizkreise für den Betrieb am Drehstromnetz hat, kann er zudem mit reduzierter Leistung betrieben werden.
Seit Juli 2014 ist die Steuerung für den Ofen nun in Betrieb und ich möchte auf dieser Seite die Schaltpläne und die verwendete Software für Interessierte zur Verfügung stellen.

 

Der Aufbau

Das Herzstück der Steuerung stellt ein Gnublin DIP-Board dar. Dabei handelt es sich um einen Minicomputer, ähnlich einem RaspberryPi, allerdings mit weniger Rechenleistung, weniger Schnittstellen und weniger Stromverbrauch. (Als ich das Gnublin-Board gekauft habe, war der Stromverbrauch der Grund, kein Rasberry zu kaufen. Inzwischen gibt es Rasberrys mit ähnlich niedrigem Stromverbrauch.) Im Einzelnen hat das Board einen 180 MHz-ARM-Prozessor, 32 MB RAM, einen MicroSD-Steckplatz, eine USB-Schnittstelle, 15 digitale Ein/Ausgänge, 4 analoge Eingänge, einen analogen Ausgang (PWM) und je einmal SPI, I2C und UART. Die Stromversorgung erfolgt mit 5 V, der Stromverbrauch liegt bei ca. 70 mA. Das Gnublin DIP-Board steckt auf einem Gnublin-Easy-Board, auf welchem sich neben einigen Widerständen, Kondensatoren und Jumpern im Wesentlichen die USB-Buchse und ein UART-zu-USB-Konverter samt Mini-USB-Buchse befinden. Als Software läuft auf dem Gnublin ein angepasstes Debian-Linux, das man sich als fertiges Image von der Gnublin-Website herunterladen kann.
Diese beiden Boards waren damals zusammen für 30 € erhältlich, mittlerweile (April 2015) scheint nur noch eine Version mit weniger GPIO-Anschlüssen für 50 € verfügbar zu sein, so dass meine Wahl bei einem erneuten Kauf auf einen anderen Rechner (vielleicht einen RaspberryPi A+) fallen würde.
An den Gnublin sind ein 4x20-Zeichen-Display mit schaltbarer Beleuchtung per SPI und vier Taster per GPIO angebunden. Betrieben wird der Gnublin über ein 12 V-Neztteil und einen 5 V-Linearregler.

Damit der Steuercomputer eine Entscheidungsgrundlage hat, sind natürlich zunächst aktuelle Daten zum Stromverbrauch bzw. -überschuss notwendig. Als Zähler ist bei uns ein Elster AS1440 verbaut, der sich per Infrarot-Schnittstelle auslesen lässt. Der zu Grunde liegende Standard IEC 62056-21 findet sich im Internet (lokale Kopie) und auch über dieses spezielle Zählermodell finden sich ein paar Informationen (lokale Kopie), sodass das Ermitteln der Verbrauchswerte kein großes Problem darstellt, man benötigt nur einen passenden Lesekopf. Einen solchen kann man entweder käuflich erwerben oder selber basteln. Ich habe mich (aus Kostengründen) für Letzteres entschieden, und die Konstruktion ist auch recht simpel: Eine IR-LED, eine Photodiode, zwei Transistoren, sechs Widerstände und ein USB-UART-Konverter (fertig montiert von ebay) reichen aus. Als Gehäuse dient eine Hälfte von einem Überaschungsei. Diese passt so perfekt an den Zähler, dass nicht einmal die Magnete notwendig sind, die normalerweise zur Befestigung in den Leseköpfen verbaut sind.
Der Zähler liefert nicht nur den momentanen Stromverbrauch, sondern auch einige weitere Daten, darunter Datum und Uhrzeit. Dies ist nützlich, denn der Gnublin hat keine eigene Echtzeituhr und vergisst deshalb bei einem Stromausfall Datum und Uhrzeit. Natürlich kann man auch eine Uhr nachrüsten (lokale Kopie), doch dass konnte ich mir so sparen.

Zur Ansteuerung des Nachtspeicherofens verwende ich einfach drei 230 V-Relais, die mit 12 V Gleichspannung geschalten werden. Die Relais wiederum hängen über je einen Transistor an drei GPIO-Pins des Gnublin. Um zu überwachen, ob das Thermostat des Ofens abgeschalten hat, kommt schließlich noch ein Stromsensor zum Einsatz. Der Einfachheit halber überwache ich die drei Heizkreise des Ofens nicht mit drei Sensoren, sondern mit einem einzigen. Da die drei Heizkreise jedoch auf drei verschiedenen Phasen laufen und sich die Ströme daher zu Null addieren, kann man die drei Zuleitungen nicht einfach gemeinsam durch den Sensor legen. Wenn man aber eine der Leitungen in die andere Richtung legt, funktioniert es. Allerdings hat sich bei dieser Einsparung später ein Nachteil gezeigt: Das Thermostat des Ofens schaltet die drei Heizkreise nicht gleichzeitig. Wenn also mehrere Relais aktiv sind und einer der Heizkreise abschaltet, kann man das nicht feststellen.

Eine weitere Aufgabe des Steuercomputers ist es, alle verfügbaren Werte minütlich in eine Logdatei zu schreiben. Die soll später mal für statistische Auswertungen genutzt werden, im Moment liegt sie einfach nur herum. Der Vollständigkeit halber habe ich deshalb auch die beiden Wechselrichter (zwei Kostal Pico 5.5 mit Kommunikationsboard 1) der Solaranlage an den Steuercomputer angeschlossen. Zum Auslesen der Daten haben die Wechselrichter eine Ethernet- und eine RS485-Schnittstelle. Da ich für Ethernet entweder an meinem Gnublin zwei Ethernet-Adapter hätte nachrüsten oder einen Hub verwenden müssen, habe ich mich für RS485 entschieden, bei dem einfach alle Geräte an einer Leitung hängen können. USB-RS485-Konverter gibt es preiswert bei Ebay, sodass nur noch die Frage nach dem verwendeten Protokoll geklärt werden muss. Im Handbuch der Wechselrichter findet sich dazu lediglich die Bemerkung „Falls Sie entsprechende Fachkenntnisse haben, können Sie den Wechselrichter über einen Signalpegelwandler an eine serielle Schnittstelle (RS232 oder USB) Ihres Computers anschließen.“ Wer näheres zum Protokoll wissen will, bekommt die Dokumentation direkt vom Hersteller Kostal, allerdings muss dafür eine Geheimhaltungserklärung unterschrieben werden.
Jeder der Wechselrichter besitzt vier analoge Eingänge. Die vier Eingänge des einen Wechselrichters sind vom Rundsteuerempfänger belegt, mit dem der Netzbetreiber per Funk die Solaranlage drosseln oder abschalten kann, falls das Stromnetz überlastet ist. Am anderen Wechselrichter habe ich einen Temperatur- und einen Drucksensor angeschlossen. Die Temperatur wird zur Berechnung des Heizbedarfs genutzt, der Luftdruck landet lediglich in der Logdatei.

Zu guter Letzt gibt es noch eine Anzeige an der Wand, mit der man die Stromwerte im Blick hat – gut um zu wissen wann die Zeit für die Waschmaschine gekommen ist. Dazu habe ich bei ebay ein defektes Android-Tablet gekauft. Es funktioniert noch alles bis auf den Touchscreen. Als Anzeige an der Wand ist es also noch gut zu gebrauchen, einrichten kann man es mit einer USB-Maus. Das Tablet ist per WLAN mit dem heimischen Router verbunden, ebenso wie der Gnublin, an dem dazu ein WLAN-USB-Stick steckt. Hier muss man lediglich darauf achten, keinen allzu neuen Stick zu verwenden, denn Gnublin verwendet die betragte Kernelversion 2.6.33. Ich habe einen TP-Link TL-WN725N im Einsatz, der problemlos erkannt wird. Die Darstellung der Werte erfolgt einfach als Webseite im Browser, sodass ich keine Android-App programmieren musste. Zu Anfang kam der Maxthon-Browser zum Einsatz, da er einen vom Nutzer aktivierbaren Vollbildmodus hat (eine Seltenheit bei Android-Browsern). Mittlerweile bin ich zu Firefox gewechselt, denn Firefox kann Rechtsklicks verarbeiten, und die funktionieren auf dem kaputten Touchscreen noch. Vollbild ist auch im Firefox möglich, allerdings muss es per Javascript aktiviert werden.

Die Software ist größtenteils in PHP geschrieben, nur das Ansteuern des Displays läuft über ein C++-Programm.

 

Was noch zu tun ist:

  • Die Beschaltung der analogen Sensoren ist sehr simpel gewählt. Das führt dazu, dass diese einen unnütz großen Messbereich (einige hundert °C bzw. hPa), aber nur eine sehr grobe Auflösung haben (ca. 1 °C und 3 hPa). Außerdem schwankt der Temperaturwert innerhalb von Sekunden um bis zu 2 °C, der Mittelwert ist aber ok.
  • Die Kommunikation mit dem Zähler ist unter hoher Prozessorlast nicht möglich. Das liegt vermutlich daran, dass die Baudrate während der Kommunikation gewechselt werden muss. Wenn das nicht zum richtigen Zeitpunkt passiert, ist kein Empfang möglich.
  • Die Berechnung der notwendigen Heizzeit anhand der Außentemperatur funktioniert noch nicht richtig. Dies liegt vor allem daran, dass die Steuerung weder die Raumtemperatur noch den Ladezustand des Ofens kennt.
  • Aus den Logdateien sollen Statistiken erstellt werden.
  • Angesichts der mageren Hardwareausstattung des Gnublin ist PHP nicht die ideale Sprache. Für den aktuellen Funktionsumfang reicht es aber aus.
  • Der Linearregler, der für die 5 V-Versorgung zuständig ist, sollte aus Effizienzgründen durch einen Schaltregler ersetzt werden.
  • Ein Heißwasserboiler soll ebenfalls noch angesteuert werden. Dafür sind auch bereits Anschlüsse auf den Platinen vorgesehen. Verkabelung und Software fehlen aber noch.

 

Downloads

schaltplaene.zip – Schaltpläne, Layouts und verwendete Bauteile der Lochrasterplatinen
powermanager.zip – Software und Konfigurationsdateien