Heizung: Verbrauchsoptimierung, Radiator/Fußboden-Steuerung: Unterschied zwischen den Versionen

Aus FHEMWiki
 
(81 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Diese Seite beschreibt die Optimierungen und fhem-Installation bezüglich der Heizungssteuerung in unserem Haus von 1904, welches wir im Sommer 2014 gekauft haben und beschreibt die notwendigen Schritte und Ergebnisse zur Kosenreduzierung.
Diese Seite beschreibt die Optimierungen und FHEM-Installation bezüglich der Heizungssteuerung in unserem Haus von 1904, welches wir im Sommer 2014 gekauft haben und beschreibt die notwendigen Schritte und Ergebnisse zur Kostenreduzierung.
 
__TOC__
 
== Ausgangssituation ==
[[Datei:Morgennebel-HeizungssteuerungHOWTO-Heizung.jpg|mini|rechts|'''Bild 1''': Viessmann Mono-Vitola b-f mit Weishaupt Gasbrenner]]


Mit Übergabe des Hauses war als Ausgangssituation vorhanden:
Mit Übergabe des Hauses war als Ausgangssituation vorhanden:
Zeile 8: Zeile 13:
# 2 Räume unbeheizt
# 2 Räume unbeheizt
# 2 Räume kombiniert beheizt mit Radiatoren und Fußbodenheizung
# 2 Räume kombiniert beheizt mit Radiatoren und Fußbodenheizung
* Viessmann Mono-Vitola b-f mit 43kW Weishaupt-Gasbrenner und Holzkammer (seit 10 Jahren nicht mehr benutzt)
* Viessmann Mono-Vitola b-f mit 43kW Weishaupt-Gasbrenner und Holzkammer (seit 10 Jahren nicht mehr benutzt), siehe Bild 1
* Viessmann Tetramatik Heizungssteuerung mit digitaler Schaltuhr SU und außentemperaturabhängiger Steuerung WS
* Viessmann Tetramatik Heizungssteuerung mit digitaler Schaltuhr SU und außentemperaturabhängiger Steuerung WS
* Warmwassererzeugung über 200l Boiler, rein elektrisch
* Warmwassererzeugung über 200l Boiler, rein elektrisch
Zeile 14: Zeile 19:
* Grundfoss Umwälzpumpe mit 170W Verbrauchsleistung für die Fußbodenheizung
* Grundfoss Umwälzpumpe mit 170W Verbrauchsleistung für die Fußbodenheizung
* 17 Radiatoren mit vier verschiedenen Thermostatköpfen und Heizungsventilen
* 17 Radiatoren mit vier verschiedenen Thermostatköpfen und Heizungsventilen
* Gasverbrauch von 73.000kW im Jahr und 380 EUR Abschlagzahlung im Monat
* Gasverbrauch von 73.000kWh im Jahr und 380 EUR Abschlagzahlung im Monat
* Ein Viessmann 4-fach Mischer, der den max. 40 Grad Vorlauf für die Fußbodenheizung erzeugte
* Ein Viessmann 4-fach Mischer, der den max. 40 Grad Vorlauf für die Fußbodenheizung erzeugte
* Eine UPONOR Funksteuerung für die Fußbodenheizung im Obergeschoß mit unbeschrifteten Funkthermostaten
* Eine UPONOR Funksteuerung für die Fußbodenheizung im Obergeschoß mit unbeschrifteten Funkthermostaten


== Probleme nach dem Einzug ==
[[Datei:Morgennebel-HeizungssteuerungHOWTO-Fussbodenmischer.jpg|mini|rechts|'''Bild 2''': Fussbodenmischer und -pumpen]]
Bereits im Winter 2014/2015 gab es erhebliche Probleme mit der Heizung. Einzelne Räume wurden maximal 18 Grad warm, andere überhitzten schnell. Unterschritt die Außentemperatur die Frostgrenze, fing die Fußbodenheizung an zu "stottern": der Mischer stand morgens in einer Stellung, die das aufgeheizte Kesselwasser direkt und schnell in die Fußbodenheizung einspeiste. Als Folge deaktivierte ein Thermostat (auf 60 Grad eingestellt) die Fußbodenpumpe und das Wasser mußte langsam abkühlen (60-90 Minuten), bis die Pumpe wieder ansprang und wieder sofort abgeschaltet wurde - denn die Tetramatik hat die Mischerstellung nicht verändert.


= Probleme nach dem Einzug =
Bereits im Winter 2014/2015 gab es erhebliche Probleme mit der Heizung. Einzelne Räume wurden maximal 18 Grad warm, andere überhitzten schnell. Unterschritt die Außentemperatur die Frostgrenze, fing die Fußbodenheizung an zu "stottern": der Mischer stand morgens in einer Stellung, die das aufgeheizte Kesselwasser direkt und schnell in die Fußbodenheizung einspeiste. Als Folge deaktivierte ein Thermostat (auf 60 Grad eingestellt) die Fußbodenpumpe und das Wasser mußte langsam abkühlen (60-90 Minuten), bis die Pumpe wieder ansprang und wieder sofort abgeschaltet wurde - denn die Tetramatik hat die Mischerstellung nicht verändert.
Kurzfristig wurde das Problem durch eine neue Einstellung der Heizkurven entschärft. Die Radiatoren benötigten jedoch einen bis zu 75°C warmen Vorlauf, um die Zimmer im Obergeschoß auf 18 Grad aufzuwärmen. Die Fußbodenheizungskurven wurden jeden Morgen leicht korrigiert, um die maximale Wärme (ca. 40 Grad im FB-Vorlauf) zu erreichen.
Kurzfristig wurde das Problem durch eine neue Einstellung der Heizkurven entschärft. Die Radiatoren benötigten jedoch einen bis zu 75°C warmen Vorlauf, um die Zimmer im Obergeschoß auf 18 Grad aufzuwärmen. Die Fußbodenheizungskurven wurden jeden Morgen leicht korrigiert, um die maximale Wärme (ca. 40 Grad im FB-Vorlauf) zu erreichen.
Die Diagnose des "Stotterns" wurde zusammen mit einer Heizungsfirma als Theorie entwickelt, konnte jedoch nicht eindeutig belegt werden.
Die Diagnose des "Stotterns" wurde zusammen mit einer Heizungsfirma als Theorie entwickelt, konnte jedoch nicht eindeutig belegt werden.


Zum besseren Verständnis wurde zunächst die Verrohrung und die verwendeten Komponenten dokumentiert. Der Temperaturbegrenzer im Fußbodenkreis erwies sich als defekt und schaltete bei einer Konfiguration von 60°C bereits bei 40°C die Fußbodenpumpe ab.
[[Datei:Morgennebel-HOWTO-Heizungsoptimierung-Anlagendiagramm.png|600px]]
Laut Schornsteinfeger und Heizungsfirma war die Heizungsanlage selbst einwandfrei, jedoch war die Tetramatik-Steuerung mechanisch am Ende des Lebens. Die Abdeckungen fielen ab, das Hartplastik war versprödet, die Drehwiderstände für die Heizungskurven-Einstellung verstaubt.
== Lösungsansatz ==
Zur Verifizierung der Probleme und zum Aufbau eines Smart-Homes wurde FHEM in der Kombination mit '''Homematic''' und '''1-Wire''' ausgewählt, da die ZWave-Experimente nicht sehr erfolgreich waren. Die vorhandene Tetramatik-Heizungssteuerung sollte auf ein Minimum beschränkt werden und die notwendige Intelligenz und Steuerung soweit wie möglich nach FHEM verlagert werden.
=== FHEM und 1-Wire-Sensorik ===
Zur Erhöhung des Verständnisses der Arbeitsweise der Heizung wurde als erster Schritt die verschiedenen Rück- und Vorläufe überwacht. Hierzu kam ein Rasberry Pi mit einem RPI3-Erweiterung von [http://www.sheepwalkelectronics.co.uk/product_info.php?products_id=67 Sheepwalk Electronics] in England zum Einsatz. Die RPI3-Erweiterung stellt 8 1-Wire-Bussysteme zur Verfügung. Zwei Busse werden direkt mit RJ45-Ports präsentiert, 6 weitere benötigen einen Bussplitter ([http://www.sheepwalkelectronics.co.uk/product_info.php?cPath=22&products_id=34 RPI3a] von Sheepwalk Eletronics) und stellen 1-Wire Busse als RJ45 oder Schraubverbindung zur Verfügung.
Ebenfalls von Sheepwalk Eletronics kamen die passenden Sensoren ([http://www.sheepwalkelectronics.co.uk/product_info.php?cPath=23&products_id=52 SWE0], Typ DS18B20 mit 2m Anschlußkabel) zum Einsatz.
Diese wurden liebevoll provisorisch (siehe Bild 2) an die entsprechenden Rohre verbunden und in FHEM konfiguriert. In FHEM waren dann mit Hilfe des [[Neues_Charting_Frontend]] aussagefähige Diagramme und Bewertungen über das Verhalten der Heizung möglich:
[[Datei:Morgennebel-HeizungssteuerungHOWTO-NachtAbsenkung+Taktung.jpg|mini|rechts|'''Bild 3''': Heizungstaktung mit Nachtabsenkung]]
In der Konfiguration wurden alle Sensoren in FHEM konfiguriert und auf 20 oder 60 Sekunden Abfrage konfiguriert:
define EG.Heizung.Fussboden.Vorlauf OWDevice 28.A6E710050000 20
attr EG.Heizung.Fussboden.Vorlauf IODev RPi1Wire
attr EG.Heizung.Fussboden.Vorlauf model DS18B20
attr EG.Heizung.Fussboden.Vorlauf room EG.HWR,OWDevice
define EG.Heizung.Radiatoren.Vorlauf OWDevice 28.AD8A10050000 60
attr EG.Heizung.Radiatoren.Vorlauf IODev RPi1Wire
attr EG.Heizung.Radiatoren.Vorlauf model DS18B20
attr EG.Heizung.Radiatoren.Vorlauf room EG.HWR,OWDevice
Sehr deutlich ist in Bild 3 der korrekte Normalbetrieb der Heizung zu sehen: die Heizung taktet etwa alle 5 Minuten (in Abhängigkeit von der Außentemperatur und dem Verbrauch) mit einem An/Aus-Intervall. In der Zeit zwischen 22:00 und 5:00 ist eine Nachtabsenkung konfiguriert und die Kessel- und Vorlauftemperaturen kühlen ab. Nach der Nachtabsenkung sind die Taktlaufzeiten erheblich länger, bis die gewünschte Kessel- und Vorlauftemperatur wieder erreicht wird.
Vor der Nachtabsenkung arbeitet der Mischer (orange Linie) korrekt, die Fußboden-Vorlauftemperatur schwankt im Rhythmus der Taktung des Brenners um einen Mittelwert von 35°C. Nach der Nachtabschaltung gibt es in der Fußboden-Vorlauftemperatur erhebliche Schwankungen: die Temperatur steigt kurzzeitig bis auf 48°C, was zur Abschaltung der Fußboden-Pumpe führt. Nach Abkühlung des Vorlaufes wird die Pumpe wieder eingeschaltet, erzeugt wieder eine Spitze und wird wieder abgeschaltet - der Mischer wird nicht vorbeugend zurückgefahren und langsam geöffnet.
[[Datei:Morgennebel-HeizungssteuerungHOWTO-Taktung.png|mini|rechts|'''Bild 4''': Funktionierende Mischung für Fußboden]]
Bild 4 zeigt im Detail die Temperaturen der Radiatoren und des Fußbodenmischers: die oberste rote Kurve zeigt Temperatur des Fußbodenkreises vor dem Mischer (deutlich die Taktung des Brenners zu erkennen). Die gelbe und lila Kurve zeigen die Fußboden-Verlauftemperaturen nach dem Mischer an zwei verschiedenen Positionen, die blauen unteren Linien sind die Rücklauftemperaturen vom Fußbodenmischer und zurück zum Kessel.
In diesem Beispiel arbeitet die Heizung korrekt ohne zu stottern.
[[Datei:Morgennebel-HeizungssteuerungHOWTO-Fussbodenmischer-stottern.png|mini|rechts|'''Bild 5''': Stotternde Fußbodenmischung]]
In Bild 5 arbeitet die Mischersteuerung fehlerhaft und zu heißes Wasser im Vorlauf führt zum abschalten der Fußbodenpumpe. Es dauert bis zu 90 Minuten, bis die Temperatur abgesunken ist, die Pumpe erneut startet, und wieder abgeschaltet wird. Die Viessmann Tetramatik arbeitet hier nicht korrekt und führt den Mischer nicht zurück.
Mit diesen Diagrammen war der vermutete Fehler eindeutig bewiesen und wurde temporär durch tägliche Justierungen der Heizkurven umgangen.
Das Graphing Frontend erwies sich als extrem langsam und ressourcenhungrig. Als erste Schritt wurde das Logging in die sqllite-Datenbank minimiert, als zweiter Schritt ein zusätzliches Frontend auf Basis eines [http://www.hardkernel.com/main/products/prdt_info.php?g_code=g138745696275 ODROID U3] Boards verbaut. Dieses bietet 1.7GHz Quad-Core CPU und 2GB RAM für knapp 50 EUR und benötigt keinen Lüfter. Auch die 16GB eMMC-Speicherlösung verbesserte die Ansprechzeit deutlich. Der Raspberry Pi wurde auf die 8 1Wire-Bussysteme und -Sensoren beschränkt. Beide Boards wurden aus einem 4fach-USB-Ladegerät versorgt. Trotz der guten technischen Werte war das ODROID Board nicht in der Lage, MySQL als Datenbank zu verwenden - sqllite funktionierte jedoch leidlich.
=== Heizungssteuerung (Radiatoren) ===
Als nächster Schritt wurden häufig benutzte Räume mit Radiatoren mit [[HM-CC-RT-DN_Funk-Heizkörperthermostat|Homematic HM-CC-RT-DN Heizkörperthermostaten]] und [[HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP|Homematic HM-TC-IT-WM-W-EU Wandthermostaten]] versehen. Dies geschah schrittweise, etwa ein Raum je zwei Wochen. Die langsame Installation erlaubte es
* Die Familie an den Gebrauch der Wandthermostaten zu gewöhnen
* Die Lernzeit der Thermostaten und das Schwingverhalten auf einen Raum zu begrenzen
* Die Kosten je Monat niedrig zu halten
Die Fenster wurden mit [[HM-SEC-SC_Tür-Fensterkontakt|Fensterkontakten]] versehen und alle Geräte in FHEM angelernt, untereinander gepeert und gepairt.
Alle Thermostaten erhielten Wochenprofile auf der Basis von [[HomeMatic_HMInfo_TempList/Weekplan|Temperaturlisten]] namens 'tempList.cfg' im fhem-Verzeichnis. Die Wandthermostaten erlauben die Ermittlung der Raumfeuchte und sollen später für eine Lüftungsempfehlung genutzt werden.
=== Heizungssteuerung (Fußboden) ===
[[Datei:Morgennebel-HeizungssteuerungHOWTO-FB-Alpha5.jpg|mini|rechts|''Bild 6'': Möhlenhoff Alpha-5 Stellantriebe]]
Im Obergeschoß wurde die vorhandene UPONOR funkbasierende Lösung zur Steuerung der Fußbodenheizung zunächst entfernt. Die Uponor Ventile wurden durch [http://www.amazon.de/Stellantrieb-Buderus-Adapter-Oventrop-Bianchi/dp/B00K4UDS96 Alpha 5 Stellantriebe von Möhlenhoff] mit VA10-Adapter getauscht, die zu dem vorhandenen Fußbodenverteiler paßten. Die Alpha-5 Stellantriebe arbeiten mit 230V AC mit einer Leistungsaufnahme von 1W im Betrieb und sind nur als NC (normally-closed) Variante zu finden.
[[Datei:Morgennebel-HeizungssteuerungHOWTO-FB-230V-Steuerung.jpg|mini|rechts|''Bild 7'': Homematic 230V-Aktoren für Stellantriebe]]
Um die Stellantriebe zu kamen zwei [[HM-LC-Sw4-DR_4fach_Schaltaktor_Hutschiene|Homematic 4fach Hutschienen Aktor]] und ein passendes Gehäuse in Aufputzvariante zum Einsatz. In allen Räumen wurden wieder mit [[HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP|Homematic HM-TC-IT-WM-W-EU Wandthermostaten]] versehen und als einfache Lösung zunachst die Aktoren mit dem '''_SwitchTr'''-Kanal verbunden.
Das Rauchplastik-Gehäuse erlaubt eine wunderbare visuelle Kontrolle der Heizsituation im Obergeschoß.
Die einfache Lösung auf Basis des '''_SwitchTr'''-Kanals zeigte im ersten Winter deutliche Nachteile:
# Die Temperatur im Raum mit Fußbodenheizung stieg deutlich über die desired-temp an
# Alle Fußbodenkreise wurden gemeinsam morgens aktiviert und die Temperatur insgesamt stieg zu langsam an
Daher wurde für den folgenden Winter die Fußbodenheizung auf das [[Steuerung_einer_Fussbodenheizung_mit_dem_PWM-Modul|PWM-Modul]] umgestellt. Dazu wurde ein '''PWM'''-Modul definiert:
  define PWM.FussbodenHeizung PWM 60 900 180 1 4,4 2,1,0 D_SwitchEGHWRPumpeFussbodenheizung,0,360,on,60
dies ist die zentrale Instanz für die gesamte Fußbodenheizung (in diesem Fall für Erd- und Obergeschoß). Die Parameter bedeuten:
* 60: Alle 60 Sekunden wird das PWM-Modul neu berechnet
* 900: Das Schaltintervall beträgt 900 Sekunden (15 Minuten)
* 180: Minimale Ein-/Auszeit. Da die Stellantriebe ca. 2.5-3.0 Minuten für einen Schaltvorgang benötigen, sind 3 Minuten ausreichend
* 1: Entspricht einem möglichen Einschaltzyklus von 100% - d.h. ein Stellantrieb kann für die vollen 15 Minuten aktiv sein
* 4: Maximal 4 Räume können innerhalb eines Schaltintervalls angeschaltet werden
* 4: Maximal 4 Räume können innerhalb eines Schaltintervalls ausgeschaltet werden
* 2: Zwei Räume dürfen eingeschaltet werden
* 1: 1 Raum darf ausgeschaltet bleiben
* 0: Mit dem Wert 0 indiziert, daß alle Räume ausgeschaltet werden können
* D_SwitchEGHWRPumpeFussbodenheizung ist ein Dummy, der in Verbindung mit einem DOIF-Kommando die Fußbodenpumpe an- oder ausschaltet
* 0: Indiziert, daß die Pumpe auf Basis der Räume mit Heizbedarf aktiviert wird
* 360: Die Pumpe läuft 360 Sekunden nach
* on: Das Kommando um die Pumpe anzuschalten
* 60: Es wird 60 Sekunden auf den Stellantrieb gewartet, bis die Pumpe aktiviert wird
Damit ist das PWM-Modul zunächst definiert und für jeden Fußboden-Kreis wird zusätzlich das PWMR-Modul (das zugehörige '''Raum'''-Modul) definiert. Sollte ein Raum mehrere Fußboden-Heizkreise aufweisen, lassen sich diese mit einer '''structure''' zusammenfassen.
Hier ein Beispiel mit einem einfachen Raum:
  define PW_RoomKindSZ PWMR PWM.FussbodenHeizung 1,0 OG.Kind.Schlafzimmer.Wandthermostat:measured-temp OG.Flur.Fussboden.Links_Sw_FBKindSchlafzimmer
dabei bedeutet:
* PWMR: das Modul Fußbodenheizkreis
* PWM.FussbodenHeizung: das bereits zentrale Modul der PWM-Steuerung
* 1,0: Faktor und Gewichtung (Standardwerte)
* OG.Kind.Schlafzimmer.Wandthermostat:measured-temp: der Homematic-Wandthermostat und das Reading, um die aktuelle IST-Temperatur im Raum abzufragen
* OG.Flur.Fussboden.Links_Sw_FBKindSchlafzimmer: der Schalter, der den zugehörigen Stellantrieb an- oder ausschaltet
Dazu gehören die Readings:
  attr PW_RoomKindSZ desiredTempFrom OG.Kind.Schlafzimmer.Wandthermostat:desired-temp
dies übernimmt die Wunschtemperatur aus dem Wochenprofil des Wandthermostaten


= Lösungsansatz =
Das Diagramm zeigt nun deutlich, wie sich die IST-Temperatur langsam an die SOLL-Temperatur herantastet und die Pausen zwischen den Pulsen immer länger werden:
Zur Verifizierung der Probleme und zum Aufbau eines Smart-Homes wurde fhem in der Kombination mit '''Homematic''' ausgewählt, da die ZWave-Experimente nicht sehr erfolgreich waren.
 
[[Datei:PWMR-Fußbodenkreise.png]]
 
=== Einsparungen ===
Im ersten Jahr nach Einbau der Funkthermostaten für Radiatoren in fünf Räumen und dem Wechsel der Steuerung der Fußbodenheizung im Obergeschoß wurde eine Verbrauchsreduzierung von '''20%''' gemessen. In Zahlen bedeutete dies eine Rückzahlung vom Gasanbieter in Höhe von gut 1.100 EUR sowie die Reduzierung der monatlichen Abschläge um 55 EUR. Auf ein Jahr gesehen wurden damit die Betriebskosten um 1.760 EUR reduziert, wobei Investitionen in Höhe von etwa 750 EUR für die Homematic-Komponenten, Raspberry und 1-Wire-Sensoren, HMLAN-Sender und Gehäuse und Kabel aufzubringen waren - d.h. es Gewinn von 1.010 EUR ohne Einrechnung der vielen Arbeitsstunden.
 
Im zweiten Jahr wurden alle weiteren Radiatoren auf Homematic umgerüstet sowie die Fußbodenheizung im Erdgeschoß auf Homematic umgestellt. Durch diese Maßnahmen sind weitere Einsparungen abzusehen.


== fhem und 1-Wire-Sensorik ==
== fhem und Homematic ==
=== Heizungssteuerung ===
=== Heizprofile ===
=== Graphing Frontend ===
== fhem Erweiterungen ==
=== STELLMOTOR Mischersteuerung ===
=== STELLMOTOR Mischersteuerung ===
=== Fußbodenheizung ===
Um das eindeutige identifizierte Stottern der Fußbodenheizung zu beheben, wurde der Fußbodenmischer auf eine Ansteuerung von FHEM umgestellt. Für die Ansteuerung waren Relais notwendig, da der Mischermotor mit 230V, maximal 4A Anschlußwerten spezifiziert war. Zur Ansteuerung wurde daher ein 1-Wire 8fach Relaisboard von eBay [http://www.ebay.de/itm/1-Wire-8-Channel-Relay-Module-Board-with-Dallas-DS2408-chipset-/172063693628 Verkäufer leotron_87] in ein Verteilergehäuse eingebaut und mit dem vorhandenen 1-Wire-Bus verbunden.
 
Das Relaisboard benötigt eine 12V-Spannungsversorgung und wurde von FHEM problemlos erkannt:
 
define EG.Heizung.8Relais OWDevice 29.3D5516000000
attr EG.Heizung.8Relais IODev RPi1Wire
attr EG.Heizung.8Relais model DS2408
attr EG.Heizung.8Relais room EG.HWR,OWDevice
 
mittels Kommandos wie
 
set EG.Heizung.8Relais PIO.7 on
set EG.Heizung.8Relais PIO.6 0
 
konnten die einzelnen Relais angesteuert und geschaltet werden. Jedes Relais stellt NO (normally-open) und NC (normally-closed) Kontakte zur Verfügung und ist für verschiedene Spannungsbereiche (bei der Bestellung auszuwählen) freigegeben. Die gekaufte Variante unterstützte 7A bei 250V AC, so daß die maximale Anschlußleistung des Mischermotors kein Problem darstellte.
 
Da der eBay-Verkäufer aus Bulgarien liefert, wurde eine zusätzliche Relaisplatine in die Ersatzteilkiste eingelagert.
 
Der Mischermotor wurde nach Anleitung der [[STELLMOTOR|Stellmotor]] Anleitung im Schaltbild '''wechsel''' verbunden. Hierbei half eine Google-Suche nach einer Installationsanleitung des verbauten Viessmann-Mischers, welches die genauen Anschlußpläne beinhaltete. Bei Anschluß des Mischermotors ist ein 4- oder 5-poliges Installationskabel notwendig.
 
[[Datei:Morgennebel-HeizungssteuerungHOWTO-8fach-Relaiskarte.jpg|mini|rechts|''Bild 8'': Relaiskarte für Mischersteuerung und Stellantriebe]]
 
Nach der abschliessenden Konfiguration des STELLMOTOR-Modules (Laufzeit, Relaisnamen):
define EG.HWR.Fussbodenmischer STELLMOTOR FhemDev
attr EG.HWR.Fussbodenmischer STMcalibrateDirection L
attr EG.HWR.Fussbodenmischer STMdebugToLog3 0
attr EG.HWR.Fussbodenmischer STMfhemDevRL EG.Heizung.8Relais PIO.6
attr EG.HWR.Fussbodenmischer STMfhemDevSTART EG.Heizung.8Relais PIO.7
attr EG.HWR.Fussbodenmischer STMinvertOut 0
attr EG.HWR.Fussbodenmischer STMlastDiffMax 1
attr EG.HWR.Fussbodenmischer STMmapOffCmd 0
attr EG.HWR.Fussbodenmischer STMmapOnCmd 0
attr EG.HWR.Fussbodenmischer STMmaxDriveSeconds 118
attr EG.HWR.Fussbodenmischer STMmaxTics 100
attr EG.HWR.Fussbodenmischer STMpollInterval 0.1
attr EG.HWR.Fussbodenmischer STMresetOtherDeviceAtCalibrate 0
attr EG.HWR.Fussbodenmischer STMrlType wechsel
attr EG.HWR.Fussbodenmischer STMtimeTolerance 0.01
attr EG.HWR.Fussbodenmischer room EG.HWR
 
erfolgte der erste erfolgreiche Test durch
 
set EG.HWR.Fussbodenmischer <Wert>
set EG.HWR.Fussbodenmischer cablibrate
 
Das Ziel war eine Führung der Fußbodenvorlauftemperatur nahe an der maximal möglichen Temperatur (da sonst die oberen Räume zu kalt blieben). Für diese Steuerung waren zwei Schritte notwendig:
 
# Ermittlung eines gleitenden Mittelwertes über die Fußbodenvorlauftemperatur (um kurzfristige Spitzen zu glätten)
# Aufbau einer DOIF-Anweisung zur relativen Steuerung des Mischers
 
Der gleitende Mittelwert wurde nach [[Gleitende_Mittelwerte_berechnen_und_loggen#Gleitender_Mittelwert_f.C3.BCr_beliebige_Readings|Anleitung]] in der 99_MyUtils.pm integriert und als Reading des bereits vorhandenen 1-Wire-Sensors integriert:
 
define EG.Heizung.Mischer.Vorlauf OWDevice 28.3CD910050000 20
attr EG.Heizung.Mischer.Vorlauf IODev RPi1Wire
attr EG.Heizung.Mischer.Vorlauf model DS18B20
attr EG.Heizung.Mischer.Vorlauf room EG.HWR,OWDevice
attr EG.Heizung.Mischer.Vorlauf userReadings temperature.avg {movingAverage("EG.Heizung.Mischer.Vorlauf","temperature",300)}
 
dies erzeugt das zusätzliche Reading '''temperature.avg''' für die Fußbodenvorlauftemperatur mit dem Mittel der letzten 5 Minuten.
 
Die Regelung der Vorlauftemperatur selbst wurde über ein DOIF-Kommando erzeugt:
 
define DI_MischerCommands DOIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 22 and [EG.HWR.Fussbodenmischer:position]<97 and [EG.Heizung.8Relais:PIO.3] eq "on")
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 1: Schnell oeffnen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 26 and [EG.HWR.Fussbodenmischer:position]<98 and [EG.Heizung.8Relais:PIO.3] eq "on")
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 2: Ganz langsam oeffnen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 30 and [EG.HWR.Fussbodenmischer:position]<98 and [EG.Heizung.8Relais:PIO.3] eq "on")
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 3: Noch ein bisschen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 35 and [EG.HWR.Fussbodenmischer:position]>3)
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-2)}) ## Cmd 4: Viel zu heiss, schnell zu
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 34 and [EG.HWR.Fussbodenmischer:position]>2)
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-1)}) ## Cmd 5: Zu heiss, schnell zu
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 33 and [EG.HWR.Fussbodenmischer:position]>2)
    (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-1)}) ## Cmd 6: Noch ein bisschen
