FHEM - Anwendungen > Heizungssteuerung/Raumklima

THZ Tecalor (LWZ Stiebel Eltron) Wärmepumpe -Optimierung und Erfahrungsaustausch

(1/570) > >>

willybauss:
Dieser Thread soll alle unterstützen, die mit Hilfe von FHEM ihre Tecalor THZ (= Stiebel Eltron LWZ) Wärmepumpe monitoren und anhand der Daten die Einstellungen optimieren wollen. Er baut auf die Erfahrungen und harte Arbeit von immi und einigen weiteren Anwendern auf, mit deren Hilfe das FHEM-THZ-Modul entstand. Und natürlich nicht zu vergessen auch Robert Penz' HeatpumpMonitor, quasi der Vorläufer des FHEM-Moduls.

Ich werde in diesem ersten Beitrag im Lauf der Zeit einige wichtige Infos sammeln, damit der Einsteiger schnell einen Überblick bekommt, ohne sich durch eine endlose Folge von Beiträgen durchzulesen.

Bitte beginnt mit
* FHEM Grundlagen
* FHEM THZ-Wiki
* FHEM Command Reference
* FHEM auf dem Raspberry Pi installieren
* Doku für die Herstellung des seriellen VerbindungskabelsAußerdem noch ein paar Verweise auf "benachbarte" Themen im FHEM-Forum:
* THZ Tecalor (LWZ Stiebel Eltron) module support and code improvement
=> hier dreht sich alles um Erweiterungen, Verbesserungen und Bugs des THZ-Moduls in FHEM; "Geschäftssprache" ist englisch, deutsch wird aber notfalls gut verstanden
* "das Original" - der Thread, mit dem alles begannUnd der Link zu den Installationsanleitungen für die diversen Modelle:
* Manuals @ Tecalor.de=================================================================================

Wenn  die grundsätzliche Installation anhand des THZ-Wiki erfolgreich war (erst dann!) könnt ihr den folgenden, erweiterten Vorschlag für die Konfiguration ausprobieren. Die Dateien sind ungeprüft meiner Konfiguration entnommen, deshalb am besten schrittweise vorgehen, um ggf. Fehler einkreisen zu können.
Die Systemdatei fhem.cfg (auszugsweise), Plot-Konfigurationsdateien, die Konfiguration fürs versenden von Emails,sowie ein paar Screenshots findet ihr als Anhang.

Nach der Installation braucht es auf der FHEM Benutzeroberfläche dann noch folgende Eingaben:
* setreading Mythz boosterHeating_old 0
* setreading Mythz boosterDHW_old 0Anschließend (und falls ihr das DebianMail Paket in Linux installiert habt) solltet ihr 2 Emails bekommen. Gleichzeitig werden die Werte von boosterHeating_old und boosterDHW_old in FHEM auf eure aktuellen Werte upgedatet. Bei jedem weiteren Gebrauch der Zusatzheizung für Heizung oder Brauchwasser (Erkennung an der Zunahme der Laufzeit-Stunden) wird eine weitere Email verschickt.

Eine weitere Eingabe auf der Benutzeroberfläche:
* setreading Mythz number_of_faults_old 0Wenn ihr jetzt noch die Datei 'Tecalor-Fehlermeldungen.txt' ins /opt/fhem Verzeichnis kopiert, dann bekommt ihr bei jedem Anlagenfehler eine Email incl. dieser Liste der Fehlerbeschreibungen. Testen könnt ihr das mit
* setreading Mythz number_of_faults_old -1=> FHEM erkennt, dass die aus der Anlage ausgelesene Anzahl Fehlermeldungen (0) größer ist als der Sollwert (-1),verschickt eine Email und setzt den Sollwert auf 0; sonst würden laufend weitere Emails desselben Inhalts verschickt.

 =================================================================================

