Oder auch ganz literarisch-adaptiert: Der Raspberry heizte nach.* Seit einer ganzen Weile läuft ein Raspberry Pi als Türöffner und Temperaturlogger. Ein zweiter läuft seit Anfang Januar im Regelbetrieb (ha, Wortwitz!) und regelt meinen Heisswasserkessel. Die eigentliche Idee kam mir ja, als ich die auf dem Kessel in der Küche notierte Verlustleistung von >1kWh pro Tag feststellte. Warmwassererzeugung läuft bei mir elektrisch und da sollte sich eine Senkung der Kesseltemperatur deutlich auf den Stromverbrauch auswirken; mal ganz abgesehen von der Frage, warum man bei einer neu eingebauten Küche überhaupt noch so einen Kessel mit einer dermassen hohen Verlustleistung einbaut. Es ist ja nun nicht so, dass es nicht sowas wie Quooker gäbe. In der Umgebung meiner Wohnung muss auch jemand so einen Hahn haben, weil neulich nämlich ein Servicefahrzeug von denen vor der Tür stand.
Aber zurück zum Heisswasserkessel: der hat im Originalzustand ein simples Thermostat, das auf 65°C (oder sogar auf 85°C) gestellt werden kann, Heizleistung laut Typenschild 2.4kW, auf zwei Phasen verteilt. Die Verkabelung ist leicht zugänglich, es lag also nichts näher ™, als in die fixe Verdrahtung einfach ein Doppelrelais einzuschlaufen** und das extern anzusteuern. Aber irgendwoher muss ja noch ein Steuersignal kommen, und das am besten temperaturabhängig. Das vorhandene Thermostat hat dazu eine Öffnung mitten im Kessel und da konnte ich noch einen DS18B20 (Temperatursensor) einführen.
**jaja, einzuschleifen ab 30km weiter nördlich
Ausserhalb vom Kessel sieht das jetzt so aus (es ist alles unzugänglich für normale Menschen):
Die Ansteuerung der Relais kannte ich schon vom Türöffner und konnte das direkt übernehmen. Anfangs hatte ich die Transistoren vergessen, so dass der Raspberry direkt über GPIO geschaltet hat. Aber die Transistoren waren mir dann doch lieber, Beschaltung so:
Basis: GPIO-Widerstand1k-Basis
Kollektor: Relais-Anschluss
Emitter: GND
Auf fliegende Verdrahtung hatte ich da auch keine Lust, also hab ich ältere Platinenvorräte geplündert und das dort entsprechend aufgelötet.
Noch eine weitere Sache fiel mir ein: was passiert nach einem Stromausfall? Geht dann gar nichts bzw. das Wasser bleibt kalt? Der Raspi frisst ja auch gern mal das Filesystem der SD-Karte und bootet dann nicht. Aber dazu gibt es ja Hardware-Dokumentation: welche der GPIO-Pins sind per default auf high? ARM-BCM2835-Dokumentation (Seite 102) Antwort: PINS 0-8 per default auf high. D.h. selbst wenn der Kernel nicht mehr bootet, sind die Relais angeschaltet und die herkömmliche Temperaturbegrenzung des Kessels bei 65°C greift irgendwann, wenn es heiss genug ist.
Ein LCD, das aktuelle Soll- und Istwerte anzeigt, ist auch noch nebenbei mit abgefallen, alles ist in eine Raclette-Holzplatte integriert, so dass es küchengeeignet ausschaut.
Die Steuerung hat mehrere Betriebszustände: on/off/single/gast, die sich dann entsprechend durch die Solltemperatur und auch im täglichen Zeitverlauf unterscheiden. Da ich Tag- und Nachtstrom beziehe und letzterer günstiger ist, lohnt es sich (weil fast kein Mehraufwand), das Aufheizen auf nachts zu verlegen und tagsüber von 7-19 Uhr entsprechend die Solltemperatur tiefer zu halten. Die entsprechenden Temperaturkurven werden gleich online geloggt, ein Wert pro Minute: thingspeak channel #394298. Gesteuert wird das ganze über mehrere Scripts und natürlich per Cronjob (1x pro Minute), die unter folgendem Link herunterzuladen sind: http://www.georgruss.ch/files/cucina/cucina.zip
– prepareGPIO.sh (Initialisieren der GPIO-Pins nach dem Start des Systems)
– getDS18B20.py (holt Messwerte vom Temperatursensor)
– sollwertcheck.sh (Logik für die Sollwerte und Betriebszustände)
– switch.sh on/off (schaltet die Relais)
– writeLCD.sh (schreibt Werte aufs Display)
– writeThingspeak.py (schreibt Messwerte nach Thingspeak)
Was nebenbei mit abfällt, sind programmierbare Aufheizzeiten auf 65°C wegen Legionellen oder auch die Fernsteuerung, wenn mal ein Bad genommen werden soll und dafür mehr und heisseres Wasser gebraucht wird. Man könnte auch noch über die Temperaturkurven integrieren und den genauen Stromverbrauch bestimmen, das sind ja simple Heizspiralen.
Die Energieeinsparung ist dann doch recht deutlich: im Quartal 1/2017 waren es in der Nebenzeit 459 kWh (gesamt für den ganzen Haushalt), im Quartal 1/2018 (also nach der Installation der Steuerung) 313 kWh. Es sind sicher einige Sondereffekte drin, aber durch die Neuseelandreise wäre der Verbrauch im Q1/2017 bei Anwesenheit eigentlich noch höher gewesen. Zur Hauptzeit geht der Verbrauch durch den gestiegenen Anteil Homeoffice leicht hoch, aber auch nicht so viel, wie eigentlich zu erwarten (2x LCD und Kochen daheim etc. braucht schon ordentlich). Wenn man die angegebene Verlustleistung des Kessels auf ein Quartal hochrechnet, habe ich die mit der Steuerung ungefähr egalisiert, und das fast ohne Komfortverlust. Es gibt sogar einen technisch bedingten Badetag pro Monat, wenn ich wegen der Legionellen mal auf 65°C hochheizen muss. Bei angenommenen 100kWh pro Quartal und hiesigen Strompreisen sind das etwa 100 Fr. bzw. etwa 20% meiner Stromrechnung im Jahr — das frisst die Klimaanlage aber locker wieder weg. Am günstigsten ist immer noch Duschen im Büro und dort einen angenehmen Arbeitsplatz zu haben. Aber das haben wir ja beides nicht. Ersteres kommt wohl ab 2019, letzteres wird dann noch viel schlimmer als jetzt. Aber vielleicht eine Direktverbindung Wil-Oerlikon zum Duschen im Büro 🙂
Hier die entsprechende rudimentäre Auswertung der TB Wil im Kundenportal. Wenn die meine Smartmeter-Daten mal täglich oder stündlich oder minütlich online abfragbar machen würden, könnte es noch viel genauer werden.
Was man jetzt mit der Steuerung auch machen könnte: man könnte dezentrale Regelenergie verkaufen (als Energiesenke): in 1000 Haushalten so eine Steuerung eingebaut, die wird von den TB Wil ferngesteuert (innerhalb von Rahmenparametern). Die Hardware kostet 50 Fr. pro Kessel und dafür kriegen sie bei Energieüberschuss in ihrem Netz 2MW (oder mehr, je nach Kessel) Leistung, die sie für eine begrenzte Zeit ab- und zuschalten können.
* wem das vom Klang her bekannt vorkommt, hier die Auflösung: https://de.wikipedia.org/wiki/Der_schönste_erste_Satz.