DOELSEIF ([03:50])
    (set EG.HWR.Fussbodenmischer calibrate)                                ## Cmd 7: Calibrieren fuer Tagprogramm
DOELSEIF ([04:00])
    (set EG.HWR.Fussbodenmischer 40)                                      ## Cmd 8: Headstart, Ende der Nachtabsenkung
attr DI_MischerCommands cmdpause 60:120:180:60:120:180:0:0
attr DI_MischerCommands wait 180:240:300:180:240:480:0:0
attr DI_MischerCommands do always
 
Die in dieser '''individuellen''' Konfiguration ist die gewünschte Zieltemperatur der Fußbodenvorlauftemperatur zwischen 30° und 32°C (im fest verbauten Thermometer bedeutet dies knapp unter 40°C). Die Temperatur des Sensors (und des Mittelwertes) weicht jedoch von den eingebauten physikalischen Thermostaten ab. Vermutlich liegt das an der zusätzlichen Plastikabschirmung der Sensoren und der Dicke der Rohre - die Zieltemperaturen wurden daher durch Try-n-Error ermittelt.
 
Die ersten drei IF-Bedingungen öffnen den Mischer (erhöhen die Fußboden-Vorlauftemperatur). Die folgenden drei IF-Bedingungen schließen den Mischer (verringern die Fußboden-Vorlauftemperatur). Die letzten beiden Anweisungen kalibrieren morgens den Mischer und sorgen für einen schnelleren Start.
 