Dem Plot2 (Heizkreis-Solltemperatur vs.Heizkreis-Isttemperatur, Integralwert) kommt bei der Abstimmung der Anlage eine wichtige Bedeutung zu. Im Screenshot sieht man, dass meine THZ immer dann zu heizen beginnt, wenn Die Abweichung der Heizkreistemperatur vom Sollwert 4K beträgt => der in der Anlage eingestellte Wert für Hysterese 1. Das Ende der Heizzyklen wird nicht durch die Hysterese bestimmt, sondern durch erreichen des eingestellten Integralwerts (200). Der Integralwert ist quasi die Aufsummierung dieser Abweichungen über der Zeit. Ich habe das deshalb so gewählt, weil die grüne Kurve (Heizkreistemp.) vor Ende des Heizzyklus ziemlich flach wird. Deshalb ist so eine zuverlässige Beendigung des Heizzyklus nicht konfigurierbar. Insbesondere bei höheren Außentemperaturen wären die Heizzyklen auch sehr kurz => die Anlage würde sich sehr oft und sehr kurz einschalten, was die Lebensdauer und den Verbrauch ungünstig beeinflusst. Durch Beendigung des Heizens per erreichen des Integralwerts sind diese Probleme besser zu umgehen.

Bleibt noch zu erwähnen, dass das aufsummieren des Integralwerts in Heizpausen immer nur dann erfolgt, wenn die Heizkreispumpe anspringt (danke an nikmaier für diese wichtige Info). Das heißt, dass auch die Einstellung der Pumpenzyklen sich auf die Steigung der roten Kurve  (bzw. eigentlich das Gefälle in den Heizpausen) auswirkt.

Beispiel: angenommen, die Abweichung HC-Soll - HC-Ist beträgt 2K
* wenn die Pumpe 6 mal pro Stunde für 5 Minuten läuft, dann summiert sie pro Stunde 60 Kmin (KelvinMinuten) auf
* wenn die Pumpe 2 mal pro Stunde für 5 Minuten läuft, dann summiert sie pro Stunde 20 Kmin (KelvinMinuten) aufMan muss also die Einstellung des Integralwertes immer in Zusammenhang mit der Einstellung der Pumpenzyklen sehen.

 =================================================================================

THZ-Heizungsgrundlagen und grundsätzliche Funktionsweise

Am besten liest Du erst mal nur die Texte in normalem Font. Wenn du das verstanden hast nimm die kursiven Texte dazu. Das sind die dazu gehörenden Erläuterungen für fhem.

Die Heizkurve definiert die Soll-Heizkreistemperaturen für unterschiedliche Außentemperaturen. Abhängig von der Bauart des Gebäudes wird sie mit Fußpunkt (P14) und Steigung (P13) definiert. Mit anderen Worten: die Heizkurve IST die Soll-Heizkreistemperatur (heatSetTemp) - die Anlage nimmt immer der Punkt aus der Kurve, der zur aktuellen Außentemperatur gehört, als Sollwert.
   Diesen Zusammenhang könntest Du auch indirekt herausfinden: Im 1. Diagramm (in meiner Beispielkonfiguration heißt es "Mythz_Plot1_Temp") steht als Skalenbeschriftung "HC1 Soll". Das ist dieser Sollwert. Wenn Du nun in der Diagrammdefinition (Plot Editor) schaust, dann findest Du "HC1 Soll" in der 5. Zeile. Die Spalte "Source" sagt Dir, dass die zugehörigen Werte aus dem FileLog_MyTHZ entnommen werden. Die Spalten "Input Column" und "Regexp" sagen, dass es der 15. Wert aus dem Reading "MyTHZ:sHC1" ist. Wenn Du nun ein Reading von "MyTHZ:sHC1" anschaust (z.B. mit dem Editor im MyTHZ Logfile), dann musst Du nur den 15. Wert in dieser Zeile suchen, also das, was nach dem 14. Leerzeichen steht. Das ist der aktuelle Wert für "HC1 Soll". Und unmittelbar davor steht die Beschriftung "heatSetTemp".

Die Außentemperatur ist evtl. schnellen Schwankungen unterworfen (Wind, ...). Das sollte nicht zu schnellen Änderungen der Soll-Heizkreistemperatur führen, sonst würde sich womöglich die Heizung oft ein- oder ausschalten. Deshalb wird zur Ermittlung der Soll-Heizkreistemperatur nicht die Außentemperatur verwendet, sondern ein Mittelwert über einen längeren Zeitraum: "DÄMPFUNG AUSSENTEMP. P77". Dieser Wert ist Gebäude-typisch. Ein Gebäude mit einer großen Speichermasse in den Außenwänden (gemauert) benötigt einen höheren Wert als ein leichtes Holzhaus. Die Dämmung der Außenwände hat ebenfalls Einfluss. Wenn Du siehst, dass die Heizung auf plötzliche Kälteeinbrüche zu träge reagiert, dann wäre das evtl. die richtige Stellschraube.
   Im Diagramm  "Mythz_Plot1_Temp" ist die tatsächliche Außentemperatur schraffiert dargestellt, die gefilterte Außentemperatur als Linie.
   
