Hallo Leute,
ich wollte heute mal meine Lösung für eine ziemlich „wattgenaue“ Ansteuerung von Heizern vorstellen. Ich benutze es für meinen Warmwasserspeicher und einen alten Ölradiator. Die ganze Steuerung läuft bei mir jetzt seit über 3 Jahren. Damals hatte ich nur eine kleine 600 W Anlage
In vielen Beiträgen wird gern einfach ein Relais oder ein Schütz genommen. Das funktioniert, hat aber seine Nachteile. Es muss genug Leistung vorhanden sein, wenn nicht, bleibt der Heizer aus, oder man nimmt den Rest aus Netz und unter Last schalten ist für Relais auch nicht so toll. Mein Warmwasserspeicher hat z.B. 2 KW. Das sind also keine kleine Lasten von denen wir hier reden.
Ich benutze für meine Steuerung ein ESP32 und ein Solid State Relais (SSR). In dem Bild habe ich mal eine grobe Skizze gemalt.
Der Vorteil bei einem SSR ist, das es immer im Nulldurchgang der Spannung schaltet. Damit schaltet es Lastfrei und der Nulldurchgang erfolgt aller 10 ms. Also kann man auch schön oft schalten . Dafür gibt es viele Varianten, u.a. einmal die Pulsweitenmodulation (PWM) oder eine Puls Frequenz Modulation (PFM). Bei der PWM wird einfach über eine bestimmte Zeit angeschaltet und eine bestimmt Zeit wieder abgeschaltet. Bei der PFM wird einfach immer wieder ein- und ausgeschaltet, mit einer bestimmten Häufigkeit (Frequenz). Damit kann man bis auf 10 ms runter schalten, also auch sehr kleine Leistungen. Natürlich kann man damit auch, wie mit einem Relais, die Heizer einfach an und ausschalten. Wenn man pro Phase ein SSR verwendet oder 1 dreiphasiges SSR verwendet, kann man auch 3 phasige Verbraucher steuern.
Noch etwas Theorie:
- Mein Warmwasserspeicher hat einen 3 phasigen Heizstab mit insgesamt 6000 W. Pro Phase also 2000 W. Ich benutze nur 1 Phase. Voll Zeit eingeschalten sind 100 %. Wenn ich den jetzt mit 1 % laufen lasse, heizt er mit ca. 20 W
- Um 1 kg Wasser um 1 Kelvin zu erwärmen, werden 1,16 Wh benötigt
- Um 1 m³ Luft um 1 Kelvin zu erwärmen, werden 0,33 Wh benötigt
Mein Warmwasserspeicher hat 200 l Volumen oder 200 kg Wasser. Wenn ich also 200 kg Wasser um z.B. 10 K erwärmen möchte, benötige ich 2300 Wh. Ober der Heizer das in einer Stunde oder im 5 Stunden macht, ist mir egal
Damit konnte ich mit einer 600 W Anlage mein Wasser warm machen Dauert dann halt 4 Stunden.
Zum testen der Theorie hatte ich mir am Anfang eine kleine Arduinosoftware gebastelt. Die erzeugt einfach ein PWM Signal mit verschiedene Pulsweiten und auf dem Smart Meter habe ich mir die übrig gebliebene eingespeiste Leistung angesehen. Der Verbrauch vom Heizer stimmt ganz gut mit der Berechnung überein. Ist aber auch klar. Der Heizer ist ein ohmischer Widerstand.
Jetzt musste ich mir nur noch die entsprechen Software basteln.
Ich nutzte für meine Heimautomatisierung eine Raspberry Pi 4. Früher lief es auf einem 3er. Darauf läuft u.a. IoBroker und ein MQTT Server. Auf den ESP32 habe ich Tasmota installiert.
In einem einfachen Skript wird berechnet, wie viel Leistung gerade eingespeist wird und wie viel davon verbraucht werden soll. Dieser Sollwert wird dann über den MQTT Server dem ESP32 zur Verfügung gestellt. Die Berechnung läuft einmal pro Sekunde.
Der ESP32 nimmt den Sollwert und erzeugt eine entsprechende PWM/PFM und steuert damit das SSR an. Der Heizer heizt
Hier mal ein Screenshot von der Weboberfläche im Tasmota. Ich habe mal 500 W vorgegeben. Ich habe mal noch ein Temperatursensor verbaut, da kann ich auch noch eine abschalttemperatur einbauen oder eine Frostschutzfunktion, z.B. unter 5°C heiz mit 500 W oder so.
Ich habe mal noch die Werte für die Luft dazu geschrieben. Ich nutzte das im Frühling, Herbst und Winter auch für den Ölradiator. Der hat 1500 W und läuft so vor sich hin. Bei guten Bedingungen, heizt er die Stube auf 25 °C hoch. Dann öffne ich die Türen und heize den Rest vom Haus noch mit.
Ich habe mal bei Github ein Repos erstellt: Github
Da ist noch nicht alles drin und ich bin neu bei Github. Ich installiere gerade nebenbei ein neuen ESP32 für ein Heizer in der Werkstatt. Da kann ich das hier noch mal von Grund auf nachstellen. Damit ich hier kein Mist verbreite
- aktuell ist die Berry Software für Tasmota drin (die funktioniert)
- ein Skript für die Implementierung in IoBroker muss ich noch testen, dann kommt das auch
- Arudino Software kommt im Anschluß (die muss ich noch etwas anpassen)
So, das war mal ein etwas längerer Post, sorry!
Wenn ihr Fehler findet oder mitmachen möchtet, gerne (ich hoffe das ich das bei Github richtig eingestellt habe damit ihr auch hochladen könnt )
Noch ein paar Bilder:
Hier sieht man mal ein Tagesverlauf bei wolkigem Himmel. Man sieht ganz gut, dass die Steuerung ganz gut die 0 W (Einspeisung/Entnahme) schafft.
Viele Grüße,
Arno