Jede der drei öffnenden IF-Bedingungen sind auf leicht unterschiedliche Temperaturen nahe der Zieltemperatur (zwischen 30-32 Grad) eingestellt. Eine Justierung der Öffnungsgeschwindigkeit findet über die Attribute wait und cmdpause statt: ist die Temperatur weit von der Zieltemperatur entfernt, wird kurz gewartet und der Mischer beliebig oft geöffnet. Ist die Temperatur nahe der Zieltemperatur, wird sich langsam und vorsichtig an das Ziel herangetastet - das Attribut wait steuert die Wartezeit und cmdpause verhindert ein überschwingen.
 
Jede drei schließenden IF-Bedingungen sind analog aufgebaut, jedoch wird die Temperatur schnell reduziert, um das stottern und den Abkühlprozeß zu vermeiden.
 
Die Kalibrierung und ein Frühstart finden morgens statt. In der ersten öffnenden IF-Bedingung wurde zusätzlich die Abfrage '''[EG.Heizung.8Relais:PIO.3] eq "on"''' integriert. Diese prüft, ob die Fußbodenpumpe aktiv ist oder wegen zu hohen Vorlauftemperaturen deaktiviert wurde. Dies verhindert ein Überschwingen im Zusammenspiel mit dem thermischen Maximalbegrenzer - die Abkühlzeit ist so hoch, daß der Mischer bereits wieder den Mischer öffnet um die Temperatur zu erhöhen. Schaltet dann die Pumpe ein, überschreitet die Vorlauftemperatur wieder sofort das Maximum.
 
Das DOIF-Kommando führt zu folgenden Meßwerten:
 
[[Datei:Morgennebel-HeizungssteuerungHOWTO-Mischer1Tag.png]]
 
Die Nachtabsenkung endet um 4:00, gleichzeitig startet die Kalibrierung (setzt den Mischer auf 0). Der Mischer (blaue Linie) öffnet schnell, überschwingt leicht und regelt sich dann auf eine sehr gerade Kennlinie mit beinahe konstanter Temperatur zurück.
 