Falls der Außentemperatursensor nicht die richtigen Werte misst kann man über "KORREKTUR AT" (P86) den Wert kalibrieren. Alternativ kann man das auch durch eine Parallelverschiebung der Heizkurve korrigieren. => Wenn Du P86 nachträglich änderst musst Du auch die Heizkurve korrigieren: Fußpunkt (P14).
   
Die tatsächliche Heizkreistemperatur (heatTemp) ist der Wert, der sich als "gewichteter Mittelwert" aus Vor- und Rücklauftemperatur ergibt. "gewichtet" deshalb, weil nicht einfach das arithmetische Mittel genommen wird; über den Parameter "Anteil Vorlauf" (P19) stellst Du in der Anlage ein, wie hoch der Einfluss von Vor- und Rücklauf auf die Berechnung der tatsächlichen Heizkreistemperatur sein soll. Typischerweise nimmt man viel Rücklauf (also eine geringe %-Zahl bei P19), weil der Rücklauf am besten die Wärmeabgabe ins Gebäude abbildet.
   Im "Mythz_Plot1_Temp" Plot siehst Du Vorlauf, Rücklauf und HC1_Ist als 3 Kurven.
Wenn Du ein 2. Display oder einen Temperaturfühler im Wohnraum hast, dann kann die Heizkurve auch über die tatsächlich vorhandene Raumtemperatur zusätzlich beeinflusst werden. Das ist der Parameter "RAUMEINFLUSS Heizkreis 1" (P15).

Der Unterschied zwischen Heizkreis-Soll und Heizkreis-Ist-Temperatur bestimmt, ob geheizt werden muss oder nicht. Damit die Heizung nicht permanent an- und aus geht definiert mann eine Hysterese. Diese bestimmt, wie weit die Ist-Temperatur unter den Sollwert sinken muss, damit die Heizung anspringt. Geheizt wird dann für einen längeren Zeitraum, bis die Hysterese positiv überschritten ist (Istwert ist größer als Sollwert plus Hysterese).
   Im "Mythz_Plot2_HC1Offset_Integral" ist die Differenz zwischen Soll- und Istwert in grün aufgetragen. Sobald die Kurve über der Nulllinie ist, ist der Wert überschritten, ansonsten unterschritten.
Sinngemäß dieselbe Hysterese gibt es auch für das Einschalten der elektrischen Zusatzheizung.

Die Bedeutung der einzelnen Parameter ist je nach Anlagenmodell etwas unterschiedlich ==> im Zweifelsfall die Installationsanleitung fragen:

THZ 303 i:
Stufe 1 = Wärmepumpe
Stufe 2 = Elektr. Nacherwärmung 2,6 kW
Stufe 3 = Elektr. Nacherwärmung 5,6 kW
Stufe 4 = Elektr. Nacherwärmung 8,8 kW

THZ 303 SOL/403 SOL:
Stufe 1 = verdichter
Stufe 2 = Wärmepumpe
Stufe 3 = Elektr. Nacherwärmung 2,6 kW
Stufe 4 = Elektr. Nacherwärmung 5,6 kW
Stufe 5 = Elektr. Nacherwärmung 8,8 kW

HYSTERESE 1 (Ein-/Ausschalthysterese 1) P21
HYSTERESE 2 (1) P22
HYSTERESE 3 (1) P23
HYSTERESE 4 (1) P24
HYSTERESE 5 (nur bei SOL) P25

Die ASYMETRIE dER HYSTERESE P29 definiert, ob die Hysterese bei Über-und Unterschreitungen des Sollwerts gleich reagiert (P29 = 1), oder ob oberhalb des Sollwerts eine Dämpfung verwendet werden soll. Der Wert von P29 definiert einen Teiler dafür.

