Jochens Smart Home

Smart Home ohne Hersteller-Bindung!

Bei meiner Heizung werden geregelt: Vorlauftemperatur, Kesseltemperatur, Warmwassertemperatur und Heizungspumpe.

Die Vorlauftemperatur richtet sich nach der mittleren Außentemperatur (in meinem Garten) der letzten 24 Stunden. Es dauert 13 Stunden bis eine Außentemperaturschwankung durch meine Außenwände gedrungen ist.

Bei über 13 Grad Außentemperatur wird die Heizungspumpe abgeschaltet, im Haus sind es dann immer noch 21 Grad, durch Wärmequellen wie Menschen, elektrische Geräte und Sonneneinstrahlung.

Die Heizungspumpe läuft tagsüber in der Regel nur jede zweite Minute.

Sobald der Wintergarten mehr als 21 Grad hat, wird die Vorlauftemperatur entsprechend verringert.

Falls kein Handy im WLAN ist, wird die Vorlauftemperatur pro Stunde um ein Grad gesenkt, bis maximal 24 Grad unter Soll. Ganz auskühlen soll das Haus im Winter nicht.

Geregelt wird die Vorlauftemperatur über einen Mischer, der von einem Linearantrieb gestellt wird. Den unteren Anschlag musste ich selbst hinzufügen, der obere Anschlag ist im Linearantrieb integriert.



Der Brenner läuft 6 mal die Vorlauftemperatur in Sekunden. Das reicht in der Regel für eine halbe Stunde bis der Brenner wieder laufen muss. Selten Brennen spart Energie, da vor jedem Brennen das Gebläse den Kessel 11 Sekunden lang kühlt. Zu lange Brennen erhöht jedoch die Abstrahlverluste des Kessels.

Auch die Warmwassertemperatur richtet sich leicht nach der Außentemperatur, da das Kaltwasser im Winter kälter ist als im Sommer. Die Werte schwanken zwischen 49 Grad im Sommer und 54 Grad im Winter.

Falls kein Handy im WLAN ist, kühlt das Warmwasser aus. Denn wozu Warmwasser vorhalten wenn keiner im Haus ist?

Geregelt wird die Warmwassertemperatur über das kurzzeitige Einschalten der Warmwasserspeicher-Ladepumpe, falls die Warmwassertemperatur unter Soll gefallen ist.

Das Ergebnis der Regelung sieht dann z.B. so aus:



Gesteuert wird das Ganze über einen Raspberry Pi 2 mit Relais für Linearantrieb, Pumpen und den Brenner.

Als Programmiersprache nutze ich Perl, weil es so einfach und mächtig ist.

Die Temperaturen lese ich über mehrere DS18B20 an einem one-wire-bus aus.





Meinen Ferraris-Stromzähler lese ich mit dieser Schaltung aus:



Der CNY70 hat eine Infrarot-LED und eine Infrarot-Photozelle. Über das Poti 25K P1 wird der Operationsverstärker TLC271 so eingestellt, dass er nur bei erhöhtem Signal vom CNY70 schaltet. Die LED1 dient zur richtigen Einstellung des Potis. Der Optokoppler CNY17 versorgt den Raspi mit dem richtigen Signal.

Die rote Stelle am Zähler wirft weniger Licht zurück als der silberne, metallene Bereich. Eine Umdrehung sind bei meinem Zähler 1/75 kWh. Über die Umlaufzeit berechne ich die mittlere Leistung (Watt) für diesen Umlauf. Und ich zähle nach jedem Umlauf die Anzahl der Kilowattstunden um 1/75 hoch. Damit entfällt das In-den-Keller-Laufen um den Stromzähler abzulesen. Außerdem kann ich ein Tagesprofil des Stromverbrauchs anfertigen, um die kommende PV-Solaranlage für möglichst viel Eigenverbrauch auszurichten:


Leider habe ich kein Dach Richtung Südwesten für Strom am Abend, also möchte ich eine Solarbatterie, sobald diese günstiger als der Ökostromeinkauf (27 Ct/kWh) sind.

Die Platine habe ich ganz pragmatisch auf den Stromzähler geklebt:


Mit der PV-Anlage bekomme ich eh einen neuen Stromzähler, der zumindest ein S0-Signal (ein Puls alle paar Wattstunden) ausgibt. Dadurch wird die Messung zeitlich höher aufgelöst werden. Was ich nicht wirklich brauche.

Die Strommessung ergibt solch eine Grafik, den Brenner der Heizung habe ich auch integriert, weil er Stromspitzen verursacht:



Wie man an den Plots sieht, ist rrdtool eine tolle Sache zum Daten sammeln und visualisieren.


Meine Solar-Inselanlage