Nach einer Woche Betrieb stellte sich heraus, daß die Viessmann Tetramatik die Fußbodenpumpe dauerhaft abstellte. Offenbar (und vielleicht) erkennt die Tetramatik, daß diese den Mischer nicht mehr kontrollieren kann und stellt zur Sicherheit die Pumpe ab.
 
Daher wurde auch die Pumpe an den 8-fach Relaiskarte via 1-Wire geschaltet und mit Hilfe einer DOIF-Anweisung gesteuert:
 
define DI_EG.HWR.Fussbodenpumpe DOIF ([04:00-23:00] and [EG.Heizung.Mischer.Vorlauf:temperature] < 33)
    (set EG.Heizung.8Relais PIO.3 on)
DOELSE
    (set EG.Heizung.8Relais PIO.3 off)
attr DI_EG.HWR.Fussbodenpumpe room EG.HWR
attr DI_EG.HWR.Fussbodenpumpe wait 0,900
 
die Erkennung der Maximaltemperatur mit einer 15 minütigen Abkühlphase erlaubte die Deaktivierung des Thermostaten zur Begrenzung des Fußbodenvorlaufes (siehe Diagramm in der Einleitung).
 
=== Kombinierte Fußbodens- und Radiatorenheizung ===
In den Räumen mit kombinierter Fußboden- und Radiatorenheizung wird der Fußbodenkreis über ein DOIF-Kommando gesteuert, welches auf den Öffnungswert (actuator-Stand) der Radiatorheizung triggert:
 
define DI_EG.Wintergarten.Fussbodenheizung DOIF ([EG.Wintergarten.Heizung:actuator] > 10)
    (set EG.Heizung.8Relais PIO.0 on)
DOELSE
    (set EG.Heizung.8Relais PIO.0 off)
attr DI_EG.Wintergarten.Fussbodenheizung wait 180,1800
 
In diesem Beispiel wird der Alpha 5 Stellantrieb über die 8fach Relaiskarte an '''PIO.0''' (siehe Abschnitt FHEM-Erweiterungen und STELLMOTOR) angesteuert. Das DOIF-Kommando aktiviert die Fußbodenheizung, wenn die Radiatoren länger als drei Minuten mit mehr als 10 (10%) heizen und läßt diese dann mindestens 30 Minuten aktiviert.
 
Sollten mehrere Heizungen im Raum vorhanden sein, läßt sich dies durch den Mittelwert der Aktuatorenstellung mit Hilfe einer perl-Anweisung lösen.
 
Damit folgt die Fußbodenheizung automatisch den Wochenprofilen des Wandthermostaten im Wintergarten bzw. dessen Heizungsverhalten bei manueller Übersteuerung oder der Erkennung von offenen Fenstern.
 
=== Kombinierte Fußbodens- und Radiatorenheizung in Kombination mit PWM/PWMR ===
Mit der Umstellung auf das PWM-/PWMR-Modul konnte diese DOIF-Lösung nicht mehr verwendet werden. Die Lösung bestand in einem zusätzlichen Userreading ('''FB-desired-temp''' im Wandthermostaten des Raumes, der als reading für den SOLL-Zustand des PWMR-Modules verwendet wurde:
 
  attr  EG.Kueche.Wandthermostat userReadings FB-desired-temp { ReadingsVal("EG.Kueche.Wandthermostat","desired-temp",0) + 0.5 ;; }
 
dieses Userreading addiert 0.5°C zu der desired-temp des Wochenprofiles hinzu. Das Wochenprofil wurde entsprechend um 0.5°C reduziert. Damit heizen die Radiatoren schnell und deutlich mit, um dann Nahe der Zieltemperatur auszugehen, damit die Fußbodenheizung die letzten 0.5°C übernehmen kann - und damit lange für warme Füsse sorgt.
 
=== Bedarfsgesteuerte Kontrolle der Fußbodenumwälzpumpe ===
Zur weiteren Verbrauchsoptimierung sollte nun die Fußbodenumwälzpumpe bedarfsgerecht ein- und wieder ausgeschaltet werden. Wie in der Einführung beschrieben hat diese einen konstanten Verbrauch von 170W/h, so daß die Reduzierung der Laufzeit schnell erhebliche Einsparungen verspricht.
 
Im ersten Schritt wird ein Dummy definiert, der den '''Bedarf''' an warmen Heizwasser reflektiert. Diese Dummy-Variable wird minütlich durch ein DOIF-Kommando belegt:
 
  define D_EG.HWR.FussbodenAnforderung dummy
  attr D_EG.HWR.FussbodenAnforderung room EG.HWR
 
  define DI_EG.HWR.FussbodenpumpeAnforderung DOIF ([+0:01] and
    ([?OG.Flur.Fussboden.Links_Sw_FBChild1Arbeitszimmer] eq "on" or
    [?OG.Flur.Fussboden.Links_Sw_FBChild1Schlafzimmer] eq "on" or
    [?OG.Flur.Fussboden.Links_Sw_FBChild2Links] eq "on" or
    [?OG.Flur.Fussboden.Links_Sw_FBChild2Rechts] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBBadLinks] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBBadRechts] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBFlur] eq "on"))
    (set D_EG.HWR.FussbodenAnforderung on)
  DOELSE
    (set D_EG.HWR.FussbodenAnforderung off)
  attr DI_EG.HWR.FussbodenpumpeAnforderung wait 300,1800
  attr DI_EG.HWR.FussbodenpumpeAnforderung room EG.HWR
 
Da sich die verwendeten Wandthermostaten alle 2.5 Minuten bei FHEM melden, ist der Versatz in Durchschnitt etwa 180 Sekunden. Die im DOIF abgefragten Konditionen sind die verschiedenen 230V-Schaltaktoren, welche die Ventilantriebe ansteuern. Fordert auch nur ein Kreis Wärme an, wird der Dummy auf '''on''' gesetzt - damit folgt der Dummy allen Wochenprofilen der verschiedenen Wandthermostaten oder auch allen manuellen Änderungen.
 
Die bereits vorhandene DOIF-Anweisung zur Kontrolle der Fußbodenpumpe wurde um den Zustand des Dummys erweitert:
 
  define DI_EG.HWR.Fussbodenpumpe DOIF ([04:00-21:00] and [EG.Heizung.Mischer.Vorlauf:temperature] < 34 and [D_EG.HWR.FussbodenAnforderung] eq "on")
    (set EG.Heizung.8Relais PIO.3 on)
  DOELSE
    (set EG.Heizung.8Relais PIO.3 off)
  attr DI_EG.HWR.Fussbodenpumpe wait 0,45
  attr DI_EG.HWR.Fussbodenpumpe room EG.HWR
 
Damit wird die Fußbodenpumpe zwischen 4 Uhr (Ende der Nachtabschaltung) bis 21 Uhr aktiviert, sofern die Mischervorlauftemperatur nicht zu hoch wird und tatsächlich Wärme benötigt wird.
 
Zur Kontrolle der Einsparungen wurde noch zusätzlich das Modul [[HourCounter]] konfiguriert:
 
  define HC_EG.HWR.Fussbodenpumpe HourCounter EG.Heizung.8Relais:PIO.3:.on EG.Heizung.8Relais:PIO.3:.off
  attr HC_EG.HWR.Fussbodenpumpe room EG.HWR
 
In den Readings des HourCounters '''pauseTimePerDay''' zeigt dann die Summe der Ausschaltzeit pro Tag ein, rechnet jedoch auch die vier Stunden (Mitternacht bis 4 Uhr) bis zum Beginn der Tagesheizperiode ein.
 
Als Diagramm ergibt sich diese Darstellung:
 
[[Datei:Morgennebel-HOWTO-Heizungsoptimierung-Pumpensteuerung.png]]
 
Nach der Nachtabsenkung wird die Fußbodenvorlauftemperatur auf die gewünschten 30-33°C Grad (am Meßpunkt, entspricht 40°C im fest eingebauten Thermometer) gesteuert. Kurz nach 12 Uhr ist der Bedarf an Fußbodenwärme gedeckt und die Umwälzpumpe wird deaktiviert. Dieser Zustand hält knapp 8 Stunden an, bis kurz nach 20:30 Uhr wieder Wärme angefordert wird. Jedoch greift um 21:30 schon die Nachtabschaltung der Heizung selbst.
 
Am Tag davor tobte ein Sturm über das Haus und der kalte Wind sorgte für eine Abkühlung in den Räumen:
 
[[Datei:Morgennebel-HOWTO-Heizungsoptimierung-PumpensteuerungSturm.png]]
 
Der Wärmebedarf war erheblich höher und als Folge blieb die Pumpe dauerhaft an.
 
=== Bedarfsgesteuerte Kontrolle der Radiatorenumwälzpumpe ===
Nach demselben Prinzip wurde auch die Radiatorenpumpe von der Tetramatik abgekoppelt und durch FHEM gesteuert. Ausschlaggebend für das Aktivieren der Radiatorenpumpe sollte der '''Durchschnitt der Ventilstellungen''' der Heizungen sein.
 
Hierzu wurde das '''VALVES'''-Modul genutzt:
 
  define V_RadiatorenStatus VALVES
 
Das Attribut '''valvesDeviceList''' hält die Heizungsaktoren mit einem Reading der Aktoren/Ventilstellungen:
  attr V_RadiatorenStatus EG.Arbeitszimmer.HeizungLinks_Clima, EG.Esszimmer.HeizungLinks_Clima, EG.Esszimmer.HeizungMitte_Clima, \
                          EG.Esszimmer.HeizungRechts_Clima, EG.Garderobe.Heizung_Clima, EG.Kueche.HeizungLinks_Clima, EG.Kueche.HeizungRechts_Clima, \
                          EG.Wintergarten.Heizung_Clima, OG.Schlafzimmer.HeizungLinks_Clima, OG.Schlafzimmer.HeizungMitte_Clima, \
                          OG.Schlafzimmer.HeizungRechts_Clima, OG.Wohnzimmer.HeizungLinks_Clima, OG.Wohnzimmer.HeizungRechts_Clima
 
und das Attribut '''valvesDeviceReading''' die Aktorenstellung, bei Homematic:
  attr V_RadiatorenStatus ValvePosition
 
mit einem stateFormat ergibt sich eine schöne Darstellung:
 
  attr V_RadiatorenStatus stateFormat {sprintf("%.1f",ReadingsVal("V_RadiatorenStatus","state",0))."%"}
 
und in Verbindung mit einem DOIF
 
  define DI_HeatingRadiatorPumpStatus DOIF ([04:00-21:30] and [V_RadiatorenStatus:valve_average] > 10)
      (set D_HeatingRadiatorPump on, set EG.Heizung.8Relais PIO.4 on)
  DOELSE
      (set D_HeatingRadiatorPump off, set EG.Heizung.8Relais PIO.4 off)
 