Es kann aber durchaus sein, dass es im Haus warm genug ist und dennoch der Ist-Wert geringer als der Sollwert ist. Dann passt die Heizkurve nicht zu den thermischen Eigenschaften des Hauses => Korrektur ggf. über Steigung/Fußpunkt.
Es kann auch sein, dass die Werte verfälscht werden, z.B. durch die Sonne, die grade das Haus aufwärmt, ohne dass die Heizung davon etwas weiß. In diesem Fall lieber nichts an der Heizkurve verstellen.
   
Wenn die Soll-Ist-Differenz ein bisschen negativ ist (Heizkreistemperatur ist etwas zu kalt), ist das nicht schlimm. Schlimm wird das erst, wenn dieser Zustand über längere Zeit andauert. Das wird durch den Integralwert ermittelt. Der Integralwert summiert die Soll-Ist-Differenzen über der Zeit auf. Er hat ebenfalls Einfluss darauf, ob die Heizung wärmt oder nicht. Wenn diese Aufsummierung einen definierten Wert überschreitet (Integralanteil P30), dann wird ebenfalls die HEizung eingeschaltet. Ebenso dient eine länger andauernde ÜBERschreitung der Heizkurve als Ausschaltkriterium.
   Der Integralwert ist die rote Linie in "Mythz_Plot2_HC1Offset_Integral".

Der Unterschied zwischen Vor- und Rücklauftemperatur ("Spreizung") zeigt die Wärmeabgabe ans Gebäude. Je größer die Spreizung, desto mehr von der erzeugten Wärme wurde auch tatsächlich an die Fußbodenheizung (FBH) abgegeben. Eine geringe Spreizung bedeutet, dass ein hoher Teil der Wärmeenergie ungenutzt zur Anlage zurück fließt => ineffizient. edit 31.12.2018: Andererseits ist bei hoher Spreizung auch die Vorlauftemperatur, die die Anlage erzeugen muss, höher (=> ebenfalls ineffizient) und die mittlere Fußboden-Übertemperatur (Temperaturerhöhung über Raumtemperatur) ist bei geringer Spreizung höher, was wiederum zulasten der Effizienz geht. Bei einer hohen Durchflussgeschwindigkeit (hohe Pumpenleistung) hat das Wasser wenig Zeit, seine Temperatur an die FBH abzugeben; bei niedriger Durchflussgeschwindigkeit entsprechend mehr Zeit. Mit anderen Worten: die Spreizung wird über die Pumpenleistung eingestellt. Ich habe so ungefähr 5K eingestellt. Gemessen habe ich das (natürlich mitten in einer Heizphase) mit einem Infrarotthermometer an den Heizkreisverteilern (Vor- bzw. Rücklauf-Verteilerschienen).
Dabei muss man aber aufpassen: eine Erhöhung der Spreizung verringert natürlich die Werte der Heizkreis-Ist-Temperatur, d.h. es kann sein, dass man nach einer Veränderung der Pumpenleistung eine Korrektur der Heizkurve (Parallelverschiebung) vornehmen muss.

Für das Einschalten der Zusatzheizung kann man einen Schwellwert definieren: BIVALENZPUNKT P78. Erst wenn es kälter wird als der dort eingestellte Wert darf die Zusatzheizung überhaupt heizen. Diese Temperatur bescheibt praktisch die kälteste Außentemperatur, bei der die Wärmepumpe das Gebäude noch alleine, ohne Unterstützung durch die Zusatzheizung, beheizen kann.
Achtung - hier lauert eine Falle: angenommen, der Bivalenzpunkt ist auf -7°C eingestellt und der Kompressor fällt wegen eines Defekts bei einer Außentemperatur von -5°C aus, dann wird er nicht nahtlos durch die Zusatzheizung ersetzt. Weil -5° > P78 ist, ist der Zusatzheizung die Arbeit untersagt. ==> Im Fehlerfall muss der Bivalenzpunkt auf einen höheren Wert gestellt werden, sonst bleibt die Bude kalt.

Wie man sieht: alles hängt miteinander zusammen. Man kann nicht einfach mal schnell einen Wert ändern, sondern man muss vorher verstanden haben, welche anderen Werte dadurch ebenfalls beeinflusst werden.