die bedarfsgerechte Aktivierung der Radiatorenpumpe. D_HeatingRadiatorPump ist dabei ein Dummy, der später in einer FLOORPLAN-Darstellung genutzt wird.
 
[[Datei:Fussbodensteuerungsdiagramm.png]]
 
illustriert nun den gesamten Heizungsstatus:
 
# Rot: Vorlauftemperatur nach dem Mischer
# Dunkelgrün: Wandernder Durchschnitt der Vorlauftemperaturs nach dem Mischer
# Blau: Mischerstand
# Pink: Außentemperatur
# Gelb: Der Durchschnitt aller Radiatoren-Ventilstellung
# Grün Transparent: Status der Fußbodenpumpe
# Blau Transparent: Status der Radiatorenpumpe
 
Deutlich ist zu sehen, wie die Fußbodenpumpe nur bei Bedarf aktiviert wurde und der Mischer fleißig nachsteuert.
 
=== Gaszähler ===
Nachdem die Räume vollständig geregelt und mit Wochenprofilen versehen waren, wurde die Messung des Gasverbrauches aufgebaut. Mit Hilfe der Verbrauchsdaten sowie der '''Zustandszahl''' und des '''Brennwertes''' (beides beim Gasversorger zu erfragen) läßt sich der Verbrauch an kWh errechnen.
 
Zur Messung des Gasverbrauches wurde der [[HM-EM-TX-WM_Zählersensor_für_Strom-_und_Gaszähler|Homematic Bausatz zur Strom- und Gasmessung]] verwendet. Der von ELV gelieferte Gaszähler paßte mechanisch nicht in den vorhanden ''iTron G4 RF1-MM'' Gaszähler. Der ELV-Gaszähler besteht aus einer kleinen Schaltung mit wenigen Widerständen und einem Reed-Schalter - da eine exakte Messung wichtig war, wurde von [http://www.world-of-heating.de/ World of Heating] der passende Impulsnehmer GMT Typ 951-858-06 nachbestellt und in die Schaltung von ELV eingelötet. Der Impulsnehmer kommt mit langen Anschlußkabeln und läßt sich sehr einfach einbauen.
 
Nach der Konfiguration des [[HM-EM-TX-WM_Zählersensor_für_Strom-_und_Gaszähler|Homematic Bausatzes]] auf die vom Gaszähler gelieferten Impulse je Einheit lieferte dieser zuverlässig die Verbrauchsdaten. Diese lassen sich schnell und einfach visualisieren.
 
[[Datei:Morgennebel-HOWTO-Heizungsoptimierung-Gasverbrauch.png]]
 
Zusammen mit der Außentemperatur und der Uhrzeit sollen diese dann als Grundlage zur Dimensionierung einer neuen Heizungsanlage verwendet werden. Dazu werden die Logdateien der Außentemperatur und der Verbrauch an Gas auf die Stunde umgerechnet. Die vorhandenen Meßpunkte können dann in eine Verbrauchskurve in Abhängigkeit der Außentemperatur überführt werden - und da alle Räume wie gewünscht warm werden, stellt dies dann die notwendige Dimensionierung der neuen Heizung dar.


[[Kategorie:HOWTOS]]
[[Kategorie:Examples]]
[[Kategorie:Heizungssteuerung]]

Aktuelle Version vom 3. Oktober 2022, 12:56 Uhr

Diese Seite beschreibt die Optimierungen und FHEM-Installation bezüglich der Heizungssteuerung in unserem Haus von 1904, welches wir im Sommer 2014 gekauft haben und beschreibt die notwendigen Schritte und Ergebnisse zur Kostenreduzierung.

Ausgangssituation

Bild 1: Viessmann Mono-Vitola b-f mit Weishaupt Gasbrenner

Mit Übergabe des Hauses war als Ausgangssituation vorhanden:

  • 16 Räume im Erdgeschoß und ausgebauten Dachboden, davon
  1. 7 Räume nur mit Radiatoren
  2. 5 Räume nur mit Fußbodenheizung
  3. 2 Räume unbeheizt
  4. 2 Räume kombiniert beheizt mit Radiatoren und Fußbodenheizung
  • Viessmann Mono-Vitola b-f mit 43kW Weishaupt-Gasbrenner und Holzkammer (seit 10 Jahren nicht mehr benutzt), siehe Bild 1
  • Viessmann Tetramatik Heizungssteuerung mit digitaler Schaltuhr SU und außentemperaturabhängiger Steuerung WS
  • Warmwassererzeugung über 200l Boiler, rein elektrisch
  • 1100m Fußbodenverrohrung im Estrich/Beton in Kupferohr
  • Grundfoss Umwälzpumpe mit 170W Verbrauchsleistung für die Fußbodenheizung
  • 17 Radiatoren mit vier verschiedenen Thermostatköpfen und Heizungsventilen
  • Gasverbrauch von 73.000kWh im Jahr und 380 EUR Abschlagzahlung im Monat
  • Ein Viessmann 4-fach Mischer, der den max. 40 Grad Vorlauf für die Fußbodenheizung erzeugte
  • Eine UPONOR Funksteuerung für die Fußbodenheizung im Obergeschoß mit unbeschrifteten Funkthermostaten

Probleme nach dem Einzug

Bild 2: Fussbodenmischer und -pumpen

Bereits im Winter 2014/2015 gab es erhebliche Probleme mit der Heizung. Einzelne Räume wurden maximal 18 Grad warm, andere überhitzten schnell. Unterschritt die Außentemperatur die Frostgrenze, fing die Fußbodenheizung an zu "stottern": der Mischer stand morgens in einer Stellung, die das aufgeheizte Kesselwasser direkt und schnell in die Fußbodenheizung einspeiste. Als Folge deaktivierte ein Thermostat (auf 60 Grad eingestellt) die Fußbodenpumpe und das Wasser mußte langsam abkühlen (60-90 Minuten), bis die Pumpe wieder ansprang und wieder sofort abgeschaltet wurde - denn die Tetramatik hat die Mischerstellung nicht verändert.

Kurzfristig wurde das Problem durch eine neue Einstellung der Heizkurven entschärft. Die Radiatoren benötigten jedoch einen bis zu 75°C warmen Vorlauf, um die Zimmer im Obergeschoß auf 18 Grad aufzuwärmen. Die Fußbodenheizungskurven wurden jeden Morgen leicht korrigiert, um die maximale Wärme (ca. 40 Grad im FB-Vorlauf) zu erreichen.

Die Diagnose des "Stotterns" wurde zusammen mit einer Heizungsfirma als Theorie entwickelt, konnte jedoch nicht eindeutig belegt werden.

Zum besseren Verständnis wurde zunächst die Verrohrung und die verwendeten Komponenten dokumentiert. Der Temperaturbegrenzer im Fußbodenkreis erwies sich als defekt und schaltete bei einer Konfiguration von 60°C bereits bei 40°C die Fußbodenpumpe ab.

Morgennebel-HOWTO-Heizungsoptimierung-Anlagendiagramm.png

Laut Schornsteinfeger und Heizungsfirma war die Heizungsanlage selbst einwandfrei, jedoch war die Tetramatik-Steuerung mechanisch am Ende des Lebens. Die Abdeckungen fielen ab, das Hartplastik war versprödet, die Drehwiderstände für die Heizungskurven-Einstellung verstaubt.

Lösungsansatz

Zur Verifizierung der Probleme und zum Aufbau eines Smart-Homes wurde FHEM in der Kombination mit Homematic und 1-Wire ausgewählt, da die ZWave-Experimente nicht sehr erfolgreich waren. Die vorhandene Tetramatik-Heizungssteuerung sollte auf ein Minimum beschränkt werden und die notwendige Intelligenz und Steuerung soweit wie möglich nach FHEM verlagert werden.

FHEM und 1-Wire-Sensorik

Zur Erhöhung des Verständnisses der Arbeitsweise der Heizung wurde als erster Schritt die verschiedenen Rück- und Vorläufe überwacht. Hierzu kam ein Rasberry Pi mit einem RPI3-Erweiterung von Sheepwalk Electronics in England zum Einsatz. Die RPI3-Erweiterung stellt 8 1-Wire-Bussysteme zur Verfügung. Zwei Busse werden direkt mit RJ45-Ports präsentiert, 6 weitere benötigen einen Bussplitter (RPI3a von Sheepwalk Eletronics) und stellen 1-Wire Busse als RJ45 oder Schraubverbindung zur Verfügung.

Ebenfalls von Sheepwalk Eletronics kamen die passenden Sensoren (SWE0, Typ DS18B20 mit 2m Anschlußkabel) zum Einsatz.

Diese wurden liebevoll provisorisch (siehe Bild 2) an die entsprechenden Rohre verbunden und in FHEM konfiguriert. In FHEM waren dann mit Hilfe des Neues_Charting_Frontend aussagefähige Diagramme und Bewertungen über das Verhalten der Heizung möglich:

Bild 3: Heizungstaktung mit Nachtabsenkung

In der Konfiguration wurden alle Sensoren in FHEM konfiguriert und auf 20 oder 60 Sekunden Abfrage konfiguriert:

define EG.Heizung.Fussboden.Vorlauf OWDevice 28.A6E710050000 20
attr EG.Heizung.Fussboden.Vorlauf IODev RPi1Wire
attr EG.Heizung.Fussboden.Vorlauf model DS18B20
attr EG.Heizung.Fussboden.Vorlauf room EG.HWR,OWDevice

define EG.Heizung.Radiatoren.Vorlauf OWDevice 28.AD8A10050000 60
attr EG.Heizung.Radiatoren.Vorlauf IODev RPi1Wire
attr EG.Heizung.Radiatoren.Vorlauf model DS18B20
attr EG.Heizung.Radiatoren.Vorlauf room EG.HWR,OWDevice

Sehr deutlich ist in Bild 3 der korrekte Normalbetrieb der Heizung zu sehen: die Heizung taktet etwa alle 5 Minuten (in Abhängigkeit von der Außentemperatur und dem Verbrauch) mit einem An/Aus-Intervall. In der Zeit zwischen 22:00 und 5:00 ist eine Nachtabsenkung konfiguriert und die Kessel- und Vorlauftemperaturen kühlen ab. Nach der Nachtabsenkung sind die Taktlaufzeiten erheblich länger, bis die gewünschte Kessel- und Vorlauftemperatur wieder erreicht wird.

Vor der Nachtabsenkung arbeitet der Mischer (orange Linie) korrekt, die Fußboden-Vorlauftemperatur schwankt im Rhythmus der Taktung des Brenners um einen Mittelwert von 35°C. Nach der Nachtabschaltung gibt es in der Fußboden-Vorlauftemperatur erhebliche Schwankungen: die Temperatur steigt kurzzeitig bis auf 48°C, was zur Abschaltung der Fußboden-Pumpe führt. Nach Abkühlung des Vorlaufes wird die Pumpe wieder eingeschaltet, erzeugt wieder eine Spitze und wird wieder abgeschaltet - der Mischer wird nicht vorbeugend zurückgefahren und langsam geöffnet.

Bild 4: Funktionierende Mischung für Fußboden

Bild 4 zeigt im Detail die Temperaturen der Radiatoren und des Fußbodenmischers: die oberste rote Kurve zeigt Temperatur des Fußbodenkreises vor dem Mischer (deutlich die Taktung des Brenners zu erkennen). Die gelbe und lila Kurve zeigen die Fußboden-Verlauftemperaturen nach dem Mischer an zwei verschiedenen Positionen, die blauen unteren Linien sind die Rücklauftemperaturen vom Fußbodenmischer und zurück zum Kessel.

In diesem Beispiel arbeitet die Heizung korrekt ohne zu stottern.

Bild 5: Stotternde Fußbodenmischung

In Bild 5 arbeitet die Mischersteuerung fehlerhaft und zu heißes Wasser im Vorlauf führt zum abschalten der Fußbodenpumpe. Es dauert bis zu 90 Minuten, bis die Temperatur abgesunken ist, die Pumpe erneut startet, und wieder abgeschaltet wird. Die Viessmann Tetramatik arbeitet hier nicht korrekt und führt den Mischer nicht zurück.

Mit diesen Diagrammen war der vermutete Fehler eindeutig bewiesen und wurde temporär durch tägliche Justierungen der Heizkurven umgangen.

Das Graphing Frontend erwies sich als extrem langsam und ressourcenhungrig. Als erste Schritt wurde das Logging in die sqllite-Datenbank minimiert, als zweiter Schritt ein zusätzliches Frontend auf Basis eines ODROID U3 Boards verbaut. Dieses bietet 1.7GHz Quad-Core CPU und 2GB RAM für knapp 50 EUR und benötigt keinen Lüfter. Auch die 16GB eMMC-Speicherlösung verbesserte die Ansprechzeit deutlich. Der Raspberry Pi wurde auf die 8 1Wire-Bussysteme und -Sensoren beschränkt. Beide Boards wurden aus einem 4fach-USB-Ladegerät versorgt. Trotz der guten technischen Werte war das ODROID Board nicht in der Lage, MySQL als Datenbank zu verwenden - sqllite funktionierte jedoch leidlich.

Heizungssteuerung (Radiatoren)

Als nächster Schritt wurden häufig benutzte Räume mit Radiatoren mit Homematic HM-CC-RT-DN Heizkörperthermostaten und Homematic HM-TC-IT-WM-W-EU Wandthermostaten versehen. Dies geschah schrittweise, etwa ein Raum je zwei Wochen. Die langsame Installation erlaubte es

  • Die Familie an den Gebrauch der Wandthermostaten zu gewöhnen
  • Die Lernzeit der Thermostaten und das Schwingverhalten auf einen Raum zu begrenzen
  • Die Kosten je Monat niedrig zu halten

Die Fenster wurden mit Fensterkontakten versehen und alle Geräte in FHEM angelernt, untereinander gepeert und gepairt.

Alle Thermostaten erhielten Wochenprofile auf der Basis von Temperaturlisten namens 'tempList.cfg' im fhem-Verzeichnis. Die Wandthermostaten erlauben die Ermittlung der Raumfeuchte und sollen später für eine Lüftungsempfehlung genutzt werden.

Heizungssteuerung (Fußboden)

Bild 6: Möhlenhoff Alpha-5 Stellantriebe

Im Obergeschoß wurde die vorhandene UPONOR funkbasierende Lösung zur Steuerung der Fußbodenheizung zunächst entfernt. Die Uponor Ventile wurden durch Alpha 5 Stellantriebe von Möhlenhoff mit VA10-Adapter getauscht, die zu dem vorhandenen Fußbodenverteiler paßten. Die Alpha-5 Stellantriebe arbeiten mit 230V AC mit einer Leistungsaufnahme von 1W im Betrieb und sind nur als NC (normally-closed) Variante zu finden.

Bild 7: Homematic 230V-Aktoren für Stellantriebe

Um die Stellantriebe zu kamen zwei Homematic 4fach Hutschienen Aktor und ein passendes Gehäuse in Aufputzvariante zum Einsatz. In allen Räumen wurden wieder mit Homematic HM-TC-IT-WM-W-EU Wandthermostaten versehen und als einfache Lösung zunachst die Aktoren mit dem _SwitchTr-Kanal verbunden.

Das Rauchplastik-Gehäuse erlaubt eine wunderbare visuelle Kontrolle der Heizsituation im Obergeschoß.

Die einfache Lösung auf Basis des _SwitchTr-Kanals zeigte im ersten Winter deutliche Nachteile:

  1. Die Temperatur im Raum mit Fußbodenheizung stieg deutlich über die desired-temp an
  2. Alle Fußbodenkreise wurden gemeinsam morgens aktiviert und die Temperatur insgesamt stieg zu langsam an

Daher wurde für den folgenden Winter die Fußbodenheizung auf das PWM-Modul umgestellt. Dazu wurde ein PWM-Modul definiert:

 define PWM.FussbodenHeizung PWM 60 900 180 1 4,4 2,1,0 D_SwitchEGHWRPumpeFussbodenheizung,0,360,on,60

dies ist die zentrale Instanz für die gesamte Fußbodenheizung (in diesem Fall für Erd- und Obergeschoß). Die Parameter bedeuten:

  • 60: Alle 60 Sekunden wird das PWM-Modul neu berechnet
  • 900: Das Schaltintervall beträgt 900 Sekunden (15 Minuten)
  • 180: Minimale Ein-/Auszeit. Da die Stellantriebe ca. 2.5-3.0 Minuten für einen Schaltvorgang benötigen, sind 3 Minuten ausreichend
  • 1: Entspricht einem möglichen Einschaltzyklus von 100% - d.h. ein Stellantrieb kann für die vollen 15 Minuten aktiv sein
  • 4: Maximal 4 Räume können innerhalb eines Schaltintervalls angeschaltet werden
  • 4: Maximal 4 Räume können innerhalb eines Schaltintervalls ausgeschaltet werden
  • 2: Zwei Räume dürfen eingeschaltet werden
  • 1: 1 Raum darf ausgeschaltet bleiben
  • 0: Mit dem Wert 0 indiziert, daß alle Räume ausgeschaltet werden können
  • D_SwitchEGHWRPumpeFussbodenheizung ist ein Dummy, der in Verbindung mit einem DOIF-Kommando die Fußbodenpumpe an- oder ausschaltet
  • 0: Indiziert, daß die Pumpe auf Basis der Räume mit Heizbedarf aktiviert wird
  • 360: Die Pumpe läuft 360 Sekunden nach
  • on: Das Kommando um die Pumpe anzuschalten
  • 60: Es wird 60 Sekunden auf den Stellantrieb gewartet, bis die Pumpe aktiviert wird

Damit ist das PWM-Modul zunächst definiert und für jeden Fußboden-Kreis wird zusätzlich das PWMR-Modul (das zugehörige Raum-Modul) definiert. Sollte ein Raum mehrere Fußboden-Heizkreise aufweisen, lassen sich diese mit einer structure zusammenfassen.

Hier ein Beispiel mit einem einfachen Raum:

  define PW_RoomKindSZ PWMR PWM.FussbodenHeizung 1,0 OG.Kind.Schlafzimmer.Wandthermostat:measured-temp OG.Flur.Fussboden.Links_Sw_FBKindSchlafzimmer

dabei bedeutet:

  • PWMR: das Modul Fußbodenheizkreis
  • PWM.FussbodenHeizung: das bereits zentrale Modul der PWM-Steuerung
  • 1,0: Faktor und Gewichtung (Standardwerte)
  • OG.Kind.Schlafzimmer.Wandthermostat:measured-temp: der Homematic-Wandthermostat und das Reading, um die aktuelle IST-Temperatur im Raum abzufragen
  • OG.Flur.Fussboden.Links_Sw_FBKindSchlafzimmer: der Schalter, der den zugehörigen Stellantrieb an- oder ausschaltet

Dazu gehören die Readings:

  attr PW_RoomKindSZ desiredTempFrom OG.Kind.Schlafzimmer.Wandthermostat:desired-temp

dies übernimmt die Wunschtemperatur aus dem Wochenprofil des Wandthermostaten

Das Diagramm zeigt nun deutlich, wie sich die IST-Temperatur langsam an die SOLL-Temperatur herantastet und die Pausen zwischen den Pulsen immer länger werden:

PWMR-Fußbodenkreise.png

Einsparungen

Im ersten Jahr nach Einbau der Funkthermostaten für Radiatoren in fünf Räumen und dem Wechsel der Steuerung der Fußbodenheizung im Obergeschoß wurde eine Verbrauchsreduzierung von 20% gemessen. In Zahlen bedeutete dies eine Rückzahlung vom Gasanbieter in Höhe von gut 1.100 EUR sowie die Reduzierung der monatlichen Abschläge um 55 EUR. Auf ein Jahr gesehen wurden damit die Betriebskosten um 1.760 EUR reduziert, wobei Investitionen in Höhe von etwa 750 EUR für die Homematic-Komponenten, Raspberry und 1-Wire-Sensoren, HMLAN-Sender und Gehäuse und Kabel aufzubringen waren - d.h. es Gewinn von 1.010 EUR ohne Einrechnung der vielen Arbeitsstunden.

Im zweiten Jahr wurden alle weiteren Radiatoren auf Homematic umgerüstet sowie die Fußbodenheizung im Erdgeschoß auf Homematic umgestellt. Durch diese Maßnahmen sind weitere Einsparungen abzusehen.

STELLMOTOR Mischersteuerung

Um das eindeutige identifizierte Stottern der Fußbodenheizung zu beheben, wurde der Fußbodenmischer auf eine Ansteuerung von FHEM umgestellt. Für die Ansteuerung waren Relais notwendig, da der Mischermotor mit 230V, maximal 4A Anschlußwerten spezifiziert war. Zur Ansteuerung wurde daher ein 1-Wire 8fach Relaisboard von eBay Verkäufer leotron_87 in ein Verteilergehäuse eingebaut und mit dem vorhandenen 1-Wire-Bus verbunden.

Das Relaisboard benötigt eine 12V-Spannungsversorgung und wurde von FHEM problemlos erkannt:

define EG.Heizung.8Relais OWDevice 29.3D5516000000
attr EG.Heizung.8Relais IODev RPi1Wire
attr EG.Heizung.8Relais model DS2408
attr EG.Heizung.8Relais room EG.HWR,OWDevice

mittels Kommandos wie

set EG.Heizung.8Relais PIO.7 on
set EG.Heizung.8Relais PIO.6 0

konnten die einzelnen Relais angesteuert und geschaltet werden. Jedes Relais stellt NO (normally-open) und NC (normally-closed) Kontakte zur Verfügung und ist für verschiedene Spannungsbereiche (bei der Bestellung auszuwählen) freigegeben. Die gekaufte Variante unterstützte 7A bei 250V AC, so daß die maximale Anschlußleistung des Mischermotors kein Problem darstellte.

Da der eBay-Verkäufer aus Bulgarien liefert, wurde eine zusätzliche Relaisplatine in die Ersatzteilkiste eingelagert.

Der Mischermotor wurde nach Anleitung der Stellmotor Anleitung im Schaltbild wechsel verbunden. Hierbei half eine Google-Suche nach einer Installationsanleitung des verbauten Viessmann-Mischers, welches die genauen Anschlußpläne beinhaltete. Bei Anschluß des Mischermotors ist ein 4- oder 5-poliges Installationskabel notwendig.

Bild 8: Relaiskarte für Mischersteuerung und Stellantriebe

Nach der abschliessenden Konfiguration des STELLMOTOR-Modules (Laufzeit, Relaisnamen):

define EG.HWR.Fussbodenmischer STELLMOTOR FhemDev
attr EG.HWR.Fussbodenmischer STMcalibrateDirection L
attr EG.HWR.Fussbodenmischer STMdebugToLog3 0
attr EG.HWR.Fussbodenmischer STMfhemDevRL EG.Heizung.8Relais PIO.6
attr EG.HWR.Fussbodenmischer STMfhemDevSTART EG.Heizung.8Relais PIO.7
attr EG.HWR.Fussbodenmischer STMinvertOut 0
attr EG.HWR.Fussbodenmischer STMlastDiffMax 1
attr EG.HWR.Fussbodenmischer STMmapOffCmd 0
attr EG.HWR.Fussbodenmischer STMmapOnCmd 0
attr EG.HWR.Fussbodenmischer STMmaxDriveSeconds 118
attr EG.HWR.Fussbodenmischer STMmaxTics 100
attr EG.HWR.Fussbodenmischer STMpollInterval 0.1
attr EG.HWR.Fussbodenmischer STMresetOtherDeviceAtCalibrate 0
attr EG.HWR.Fussbodenmischer STMrlType wechsel
attr EG.HWR.Fussbodenmischer STMtimeTolerance 0.01
attr EG.HWR.Fussbodenmischer room EG.HWR

erfolgte der erste erfolgreiche Test durch

set EG.HWR.Fussbodenmischer <Wert>
set EG.HWR.Fussbodenmischer cablibrate

Das Ziel war eine Führung der Fußbodenvorlauftemperatur nahe an der maximal möglichen Temperatur (da sonst die oberen Räume zu kalt blieben). Für diese Steuerung waren zwei Schritte notwendig:

  1. Ermittlung eines gleitenden Mittelwertes über die Fußbodenvorlauftemperatur (um kurzfristige Spitzen zu glätten)
  2. Aufbau einer DOIF-Anweisung zur relativen Steuerung des Mischers

Der gleitende Mittelwert wurde nach Anleitung in der 99_MyUtils.pm integriert und als Reading des bereits vorhandenen 1-Wire-Sensors integriert:

define EG.Heizung.Mischer.Vorlauf OWDevice 28.3CD910050000 20
attr EG.Heizung.Mischer.Vorlauf IODev RPi1Wire
attr EG.Heizung.Mischer.Vorlauf model DS18B20
attr EG.Heizung.Mischer.Vorlauf room EG.HWR,OWDevice
attr EG.Heizung.Mischer.Vorlauf userReadings temperature.avg {movingAverage("EG.Heizung.Mischer.Vorlauf","temperature",300)}

dies erzeugt das zusätzliche Reading temperature.avg für die Fußbodenvorlauftemperatur mit dem Mittel der letzten 5 Minuten.

Die Regelung der Vorlauftemperatur selbst wurde über ein DOIF-Kommando erzeugt:

define DI_MischerCommands DOIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 22 and [EG.HWR.Fussbodenmischer:position]<97 and [EG.Heizung.8Relais:PIO.3] eq "on")
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 1: Schnell oeffnen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 26 and [EG.HWR.Fussbodenmischer:position]<98 and [EG.Heizung.8Relais:PIO.3] eq "on")
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 2: Ganz langsam oeffnen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] < 30 and [EG.HWR.Fussbodenmischer:position]<98 and [EG.Heizung.8Relais:PIO.3] eq "on")
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]+1)}) ## Cmd 3: Noch ein bisschen
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 35 and [EG.HWR.Fussbodenmischer:position]>3)
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-2)}) ## Cmd 4: Viel zu heiss, schnell zu
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 34 and [EG.HWR.Fussbodenmischer:position]>2)
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-1)}) ## Cmd 5: Zu heiss, schnell zu
DOELSEIF ([EG.Heizung.Mischer.Vorlauf:temperature.avg] > 33 and [EG.HWR.Fussbodenmischer:position]>2)
   (set EG.HWR.Fussbodenmischer {([EG.HWR.Fussbodenmischer:position]-1)}) ## Cmd 6: Noch ein bisschen
DOELSEIF ([03:50])
   (set EG.HWR.Fussbodenmischer calibrate)                                ## Cmd 7: Calibrieren fuer Tagprogramm
DOELSEIF ([04:00])
   (set EG.HWR.Fussbodenmischer 40)                                       ## Cmd 8: Headstart, Ende der Nachtabsenkung
attr DI_MischerCommands cmdpause 60:120:180:60:120:180:0:0
attr DI_MischerCommands wait 180:240:300:180:240:480:0:0
attr DI_MischerCommands do always

Die in dieser individuellen Konfiguration ist die gewünschte Zieltemperatur der Fußbodenvorlauftemperatur zwischen 30° und 32°C (im fest verbauten Thermometer bedeutet dies knapp unter 40°C). Die Temperatur des Sensors (und des Mittelwertes) weicht jedoch von den eingebauten physikalischen Thermostaten ab. Vermutlich liegt das an der zusätzlichen Plastikabschirmung der Sensoren und der Dicke der Rohre - die Zieltemperaturen wurden daher durch Try-n-Error ermittelt.

Die ersten drei IF-Bedingungen öffnen den Mischer (erhöhen die Fußboden-Vorlauftemperatur). Die folgenden drei IF-Bedingungen schließen den Mischer (verringern die Fußboden-Vorlauftemperatur). Die letzten beiden Anweisungen kalibrieren morgens den Mischer und sorgen für einen schnelleren Start.

Jede der drei öffnenden IF-Bedingungen sind auf leicht unterschiedliche Temperaturen nahe der Zieltemperatur (zwischen 30-32 Grad) eingestellt. Eine Justierung der Öffnungsgeschwindigkeit findet über die Attribute wait und cmdpause statt: ist die Temperatur weit von der Zieltemperatur entfernt, wird kurz gewartet und der Mischer beliebig oft geöffnet. Ist die Temperatur nahe der Zieltemperatur, wird sich langsam und vorsichtig an das Ziel herangetastet - das Attribut wait steuert die Wartezeit und cmdpause verhindert ein überschwingen.

Jede drei schließenden IF-Bedingungen sind analog aufgebaut, jedoch wird die Temperatur schnell reduziert, um das stottern und den Abkühlprozeß zu vermeiden.

Die Kalibrierung und ein Frühstart finden morgens statt. In der ersten öffnenden IF-Bedingung wurde zusätzlich die Abfrage [EG.Heizung.8Relais:PIO.3] eq "on" integriert. Diese prüft, ob die Fußbodenpumpe aktiv ist oder wegen zu hohen Vorlauftemperaturen deaktiviert wurde. Dies verhindert ein Überschwingen im Zusammenspiel mit dem thermischen Maximalbegrenzer - die Abkühlzeit ist so hoch, daß der Mischer bereits wieder den Mischer öffnet um die Temperatur zu erhöhen. Schaltet dann die Pumpe ein, überschreitet die Vorlauftemperatur wieder sofort das Maximum.

Das DOIF-Kommando führt zu folgenden Meßwerten:

Morgennebel-HeizungssteuerungHOWTO-Mischer1Tag.png

Die Nachtabsenkung endet um 4:00, gleichzeitig startet die Kalibrierung (setzt den Mischer auf 0). Der Mischer (blaue Linie) öffnet schnell, überschwingt leicht und regelt sich dann auf eine sehr gerade Kennlinie mit beinahe konstanter Temperatur zurück.

Nach einer Woche Betrieb stellte sich heraus, daß die Viessmann Tetramatik die Fußbodenpumpe dauerhaft abstellte. Offenbar (und vielleicht) erkennt die Tetramatik, daß diese den Mischer nicht mehr kontrollieren kann und stellt zur Sicherheit die Pumpe ab.

Daher wurde auch die Pumpe an den 8-fach Relaiskarte via 1-Wire geschaltet und mit Hilfe einer DOIF-Anweisung gesteuert:

define DI_EG.HWR.Fussbodenpumpe DOIF ([04:00-23:00] and [EG.Heizung.Mischer.Vorlauf:temperature] < 33)
   (set EG.Heizung.8Relais PIO.3 on) 
DOELSE 
   (set EG.Heizung.8Relais PIO.3 off) 
attr DI_EG.HWR.Fussbodenpumpe room EG.HWR 
attr DI_EG.HWR.Fussbodenpumpe wait 0,900 

die Erkennung der Maximaltemperatur mit einer 15 minütigen Abkühlphase erlaubte die Deaktivierung des Thermostaten zur Begrenzung des Fußbodenvorlaufes (siehe Diagramm in der Einleitung).

Kombinierte Fußbodens- und Radiatorenheizung

In den Räumen mit kombinierter Fußboden- und Radiatorenheizung wird der Fußbodenkreis über ein DOIF-Kommando gesteuert, welches auf den Öffnungswert (actuator-Stand) der Radiatorheizung triggert:

define DI_EG.Wintergarten.Fussbodenheizung DOIF ([EG.Wintergarten.Heizung:actuator] > 10)
   (set EG.Heizung.8Relais PIO.0 on)
DOELSE
   (set EG.Heizung.8Relais PIO.0 off)
attr DI_EG.Wintergarten.Fussbodenheizung wait 180,1800

In diesem Beispiel wird der Alpha 5 Stellantrieb über die 8fach Relaiskarte an PIO.0 (siehe Abschnitt FHEM-Erweiterungen und STELLMOTOR) angesteuert. Das DOIF-Kommando aktiviert die Fußbodenheizung, wenn die Radiatoren länger als drei Minuten mit mehr als 10 (10%) heizen und läßt diese dann mindestens 30 Minuten aktiviert.

Sollten mehrere Heizungen im Raum vorhanden sein, läßt sich dies durch den Mittelwert der Aktuatorenstellung mit Hilfe einer perl-Anweisung lösen.

Damit folgt die Fußbodenheizung automatisch den Wochenprofilen des Wandthermostaten im Wintergarten bzw. dessen Heizungsverhalten bei manueller Übersteuerung oder der Erkennung von offenen Fenstern.

Kombinierte Fußbodens- und Radiatorenheizung in Kombination mit PWM/PWMR

Mit der Umstellung auf das PWM-/PWMR-Modul konnte diese DOIF-Lösung nicht mehr verwendet werden. Die Lösung bestand in einem zusätzlichen Userreading (FB-desired-temp im Wandthermostaten des Raumes, der als reading für den SOLL-Zustand des PWMR-Modules verwendet wurde:

 attr  EG.Kueche.Wandthermostat userReadings FB-desired-temp { ReadingsVal("EG.Kueche.Wandthermostat","desired-temp",0) + 0.5 ;; }

dieses Userreading addiert 0.5°C zu der desired-temp des Wochenprofiles hinzu. Das Wochenprofil wurde entsprechend um 0.5°C reduziert. Damit heizen die Radiatoren schnell und deutlich mit, um dann Nahe der Zieltemperatur auszugehen, damit die Fußbodenheizung die letzten 0.5°C übernehmen kann - und damit lange für warme Füsse sorgt.

Bedarfsgesteuerte Kontrolle der Fußbodenumwälzpumpe

Zur weiteren Verbrauchsoptimierung sollte nun die Fußbodenumwälzpumpe bedarfsgerecht ein- und wieder ausgeschaltet werden. Wie in der Einführung beschrieben hat diese einen konstanten Verbrauch von 170W/h, so daß die Reduzierung der Laufzeit schnell erhebliche Einsparungen verspricht.

Im ersten Schritt wird ein Dummy definiert, der den Bedarf an warmen Heizwasser reflektiert. Diese Dummy-Variable wird minütlich durch ein DOIF-Kommando belegt:

 define D_EG.HWR.FussbodenAnforderung dummy
 attr D_EG.HWR.FussbodenAnforderung room EG.HWR
 define DI_EG.HWR.FussbodenpumpeAnforderung DOIF ([+0:01] and 
   ([?OG.Flur.Fussboden.Links_Sw_FBChild1Arbeitszimmer] eq "on" or 
    [?OG.Flur.Fussboden.Links_Sw_FBChild1Schlafzimmer] eq "on" or
    [?OG.Flur.Fussboden.Links_Sw_FBChild2Links] eq "on" or
    [?OG.Flur.Fussboden.Links_Sw_FBChild2Rechts] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBBadLinks] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBBadRechts] eq "on" or
    [?OG.Flur.Fussboden.Rechts_Sw_FBFlur] eq "on"))
    (set D_EG.HWR.FussbodenAnforderung on)
 DOELSE
    (set D_EG.HWR.FussbodenAnforderung off)
 attr DI_EG.HWR.FussbodenpumpeAnforderung wait 300,1800
 attr DI_EG.HWR.FussbodenpumpeAnforderung room EG.HWR

Da sich die verwendeten Wandthermostaten alle 2.5 Minuten bei FHEM melden, ist der Versatz in Durchschnitt etwa 180 Sekunden. Die im DOIF abgefragten Konditionen sind die verschiedenen 230V-Schaltaktoren, welche die Ventilantriebe ansteuern. Fordert auch nur ein Kreis Wärme an, wird der Dummy auf on gesetzt - damit folgt der Dummy allen Wochenprofilen der verschiedenen Wandthermostaten oder auch allen manuellen Änderungen.

Die bereits vorhandene DOIF-Anweisung zur Kontrolle der Fußbodenpumpe wurde um den Zustand des Dummys erweitert:

 define DI_EG.HWR.Fussbodenpumpe DOIF ([04:00-21:00] and [EG.Heizung.Mischer.Vorlauf:temperature] < 34 and [D_EG.HWR.FussbodenAnforderung] eq "on")
    (set EG.Heizung.8Relais PIO.3 on)
 DOELSE
    (set EG.Heizung.8Relais PIO.3 off)
 attr DI_EG.HWR.Fussbodenpumpe wait 0,45
 attr DI_EG.HWR.Fussbodenpumpe room EG.HWR

Damit wird die Fußbodenpumpe zwischen 4 Uhr (Ende der Nachtabschaltung) bis 21 Uhr aktiviert, sofern die Mischervorlauftemperatur nicht zu hoch wird und tatsächlich Wärme benötigt wird.

Zur Kontrolle der Einsparungen wurde noch zusätzlich das Modul HourCounter konfiguriert:

 define HC_EG.HWR.Fussbodenpumpe HourCounter EG.Heizung.8Relais:PIO.3:.on EG.Heizung.8Relais:PIO.3:.off
 attr HC_EG.HWR.Fussbodenpumpe room EG.HWR

In den Readings des HourCounters pauseTimePerDay zeigt dann die Summe der Ausschaltzeit pro Tag ein, rechnet jedoch auch die vier Stunden (Mitternacht bis 4 Uhr) bis zum Beginn der Tagesheizperiode ein.

Als Diagramm ergibt sich diese Darstellung:

Morgennebel-HOWTO-Heizungsoptimierung-Pumpensteuerung.png

Nach der Nachtabsenkung wird die Fußbodenvorlauftemperatur auf die gewünschten 30-33°C Grad (am Meßpunkt, entspricht 40°C im fest eingebauten Thermometer) gesteuert. Kurz nach 12 Uhr ist der Bedarf an Fußbodenwärme gedeckt und die Umwälzpumpe wird deaktiviert. Dieser Zustand hält knapp 8 Stunden an, bis kurz nach 20:30 Uhr wieder Wärme angefordert wird. Jedoch greift um 21:30 schon die Nachtabschaltung der Heizung selbst.

Am Tag davor tobte ein Sturm über das Haus und der kalte Wind sorgte für eine Abkühlung in den Räumen:

Morgennebel-HOWTO-Heizungsoptimierung-PumpensteuerungSturm.png

Der Wärmebedarf war erheblich höher und als Folge blieb die Pumpe dauerhaft an.

Bedarfsgesteuerte Kontrolle der Radiatorenumwälzpumpe

Nach demselben Prinzip wurde auch die Radiatorenpumpe von der Tetramatik abgekoppelt und durch FHEM gesteuert. Ausschlaggebend für das Aktivieren der Radiatorenpumpe sollte der Durchschnitt der Ventilstellungen der Heizungen sein.

Hierzu wurde das VALVES-Modul genutzt:

 define V_RadiatorenStatus VALVES

Das Attribut valvesDeviceList hält die Heizungsaktoren mit einem Reading der Aktoren/Ventilstellungen:

 attr V_RadiatorenStatus EG.Arbeitszimmer.HeizungLinks_Clima, EG.Esszimmer.HeizungLinks_Clima, EG.Esszimmer.HeizungMitte_Clima, \ 
                         EG.Esszimmer.HeizungRechts_Clima, EG.Garderobe.Heizung_Clima, EG.Kueche.HeizungLinks_Clima, EG.Kueche.HeizungRechts_Clima, \
                         EG.Wintergarten.Heizung_Clima, OG.Schlafzimmer.HeizungLinks_Clima, OG.Schlafzimmer.HeizungMitte_Clima, \
                         OG.Schlafzimmer.HeizungRechts_Clima, OG.Wohnzimmer.HeizungLinks_Clima, OG.Wohnzimmer.HeizungRechts_Clima

und das Attribut valvesDeviceReading die Aktorenstellung, bei Homematic:

  attr V_RadiatorenStatus ValvePosition

mit einem stateFormat ergibt sich eine schöne Darstellung:

  attr V_RadiatorenStatus stateFormat {sprintf("%.1f",ReadingsVal("V_RadiatorenStatus","state",0))."%"}

und in Verbindung mit einem DOIF

  define DI_HeatingRadiatorPumpStatus DOIF ([04:00-21:30] and [V_RadiatorenStatus:valve_average] > 10)
      (set D_HeatingRadiatorPump on, set EG.Heizung.8Relais PIO.4 on)
  DOELSE
      (set D_HeatingRadiatorPump off, set EG.Heizung.8Relais PIO.4 off)

die bedarfsgerechte Aktivierung der Radiatorenpumpe. D_HeatingRadiatorPump ist dabei ein Dummy, der später in einer FLOORPLAN-Darstellung genutzt wird.

Fussbodensteuerungsdiagramm.png

illustriert nun den gesamten Heizungsstatus:

  1. Rot: Vorlauftemperatur nach dem Mischer
  2. Dunkelgrün: Wandernder Durchschnitt der Vorlauftemperaturs nach dem Mischer
  3. Blau: Mischerstand
  4. Pink: Außentemperatur
  5. Gelb: Der Durchschnitt aller Radiatoren-Ventilstellung
  6. Grün Transparent: Status der Fußbodenpumpe
  7. Blau Transparent: Status der Radiatorenpumpe

Deutlich ist zu sehen, wie die Fußbodenpumpe nur bei Bedarf aktiviert wurde und der Mischer fleißig nachsteuert.

Gaszähler

Nachdem die Räume vollständig geregelt und mit Wochenprofilen versehen waren, wurde die Messung des Gasverbrauches aufgebaut. Mit Hilfe der Verbrauchsdaten sowie der Zustandszahl und des Brennwertes (beides beim Gasversorger zu erfragen) läßt sich der Verbrauch an kWh errechnen.

Zur Messung des Gasverbrauches wurde der Homematic Bausatz zur Strom- und Gasmessung verwendet. Der von ELV gelieferte Gaszähler paßte mechanisch nicht in den vorhanden iTron G4 RF1-MM Gaszähler. Der ELV-Gaszähler besteht aus einer kleinen Schaltung mit wenigen Widerständen und einem Reed-Schalter - da eine exakte Messung wichtig war, wurde von World of Heating der passende Impulsnehmer GMT Typ 951-858-06 nachbestellt und in die Schaltung von ELV eingelötet. Der Impulsnehmer kommt mit langen Anschlußkabeln und läßt sich sehr einfach einbauen.

Nach der Konfiguration des Homematic Bausatzes auf die vom Gaszähler gelieferten Impulse je Einheit lieferte dieser zuverlässig die Verbrauchsdaten. Diese lassen sich schnell und einfach visualisieren.

Morgennebel-HOWTO-Heizungsoptimierung-Gasverbrauch.png

Zusammen mit der Außentemperatur und der Uhrzeit sollen diese dann als Grundlage zur Dimensionierung einer neuen Heizungsanlage verwendet werden. Dazu werden die Logdateien der Außentemperatur und der Verbrauch an Gas auf die Stunde umgerechnet. Die vorhandenen Meßpunkte können dann in eine Verbrauchskurve in Abhängigkeit der Außentemperatur überführt werden - und da alle Räume wie gewünscht warm werden, stellt dies dann die notwendige Dimensionierung der neuen Heizung dar.