Noch ein paar grundsätzliche Worte zu der oft gescholtenen Zusatzheizung (Nacherwärmung, Heizstab, ... es gibt viele Namen dafür). Prinzip bedingt kann eine Luft-WP bei kalten Außentemperaturen nicht gut arbeiten. Sie soll aus -20°C kalter Luft noch Wärme entnehmen - das ist schwierig. Das muss einem aber schon klar sein, bevor man sich für eine solche Anlage entscheidet.

 =================================================================================

edit 8.3.2015:
* fhem.cfg korrigiert (Fehler bei den userReadings => return_temp hatte gefehlt)
* die neue fhem.cfg enthält eine USB-Portdefinition lt. diesem Beitrag. Die normalerweise übliche Portdefinition ist in auskommentierter Form ebenfalls enthalten ==> bitte ffg. entsprechend ändern. edit 7.11.2015:
* fhem.cfg upgedatet:  an einigen Stellen 'if' durch 'IF' ersetzt => Code wird einfacher
* die neue fhem.cfg enthält eine automatische Umschaltung zwischen Automatic- und Warmwassermodus, abhängig von Außen- und Innentemperatur; die Temperatureinstellungen im Code sind für mein Haus optimiert; evtl. müsst ihr die Werte noch ändern, um es für eure Häuser passend zu machen
* die neue fhem.cfg enthält eine Synchronisierung der THZ-Uhr mit dem FHEM-Server  edit 26.4.2016:
* fhem.cfg upgedatet:  die userReadings-Definitionen brauchen neuerdings ein .* am Ende edit 23.8.2016:
* Inzwischen existiert auch eine automatische Regelung der Lüfterstufen, hier gehts weiter: https://forum.fhem.de/index.php/topic,33452.msg458926.html#msg458926. edit 7.1.2017:
* Wiki zur grundsätzlichen Funktion und Erklärung der Heizkurven angehängt edit 18.1.2017:
* Inzwischen existiert auch ein Statusdisplay:
https://forum.fhem.de/index.php/topic,33452.msg563529.html#msg563529 edit 31.12.2018:
* Text zum Thema Spreizung geändert, oben in blau markiert

belu:
Danke Willy für diese ausführliche Hilfe,

ich hab auch noch was entdeckt was ich so nicht vernommen habe. Direkt auch ne kleine Verbesserung:

Anbei die Fehlerliste Tecalor-Fehlermeldungen_304-404.txt updatet mit den Fehler der THZ / LWZ 304 404.


--- Code: ---define Mythz.alarm_failure notify Mythz { if (((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]) > ReadingsVal("Mythz","number_of_faults_old",0)) { DebianMail('mail@online.com','Tecalor Mythz Alarm - ERROR','Fehlermeldung: '. $EVENT,'./Tecalor-Fehlermeldungen_304-404.txt');; fhem("setreading Mythz number_of_faults_old ". ((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]));; } }
attr Mythz.alarm_failure room Heizung
--- Ende Code ---

LG

Belu

willybauss:
Da habe ich doch beim lesen Deiner Antwort bemerkt, dass ich vergessen hatte, die Datei mit den Fehlermeldungen anzuhängen. Das habe ich jetzt gleich nachgeholt.

Ich vermute, Dein Code ist bis auf den Namen der Datei (Endung _304.404) identisch mit meinem, richtig?

belu:
Naja bin schon in der Lage die Suchfunktion zu benutzen, ja bis auf die Endung ist es gleich, es gibt eigentlich auch nur mehr Fehler, die anderen habe ich geprüft und sind identisch.

Deswegen kannst die Eigentlich umbenennen und fertig.

achja das DebianMail ist etwas Tricky... Hatte etwas Probleme damit, kleines SendMail Howto und jetzt läuft es nach dem auch auch die Berechtigung korrigiert hattte von der Textdatei  ;D

willybauss:
 
--- Zitat von: belu am 07 Februar 2015, 16:42:34 ---achja das DebianMail ist etwas Tricky... Hatte etwas Probleme damit, kleines SendMail Howto und jetzt läuft es nach dem auch auch die Berechtigung korrigiert hattte von der Textdatei  ;D

--- Ende Zitat ---
Man darf halt für die 99_myUtils.pm nicht den Originalcode aus dem Wiki verwenden, sondern den, den ich oben angehängt habe. Ich habe das anhängen von Attachments dazu gebastelt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln