Tecalor THZ Wärmepumpe: Unterschied zwischen den Versionen

Aus FHEMWiki
K (diverse Korrekturen; viele Codebeispiele auf syntaxhighlight umformatiert; Modulautor verlinkt)
 
(25 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Modul
|Name=THZ
|ModPurpose=Anbindung Heizungssteuerung Tecalor
|ModType=d
|ModCmdRef=THZ
|ModForumArea=Heizungssteuerung/Raumklima
|ModTechName=00_THZ.pm
|ModOwner={{Link2FU|205|immi}}
}}
Englisch version [[Tecalor THZ Heatpump]]
Englisch version [[Tecalor THZ Heatpump]]


Hier wird beschrieben wie man mit FHEM eine Tecalor THZ / Stieben Eltron LWZ 303/403/404
Hier wird beschrieben, wie man eine Tecalor THZ / Stiebel Eltron LWZ Wärmepumpe bzw. ein zentrales Lüftungsgerät an FHEM anbinden kann um Werte auszulesen und das Gerät zu steuern.
/SOL Wärmepumpe auslesen steuern kann.


Zum besseren Verständnis: Tecalor ist die Privatkundenmarke von Stieben Eltron. Die Geräte sind absolut baugleich.
Stiebel Eltron vermarktet baugleiche Geräte unter seinem eigenen Namen (z.B. als LWZ) und unter seiner Privatkundenmarke Tecalor (z.B. als THZ).


Nachfolgend wird von der "THZ" gesprochen.
Nachfolgend wird zur Vereinfachung immer von "THZ" gesprochen wenn irgend ein Gerät gemeint ist.


Getestet sind die Versionen 4.09, 4.19, 4.39 und 5.39.  
===Unterstützte Geräte===
Ältere Versionen können funktionieren, das ist jedoch nicht garantiert.
Folgende Geräte sind getestet:
* THZ 303 / LWZ 303
* THZ 304 Integral / THZ 304 eco
* LWZ 304 Trend
* THZ 403 / LWZ 403
* THZ 404 / LWZ 404 / 404 SOL / 404 eco
* THZ 504 / LWZ 504 / LWZ 8CS / THZ 5.5 cool
 
Es ist sehr wahrscheinlich, dass auch andere Geräte funktionieren, z.B. sind die LWA Geräte, wie LWA 403, den LWZ Geräten sehr ähnlich.
 
Die Firmwareversionen 2.06, 4.09, 4.19, 4.39, 05.09, 05.19, 5.39, 07.09 und 07.59 sind uns als funktionsfähig gemeldet. Es ist sehr wahrscheinlich, dass auch andere funktionieren.
 
=== Bekannte Kombinationen von Firmwareversionen und Gerät und Auswahl Parametersatz für 00_THZ.pm soweit bekannt: ===
Einige Nutzer waren so nett, ihren Gerätetyp und Firmwareversion im Forum zu nennen:
* LWZ303i mit Firmware 2.06 [https://forum.fhem.de/index.php?msg=759093]
* THZ304SOL mit sFirmware "version: 05.19", sFirmware-Id "HW: 113 SW: 3.16 Date: DEC 10 2014" [https://forum.fhem.de/index.php?msg=762802]
* LWZ 304 Trend mit sFirmware "version: 05.09", sFirmware-Id "HW: 113 SW: 3.17 Date: FEB 15 2016" running with configured attributes: firmware="5.39technician" [https://forum.fhem.de/index.php?msg=1300498]
* LWZ 304 mit sFirmware "version: 07.09", sFirmware-Id "HW: 242 SW: 7.02 Date: AUG 10 2016" [https://forum.fhem.de/index.php?msg=875110]
* 403SOL mit sFirmware "version: 04.39", sFirmware-Id "HW: 74 SW: 2.08 Date: MAR 9 2011" [https://forum.fhem.de/index.php?msg=893424]
* THZ 504 mit sFirmware "version: 07.59", sFirmware-Id "HW: 239 SW: 4.16 Date: NOV 7 2022"  running with configured attributes: firmware="5.39" [https://forum.fhem.de/index.php?msg=1299094]
 
==Verbindungsmöglichkeiten==
HINWEIS: Diese Anleitung ist für Personen gedacht, die sich mit Elektronik auskennen.
HINWEIS: Diese Anleitung ist für Personen gedacht, die sich mit Elektronik auskennen.
Der Autor und der Entwickler haften nicht für Schäden und geben keine Funktionsgarantie.
Der Autor und der Entwickler haften nicht für Schäden und geben keine Funktionsgarantie.


'''ACHTUNG! Seit Version 0.087 wurden die Parameternamen geaendert!'''<br>
Der hier beschriebene Verbindungsweg wird vom Hersteller nicht offiziell unterstützt, funktioniert aber ausgezeichnet. Es ist der gleiche, den auch die Servicetechniker des Herstellers verwenden.
Dies dient der Vereinheitlichung der Parameternamen. Werte mit "s" sind Statuswerte, solche mit "p" sind Parameter die in der Heizung eingestellt sind.
 
Weitere Infos bei den ausgelesenen Parametern. Nach einem Updaten muessen ggf. Sachen wie readingsGroups, Dashboards, etc. angepasst werden.
=== Neuere Geräte mit USB Anschluss an der Vorderseite ===
Bei der THZ 504 / THZ 5.5 cool / LWZ8CS und der THZ 304 Integral / THZ 304 eco / THZ 404 eco und vermutlich allen neueren Geräten befindet sich ein USB Anschluss hinter der vorderen rechten Tür, die man auch öffnen muss, um an den Wärmetauscher und die Filter zu kommen. Dort oben rechts kann man die USB TYP-B Dose erkennen. Diesen einfach mit einem passenden Kabel mit der FHEM Instanz verbinden. Wenn man einen abgewinkelten Stecker verwendet, kann man die Tür dann auch wieder vorsichtig schließen.


=Verbindungsmöglichkeiten=
Als Baudrate muss bei USB Verbindung 115200 oder 57600 verwendet werden.
==Lokal per RS232 oder USB==
Die THZ hat zwei Anschlüsse die zur Verbindung genutzt werden können.
* Einen Seriellen Anschluss der mit einem MNL-SG3 Stecker genutzt werden kann.
* Einen USB Anschluss der auf der Platine zu finden ist un mit einem TYP-B Kabel funktioniert.
'''ACHTUNG! Der USB Anschluss befindet sich rückseitig auf der Platine die sich hinter der Abdeckung hinter der rechten Türe. Darf nur stromlos verbunden werden. Dazu die Wärmepumpe komplett vom Strom trennen!!!'''


Die Baudarten variieren je nach Hardware- und Softwareversion zwischen 9600 und 115200 bei Seriell. Bei USB liegt diese immer bei 115200.
===RS232 oder USB im Gerät===
Eine Verbindnugsanleitung zum Seriellen Port findet sich hier: [http://robert.penz.name/heat-pump-lwz/ Robert Penz Homepage]
Bei älteren Geräten muss man den USB Anschluss auf der Rückseite der Platine suchen oder einen seriellen Anschluss verwenden.
* Der USB Anschluss, vom Typ-B, befindet sich rückseitig auf der Platine, hinter der Abdeckung hinter der rechten Tür. '''Darf nur stromlos verbunden werden. Dazu die Wärmepumpe komplett vom Strom trennen!'''  Als Baudrate muss bei USB Verbindung 115200 oder 57600 verwendet werden.
* Ältere Geräten bieten auch einen seriellen Anschluss an, der mit einem MNL-SG3 Stecker genutzt werden kann. Eine Verbindungsanleitung zum seriellen Port findet sich hier: [http://robert.penz.name/heat-pump-lwz/ Robert Penz Homepage]. Die Baudraten variieren je nach Hardware- und Softwareversion zwischen 9600 und 115200 bei Seriell.


==Entfernte Verbindung mit Ser2Net==
===Entfernte Verbindung mit Ser2Net===
Wenn die FHEM Zentrale nicht direkt in der Nähe der Heizung steht kann mir Ser2Net gearbeitet werden. Dieses stellt auf einem TCP-Port einen virtuellen seriellen Anschluss zur Verfügung.
Wenn die FHEM Zentrale nicht direkt in der Nähe der Heizung steht, kann mit Ser2Net gearbeitet werden. Dieses stellt auf einem TCP-Port einen virtuellen seriellen Anschluss zur Verfügung.


===Installation Ser2Net auf Linux===
====Installation Ser2Net auf Linux====
Um den Serial-Port-Server Ser2Net zu installieren ist auf Linux folgendes zu tun:
Um den Serial-Port-Server Ser2Net zu installieren ist auf Linux folgendes zu tun:
:<code>sudo apt-get install ser2net</code>
:<code>sudo apt-get install ser2net</code>
in der /etc/ser2net.conf (/dev/ttyXXX)
in der /etc/ser2net.conf (/dev/ttyXXX)
:<code>2003:raw:500:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS  </code>
:<code>2003:raw:500:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS  </code>
Der Port kann frei gewählt werden solange er nicht bereits genutzt wird.
Der Port kann frei gewählt werden, solange er nicht bereits genutzt wird.


==Getestete Host-Systeme==
===Getestete Host-Systeme===
Getestet ist dieses Modul auf FritzBox, nas-qnap, Raspberry Pi und MacOS.
Getestet ist dieses Modul auf FritzBox, nas-qnap, Raspberry Pi und MacOS.


=Definition in FHEM=
==Definition in FHEM==
==Mit direkter serieller oder USB Verbindung==
===Mit direkter serieller oder USB Verbindung===
:<code>define Mythz THZ /dev/ttyUSB0@115200 # oder (/dev/ttyXXX)</code>
:<code>define Mythz THZ /dev/ttyUSB0@115200 # oder (/dev/ttyXXX)</code>
:<code>attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min</code>
:<code>attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min</code>
Zeile 55: Zeile 83:
:<code>define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz </code>
:<code>define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz </code>


==Via Netzwerk mit Ser2Net==
===Via Netzwerk mit Ser2Net===
:<code>define Mythz THZ 192.168.0.244:2003</code>
:<code>define Mythz THZ 192.168.0.244:2003</code>
:<code>attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min</code>
:<code>attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min</code>
Zeile 62: Zeile 90:
:<code>define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz</code>
:<code>define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz</code>


=Ausgelesene Werte=
==Ausgelesene Werte==
Wenn die Verbindung und das Auslesen erfolgreich waren, sollten Werte wie sGlobal, sFirmware, sHistory und diverse Einstellungen wie die Urlaubszeiten sowie einige PXX Werte angezeigt werden.
Wenn die Verbindung und das Auslesen erfolgreich waren, sollten Werte wie sGlobal, sFirmware, sHistory und diverse Einstellungen wie die Urlaubszeiten sowie einige PXX Werte angezeigt werden.


'''sGlobal (vormals allFB)'''
'''sGlobal (vormals allFB)'''


Beinhaltet alle aktuellen Werte wie Temperaturen von Wasser und Gas, Lüfterstatus, Drücke, usw
Beinhaltet alle aktuellen Werte wie Temperaturen von Wasser und Gas, Lüfterstatus, Drücke, usw.


'''sFirmware'''
'''sFirmware'''
Zeile 79: Zeile 107:
'''pHoliday-Werte'''
'''pHoliday-Werte'''


Hier werden die aktuellen Einstellungen der Urlaubsfunktion der THZ angezeigt. Diese bewirken, dass keine Tagabsenkund (sofern programmiert) gemacht wird.  
Hier werden die aktuellen Einstellungen der Urlaubsfunktion der THZ angezeigt. Diese bewirken, dass keine Tagabsenkung (sofern programmiert) gemacht wird.  
Die holiday-Werte können mittels <code>set</code> auch angepasst werden.
Die holiday-Werte können mittels <code>set</code> auch angepasst werden.


Zeile 89: Zeile 117:


Die pXX-Werte und program-Werte stellen Einstellungen wie Heizkreistemperaturen und Lüfterstufen sowie Heizungs- und Warmwasserprogramme der THZ dar. Alle pXX-Werte und program-Werte können mittels <code>set</code> auch angepasst werden.
Die pXX-Werte und program-Werte stellen Einstellungen wie Heizkreistemperaturen und Lüfterstufen sowie Heizungs- und Warmwasserprogramme der THZ dar. Alle pXX-Werte und program-Werte können mittels <code>set</code> auch angepasst werden.
Es sind auch Lüfterdurchsatzmengen und Pssivkühlung konfiguriertbar.<br>
Es sind auch Lüfterdurchsatzmengen und Passivkühlung konfigurierbar.<br>
pOpMode zeigt den Betriebszustand. Automatik, Handbetrieb, etc...
pOpMode zeigt den Betriebszustand. Automatik, Handbetrieb, etc...


Zeile 114: Zeile 142:


'''pOpMode (ex OperatingMode)'''
'''pOpMode (ex OperatingMode)'''
Betriebsart: Bereitschaft, Automatik, Tagbetrieb, Absenkbetrieb, WW-Betrieb, Manueller Betrieb, Notbetrieb
Betriebsart: Bereitschaft, Automatik, Tagbetrieb, Absenkbetrieb, WW-Betrieb, Manueller Betrieb, Notbetrieb
Wenn die Betriebsart via FHEM geändert werden soll, dann muss als set-Wert die entsprechende englische Bezeichnung gesendet werden (Standby, Automatic, DAYmode, SetBack, DHWmode, Manual, Emergency).


'''sXXX'''
'''sXXX'''


Es gibt noch einige weitere "s"tatus Werte die unter anderen die Wärmerückgewinnungswerte beinhalten.
Es gibt noch einige weitere "s"tatus Werte die unter anderem die Wärmerückgewinnungswerte beinhalten.


= Plots - Grafische Darstellung =
==Plots - Grafische Darstellung==
Nachfolgend wird gezeigt wie man aus den Readings wie sGlobal grafische Plots erstellen kann.
Nachfolgend wird gezeigt, wie man aus den Readings wie sGlobal grafische Plots erstellen kann.


'''Beispiel'''
'''Beispiel'''


Angenommen wir wollen aus sGlobal die outside_temp und die dhw_temp (dhw=domestic hot water = Warmwasser) grafisch darstellen:
Angenommen, wir wollen aus sGlobal die outside_temp und die dhw_temp (dhw=domestic hot water = Warmwasser) grafisch darstellen:


In der fhem.cfg legen wir das Plot an:
In FHEM legen wir das Plot an:
:<code>define Plot_Temp SVG FileLog_Mythz:thz:CURRENT</code>
:<code>define Plot_Temp SVG FileLog_Mythz:thz:CURRENT</code>
:<code>attr Plot_Temp room Heizung</code>
:<code>attr Plot_Temp room Heizung</code>


Daraufhin wird das Plot erzeugt, noch ohne Daten und evtl mit einer Fehlermeldung.
Daraufhin wird das Plot erzeugt, noch ohne Daten und evtl. mit einer Fehlermeldung.
Hier klicken wir dann auf den Plot-Namen um in das Plot-Konfigurationsfenster zu kommen.
Hier klicken wir dann auf den Plot-Namen um in das Plot-Konfigurationsfenster zu kommen.
Hier tragen wir die entsprechenden Daten ein.
Hier tragen wir die entsprechenden Daten ein.
Zeile 137: Zeile 168:
'''Wichtig sind nun die Input-Felder'''
'''Wichtig sind nun die Input-Felder'''


Unterhalb der Eingabemaske befinden sich die zu Mythz gehörenden Readings die verwendet werden können. Darunter auch sGlobal.
Unterhalb der Eingabemaske befinden sich die zu Mythz gehörenden Readings, die verwendet werden können. Darunter auch sGlobal.


Das sGlobal wird in etwa so aussehen:
Das sGlobal wird in etwa so aussehen:
Zeile 144: Zeile 175:
[[File:Thzplot.jpg|thumb]]
[[File:Thzplot.jpg|thumb]]


Um den richtigen Input zu finden zählen wir die durch Leerzeichen getrennten Daten ab. Somit ist der Wert der outside_temp an Stelle 5, die dhw_temp an Stelle 13.
Um den richtigen Input zu finden, zählen wir die durch Leerzeichen getrennten Daten ab. Somit ist der Wert der outside_temp an Stelle 5, die dhw_temp an Stelle 13.
Diese Zahl tragen wir dann im Input-Feld ein und schon haben wir einen Plot der Daten erzeugt.
Diese Zahl tragen wir dann im Input-Feld ein und schon haben wir einen Plot der Daten erzeugt.


Weitere Infos zu [http://www.fhemwiki.de/wiki/Plots_erzeugen Plots]
Weitere Infos zu auf der Seite [[Plots erzeugen]].


= einzelne Werte aus den Readings=
== Einzelne Werte aus den Readings==
Um einzelne Werte aus den großen Readings wie sGlobal oder history zu bekommen kann man ein  
Um einzelne Werte aus den großen Readings wie sGlobal oder history zu bekommen, kann man ein userReading verwenden.


userReading verwenden.
Beispiel:
Beispiel:


:<code>attr Mythz userReadings AussenTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]},  
:<code>attr Mythz userReadings AussenTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]},  
VorlaufTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}</code>
VorlaufTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}</code>


Weitere Infos zu userReadings in der [http://fhem.de/commandref_DE.html CommandRef]
Weitere Infos zu userReadings in der {{Link2CmdRef|Lang=de}}


= Hinweise =
== Hinweise ==
* Ein kompletter Refresh aller Werte wird nur beim Systemstart von FHEM gemacht. Dies geschieht sehr langsam um die Performance nicht zu beeinträchtigen. Erst nachdem dieser Refresh (dauert ca. 3-4 Minuten) gelaufen ist wird das interne Polling gestartet.
* Ein kompletter Refresh aller Werte wird nur beim Systemstart von FHEM gemacht. Dies geschieht sehr langsam, um die Performance nicht zu beeinträchtigen. Erst nachdem dieser Refresh (dauert ca. 3-4 Minuten) gelaufen ist, wird das interne Polling gestartet.
*Wenn das Refresh Inervall kürzer oder gleich ist wie der initiale Refresh kann es zu einer Überschneidung kommen was allerdings kein Problem sein sollte.
* Wenn das Refresh Intervall kürzer oder gleich ist wie der initiale Refresh, kann es zu einer Überschneidung kommen, was allerdings kein Problem sein sollte.
* Im Wintermodus kommt roomSetTemp (sHC1) von p01RoomTempDayHC1 und p02RoomTempNightHC1 
* Im Sommermodus kommt roomSetTemp (sHC1) von p01RoomTempDayHC1SummerMode und p02RoomTempNightHC1SummerMode


= Bekannte Probleme =
== Bekannte Probleme ==
Im FHEM Log tauchen bei Ser2Net Verbindung häufig folgende Meldungen auf:
Im FHEM Log tauchen bei Ser2Net Verbindung häufig folgende Meldungen auf:
:<code>2014.03.02 09:41:09 1: 192.168.178.50:2003 disconnected, waiting to reappear
:<code>2014.03.02 09:41:09 1: 192.168.178.50:2003 disconnected, waiting to reappear</code>
2014.03.02 09:41:09 1: 192.168.178.50:2003 reappeared (Mythz)</code>
:<code>2014.03.02 09:41:09 1: 192.168.178.50:2003 reappeared (Mythz)</code>
Dieses Problem ist aktuell nicht gelöst.
Dieses Problem ist aktuell nicht gelöst.


= Release History =
== Release History ==
'''v0.067'''
'''v0.067'''


Zeile 196: Zeile 227:
* Alle programHC1*, programHC2*, programFan* und programDHW* sind nun mit "get" und "set" implementiert
* Alle programHC1*, programHC2*, programFan* und programDHW* sind nun mit "get" und "set" implementiert
* inside_temp  wurde am Ende von allFB hinzugefügt
* inside_temp  wurde am Ende von allFB hinzugefügt
* der Ser2Net connect/disconnet Bug wurde eingedeämmt auf max 1 Logeintrag pro Sekunde
* der Ser2Net connect/disconnet Bug wurde eingedämmt auf max 1 Logeintrag pro Sekunde


'''v0.074'''
'''v0.074'''
Zeile 204: Zeile 235:
'''v0.075'''
'''v0.075'''


interval_last10errors implementiert. Intervall in dem der Fehlerspeicher ausgelesen werden soll
interval_last10errors implementiert. Intervall, in dem der Fehlerspeicher ausgelesen werden soll


'''v0.076'''
'''v0.076'''
Zeile 240: Zeile 271:
* Neue Readings
* Neue Readings
* Angepasste Readingnamen
* Angepasste Readingnamen
'''Inkompatible Änderung: In Version 0.087 wurden die Parameternamen geändert!'''<br>
Dies dient der Vereinheitlichung der Parameternamen. Werte mit "s" sind Statuswerte, solche mit "p" sind Parameter die in der Heizung eingestellt sind.
Weitere Infos bei den ausgelesenen Parametern. Nach einem Updaten müssen ggf. Sachen wie readingsGroups, Dashboards, etc. angepasst werden.


'''v0.089'''
'''v0.089'''
Zeile 259: Zeile 294:
Neue Readings: sHeatDHWDay & sHeatDHWTotal
Neue Readings: sHeatDHWDay & sHeatDHWTotal


= Beispielkonfiguration =
'''v0.096'''
 
Weitere neue Readings: sEletrx... & sHeat...
 
'''v0.097'''
 
Bugfixes
 
'''v0.099'''
 
Raumeinfluss wurde in die Heizkurvengrafik eingebaut
 
'''v0.100'''
 
Neue Parameter: p54MinPumpCycles, p55MaxPumpCycles, p56OutTempMaxPumpCycles, p57OutTempMinPumpCycles
 
'''v0.101'''
 
* keine neuen Features
* Code clean up
* Logs in verbose 5 implementiert
* buffer overflow (Verursacht von sGlobal bei LWZ 303 Firmware 3.19) gefixt
 
'''v0.103'''
 
* Änderung der Kommunikation. Jetzt 10x schneller
* Versionsinformation hinzugefügt
 
'''v0.104'''
 
Delay in der Kommunikation hinzugefügt (aber immer noch 5x schneller)
 
'''v0.105'''
 
* Schnelleres set und get Verhalten
* Dauer des Update beim Start halbiert
* THZ Attribute können ohne Neustart geändert werden
* BugFix
* P83 hinzugefügt (DHWSetSolarTemp)
* Suffix bei den Temp-Werten hinzugefügt. z.B. p04DHWsetDay jetzt p04DHWsetDayTemp
 
'''v0.107'''
 
* p56 and p57 getauscht und repariert
 
'''v0.108'''
 
* Party-Time wurde entfernt da nicht funktionsfähig
* Grouping bei "set programFan_Mo-Fr_0  to  08:00--20:00" --> Einzelne Tage werden automatisch gesetzt
 
'''v0.109'''
 
* Fehlerbehebung bei langen Nachrichten via Seriellem Kabel
 
'''v0.110'''
 
* Bugfix (für seriellen Adapter) trunkating messages (forum 209294)
 
'''v.0111'''
 
* P21,22,23,24,25,29 hinzugefügt
 
'''v0.112'''
 
* Bugfix für Fehler verursacht durch DevIo.pm 6980 status disconnected msg223569
 
'''v0.113'''
 
* Unterstützung für ältere Firmewareversionen hinzugefügt
 
'''v0.114'''
 
* Unterstützung für ältere Firmewareversionen hinzugefügt
 
'''v0.115'''
 
* Implementierung von "Informationen aus dem Modul des HeatpumpMonitor von Robert Penz". Alle nicht identifizierbaren Teile erhalten den Wert "n.a."
 
'''v0.116'''
 
* weitere Unterstützung für ältere Firmewareversionen hinzugefügt
 
'''v0.118'''
 
* faultcode implementiert
* Rechtschreibefehler korrigiert: evuRelease
 
'''v0.119'''
* der Firmwareparameter 2.06 erhöht den Maximalcount der Wiederholung von DevIo_SimpleReadWithTimeout von 24 auf 50
* Reduktion des DevIo_SimpleReadWithTimeout von 0.06 auf 0.02
* Der Firmwareparameter 2.06 entfernt jetzt Register, die von älteren Wärmepumpen nicht unterstützt werden
 
'''v0.120'''
 
* Verzögerung zwischen programXXX_YY zugefügt
 
'''v0.121'''
 
* Register Interpretation von user godmorgon implementiert
* register 17 für ältere Firmwareversionen implementiert


'''v0.122'''
* pXX Register für ältere Firmwareversionen implementiert
* maximale Widerholungen jetzt limitiert auf 60, zuvor 50
* actualPower_Qc: gepatcht um Pufferüberlauf zu vermeiden
'''v0.123'''
* actualPower_Qc und actualPower_pEl korrigiert
'''v0.124'''
* Verlaufsregister angelegt für Firmwareversion 2.06
'''v.0125'''
* Anpassungen um die Firmware 2.06 zu unterstützen
'''v.0126'''
* Weitere Anpassungen um die Firmware 2.06 zu unterstützen
'''v0.127'''
* Bugfix:Unterschied in Parsingregel für FCtime
'''v0.128'''
* Die meisten Paramter können jetzt von WP älterer Firmware gelesen werden
'''v0.129'''
* sDisplay (Aktivitätsparameter die im Display dargestellt werden)
'''v0.130'''
* 2 Bugfixes
* Firmware-id  enthält neue Feature wie HW: 74 SW: 2.08 Date: MAR 9 2011
* neuer Parameter p99RoomThermCorrection implementiert
* THZ_PrintcurveSVG (Heizkurve) wird jetzt durch p99RoomThermCorrection beeinflusst
'''v0.131'''
* p35PasteurisationInterval,p35PasteurisationTemp,  p34BoosterDHWTempAct, p99DHWmaxFlowTemp, p89DHWeco hinzugefügt
'''v0.132'''
* p99startUnschedVent hinzugefügt
* Aufteilung großer Register implementiert. Nötig für Firmware 2.06.
* Heizkurven jetzt auf 15...35°C begrenzt für bessere Darstellung des Kurvenverlaufs
'''v0.133'''
* p12 FanStageManual hinzugefügt
* Autoskalierung der Heizkurvenskala
'''v0.133+'''
* fixed: Laut Bedienungsanleitung ist p99RoomThermCorrection der Parameter P76
== Beispielkonfiguration ==
'''Start Definition mit Ser2Net'''
'''Start Definition mit Ser2Net'''
 
<syntaxhighlight lang="Perl">
<code>
define Mythz THZ 192.168.111.5:2003
define Mythz THZ 192.168.111.5:2003<br>
attr Mythz room Sysintern
attr Mythz room Sysintern
</code>
</syntaxhighlight>


'''userReadings'''
'''userReadings'''
[[File:dash.jpg|thumb]]
[[File:dash.jpg|thumb]]
<syntaxhighlight lang="Perl">
attr Mythz userReadings AussenTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]}, VorlaufTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}, RuecklaufTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[5]}, WWTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[9]}, KollektorTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[79]}
</syntaxhighlight>


<code>
'''interval Definitionen'''
attr Mythz userReadings AussenTemp:sGlobal {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]}, VorlaufTemp:sGlobal {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}, RuecklaufTemp:sGlobal {(split ' ',ReadingsVal("Mythz","sGlobal",0))[5]}, WWTemp:sGlobal {(split ' ',ReadingsVal("Mythz","sGlobal",0))[9]}, KollektorTemp:sGlobal {(split ' ',ReadingsVal("Mythz","sGlobal",0))[79]}
<syntaxhighlight lang="Perl">
</code>
attr Mythz interval_sGlobal 300  
 
attr Mythz interval_sHistory 28800  
'''interval Defintionen'''
attr Mythz interval_sLast10errors 120  
 
</syntaxhighlight>
<code>
attr Mythz interval_sGlobal 300 <br>
attr Mythz interval_sHistory 28800 <br>
attr Mythz interval_sLast10errors 120 <br>
</code>


'''Definition von file-log und den SVG-Plots einiger Daten'''
'''Definition von file-log und den SVG-Plots einiger Daten'''
 
<syntaxhighlight lang="Perl">
<code>
define FileLog_Mythz FileLog ./log/Mythz-%Y-%m.log Mythz
define FileLog_Mythz FileLog ./log/Mythz-%Y-%m.log Mythz<br>
define wal_0 SVG FileLog_Mythz:thz:CURRENT
define wal_0 SVG FileLog_Mythz:thz:CURRENT<br>
attr wal_0 room Heizung
attr wal_0 room Heizung<br>
define wal_1 SVG FileLog_Mythz:thz1:CURRENT
define wal_1 SVG FileLog_Mythz:thz1:CURRENT<br>
attr wal_1 room Heizung
attr wal_1 room Heizung<br>
define wal_2 SVG FileLog_Mythz:thz2:CURRENT
define wal_2 SVG FileLog_Mythz:thz2:CURRENT<br>
attr wal_2 room Heizung
attr wal_2 room Heizung<br>
define wal_3 SVG FileLog_Mythz:thz3:CURRENT
define wal_3 SVG FileLog_Mythz:thz3:CURRENT<br>
attr wal_3 room Heizung
attr wal_3 room Heizung<br>
define wal_4 SVG FileLog_Mythz:thz4:CURRENT
define wal_4 SVG FileLog_Mythz:thz4:CURRENT<br>
attr wal_4 room Heizung
attr wal_4 room Heizung<br>
</syntaxhighlight>
</code>


'''readingsGroup'''
'''readingsGroup'''
 
<syntaxhighlight lang="Perl">
<code>
define rg_thz readingsGroup Mythz:<%temp_outside>,<Aussen>,AussenTemp Mythz:<%sani_supply_temp@red>,<Vorlauf>,VorlaufTemp Mythz:<%sani_return_temp@blue>,<Rücklauf>,RuecklaufTemp Mythz:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Mythz:<%sani_solar_temp>,<Kollektor>,KollektorTemp
define rg_thz readingsGroup Mythz:<%temp_outside>,<Aussen>,AussenTemp Mythz:<%sani_supply_temp@red>,<Vorlauf>,VorlaufTemp Mythz:<%sani_return_temp@blue>,<Rücklauf>,RuecklaufTemp Mythz:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Mythz:<%sani_solar_temp>,<Kollektor>,KollektorTemp
<br>
attr rg_thz alias Heizung Temperaturen
attr rg_thz alias Heizung Temperaturen<br>
attr rg_thz group THZ
attr rg_thz group THZ<br>
attr rg_thz room Sysintern
attr rg_thz room Sysintern<br>
attr rg_thz valueFormat { AussenTemp => '%1.f &deg;C', VorlaufTemp => '%1.f &deg;C', AussenTemp=> '%1.f &deg;C', RuecklaufTemp=> '%1.f &deg;C', WWTemp=> '%1.f &deg;C', KollektorTemp=> '%1.f &deg;C' }
attr rg_thz valueFormat { AussenTemp => '%1.f &deg;C', VorlaufTemp => '%1.f &deg;C', AussenTemp=> '%1.f &deg;C', RuecklaufTemp=> '%1.f &deg;C', WWTemp=> '%1.f &deg;C', KollektorTemp=> '%1.f &deg;C' }
</code>
</syntaxhighlight>


'''Dashboard'''
'''Dashboard'''
 
<syntaxhighlight lang="Perl">
<code>
define MyDashboard Dashboard
define MyDashboard Dashboard<br>
attr MyDashboard dashboard_lockstate unlock
attr MyDashboard dashboard_lockstate unlock<br>
attr MyDashboard dashboard_row top-center
attr MyDashboard dashboard_row top-center<br>
attr MyDashboard dashboard_showhelper 0
attr MyDashboard dashboard_showhelper 0<br>
attr MyDashboard dashboard_showtooglebuttons 0
attr MyDashboard dashboard_showtooglebuttons 0<br>
attr MyDashboard dashboard_tab1groups THZ
attr MyDashboard dashboard_tab1groups THZ<br>
attr MyDashboard dashboard_tab1name micofhem
attr MyDashboard dashboard_tab1name micofhem<br>
attr MyDashboard dashboard_tab1sorting t0c100,THZ,true,170,253
attr MyDashboard dashboard_tab1sorting t0c100,THZ,true,170,253<br>
attr MyDashboard dashboard_tabcount 1
attr MyDashboard dashboard_tabcount 1<br>
attr MyDashboard dashboard_webfrontendfilter WEB
attr MyDashboard dashboard_webfrontendfilter WEB<br>
define MyDashboard_weblink weblink htmlCode {DashboardAsHtml("MyDashboard")}
define MyDashboard_weblink weblink htmlCode {DashboardAsHtml("MyDashboard")}<br>
attr MyDashboard_weblink room DashboardRoom
attr MyDashboard_weblink room DashboardRoom
</code>
</syntaxhighlight>


'''FanSelector für die Lüftungssteuerung'''
'''FanSelector für die Lüftungssteuerung'''
<code>
define FanSelectorDay dummy<br>
attr FanSelectorDay group THZ<br>
attr FanSelectorDay setList 0 1 2 3 offFor60min<br>
attr  FanSelectorDay webCmd 0:1:2:3:offFor60min<br>
attr FanSelectorDay devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3<br>
define Notify_p07FanStageDay notify FanSelectorDay  IF ([FanSelectorDay] eq "offFor60min") (define at_D_offFor60min at +00:59:00 set Mythz p07FanStageDay [Mythz:p07FanStageDay],set Mythz p07FanStageDay 0, setstate FanSelectorDay offFor60min) ELSE (set Mythz p07FanStageDay $EVENT)<br>
define Notify_FanselectorDay notify (Mythz.p07FanStageDay.*) setstate FanSelectorDay $EVTPART1<br>
attr FanSelectorDay room heatpump<br><br>
[[File:fanselectorv2.png|thumb]]
[[File:fanselectorv2.png|thumb]]
define FanSelectorNight dummy<br>
<syntaxhighlight lang="Perl">
attr FanSelectorNight group THZ<br>
define FanSelectorDay dummy
attr FanSelectorNight setList 0 1 2 3 offFor60min<br>
attr FanSelectorDay group THZ
attr  FanSelectorNight webCmd 0:1:2:3:offFor60min<br>
attr FanSelectorDay setList 0 1 2 3 offFor60min
attr FanSelectorNight devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3<br>
attr  FanSelectorDay webCmd 0:1:2:3:offFor60min
define Notify_p08FanStageNight notify FanSelectorNight IF ([FanSelectorNight] eq "offFor60min") (define at_N_offFor60min at +00:59:00 set Mythz p08FanStageNight [Mythz:p08FanStageNight],set Mythz p08FanStageNight 0, setstate FanSelectorNight offFor60min) ELSE (set Mythz p08FanStageNight $EVENT)<br>
attr FanSelectorDay devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
define Notify_FanselectorNight notify (Mythz.p08FanStageNight.*) setstate FanSelectorNight $EVTPART1<br>
define Notify_p07FanStageDay notify FanSelectorDay  IF ([FanSelectorDay] eq "offFor60min") (define at_D_offFor60min at +00:59:00 set Mythz p07FanStageDay [Mythz:p07FanStageDay],set Mythz p07FanStageDay 0, setstate FanSelectorDay offFor60min) ELSE (set Mythz p07FanStageDay $EVENT)
attr FanSelectorNight room heatpump</code>
define Notify_FanselectorDay notify (Mythz.p07FanStageDay.*) setstate FanSelectorDay $EVTPART1
 
attr FanSelectorDay room heatpump
= Links =
</syntaxhighlight>
[https://launchpad.net/heatpumpmonitor Launchpad Heatpumpmonitor]
<syntaxhighlight lang="Perl">
define FanSelectorNight dummy
attr FanSelectorNight group THZ
attr FanSelectorNight setList 0 1 2 3 offFor60min
attr  FanSelectorNight webCmd 0:1:2:3:offFor60min
attr FanSelectorNight devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
define Notify_p08FanStageNight notify FanSelectorNight IF ([FanSelectorNight] eq "offFor60min") (define at_N_offFor60min at +00:59:00 set Mythz p08FanStageNight [Mythz:p08FanStageNight],set Mythz p08FanStageNight 0, setstate FanSelectorNight offFor60min) ELSE (set Mythz p08FanStageNight $EVENT)
define Notify_FanselectorNight notify (Mythz.p08FanStageNight.*) setstate FanSelectorNight $EVTPART1
attr FanSelectorNight room heatpump
</syntaxhighlight>


[http://forum.fhem.de/index.php/topic,13132.0.html Forenthread im FHEM-Forum]
== Links ==
* [https://launchpad.net/heatpumpmonitor Launchpad Heatpumpmonitor]
* {{Link2Forum|Topic=13132|LinkText=Forenthread im FHEM-Forum}}


[[Kategorie:Other Components]]
[[Kategorie:Other Components]]
[[Kategorie:Heizungssteuerung]]
[[Kategorie:Heizungssteuerung]]

Aktuelle Version vom 23. Januar 2024, 12:00 Uhr

THZ
Zweck / Funktion
Anbindung Heizungssteuerung Tecalor
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Heizungssteuerung/Raumklima
Modulname 00_THZ.pm
Ersteller immi
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Englisch version Tecalor THZ Heatpump

Hier wird beschrieben, wie man eine Tecalor THZ / Stiebel Eltron LWZ Wärmepumpe bzw. ein zentrales Lüftungsgerät an FHEM anbinden kann um Werte auszulesen und das Gerät zu steuern.

Stiebel Eltron vermarktet baugleiche Geräte unter seinem eigenen Namen (z.B. als LWZ) und unter seiner Privatkundenmarke Tecalor (z.B. als THZ).

Nachfolgend wird zur Vereinfachung immer von "THZ" gesprochen wenn irgend ein Gerät gemeint ist.

Unterstützte Geräte

Folgende Geräte sind getestet:

  • THZ 303 / LWZ 303
  • THZ 304 Integral / THZ 304 eco
  • LWZ 304 Trend
  • THZ 403 / LWZ 403
  • THZ 404 / LWZ 404 / 404 SOL / 404 eco
  • THZ 504 / LWZ 504 / LWZ 8CS / THZ 5.5 cool

Es ist sehr wahrscheinlich, dass auch andere Geräte funktionieren, z.B. sind die LWA Geräte, wie LWA 403, den LWZ Geräten sehr ähnlich.

Die Firmwareversionen 2.06, 4.09, 4.19, 4.39, 05.09, 05.19, 5.39, 07.09 und 07.59 sind uns als funktionsfähig gemeldet. Es ist sehr wahrscheinlich, dass auch andere funktionieren.

Bekannte Kombinationen von Firmwareversionen und Gerät und Auswahl Parametersatz für 00_THZ.pm soweit bekannt:

Einige Nutzer waren so nett, ihren Gerätetyp und Firmwareversion im Forum zu nennen:

  • LWZ303i mit Firmware 2.06 [1]
  • THZ304SOL mit sFirmware "version: 05.19", sFirmware-Id "HW: 113 SW: 3.16 Date: DEC 10 2014" [2]
  • LWZ 304 Trend mit sFirmware "version: 05.09", sFirmware-Id "HW: 113 SW: 3.17 Date: FEB 15 2016" running with configured attributes: firmware="5.39technician" [3]
  • LWZ 304 mit sFirmware "version: 07.09", sFirmware-Id "HW: 242 SW: 7.02 Date: AUG 10 2016" [4]
  • 403SOL mit sFirmware "version: 04.39", sFirmware-Id "HW: 74 SW: 2.08 Date: MAR 9 2011" [5]
  • THZ 504 mit sFirmware "version: 07.59", sFirmware-Id "HW: 239 SW: 4.16 Date: NOV 7 2022" running with configured attributes: firmware="5.39" [6]

Verbindungsmöglichkeiten

HINWEIS: Diese Anleitung ist für Personen gedacht, die sich mit Elektronik auskennen.

Der Autor und der Entwickler haften nicht für Schäden und geben keine Funktionsgarantie.

Der hier beschriebene Verbindungsweg wird vom Hersteller nicht offiziell unterstützt, funktioniert aber ausgezeichnet. Es ist der gleiche, den auch die Servicetechniker des Herstellers verwenden.

Neuere Geräte mit USB Anschluss an der Vorderseite

Bei der THZ 504 / THZ 5.5 cool / LWZ8CS und der THZ 304 Integral / THZ 304 eco / THZ 404 eco und vermutlich allen neueren Geräten befindet sich ein USB Anschluss hinter der vorderen rechten Tür, die man auch öffnen muss, um an den Wärmetauscher und die Filter zu kommen. Dort oben rechts kann man die USB TYP-B Dose erkennen. Diesen einfach mit einem passenden Kabel mit der FHEM Instanz verbinden. Wenn man einen abgewinkelten Stecker verwendet, kann man die Tür dann auch wieder vorsichtig schließen.

Als Baudrate muss bei USB Verbindung 115200 oder 57600 verwendet werden.

RS232 oder USB im Gerät

Bei älteren Geräten muss man den USB Anschluss auf der Rückseite der Platine suchen oder einen seriellen Anschluss verwenden.

  • Der USB Anschluss, vom Typ-B, befindet sich rückseitig auf der Platine, hinter der Abdeckung hinter der rechten Tür. Darf nur stromlos verbunden werden. Dazu die Wärmepumpe komplett vom Strom trennen! Als Baudrate muss bei USB Verbindung 115200 oder 57600 verwendet werden.
  • Ältere Geräten bieten auch einen seriellen Anschluss an, der mit einem MNL-SG3 Stecker genutzt werden kann. Eine Verbindungsanleitung zum seriellen Port findet sich hier: Robert Penz Homepage. Die Baudraten variieren je nach Hardware- und Softwareversion zwischen 9600 und 115200 bei Seriell.

Entfernte Verbindung mit Ser2Net

Wenn die FHEM Zentrale nicht direkt in der Nähe der Heizung steht, kann mit Ser2Net gearbeitet werden. Dieses stellt auf einem TCP-Port einen virtuellen seriellen Anschluss zur Verfügung.

Installation Ser2Net auf Linux

Um den Serial-Port-Server Ser2Net zu installieren ist auf Linux folgendes zu tun:

sudo apt-get install ser2net

in der /etc/ser2net.conf (/dev/ttyXXX)

2003:raw:500:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS

Der Port kann frei gewählt werden, solange er nicht bereits genutzt wird.

Getestete Host-Systeme

Getestet ist dieses Modul auf FritzBox, nas-qnap, Raspberry Pi und MacOS.

Definition in FHEM

Mit direkter serieller oder USB Verbindung

define Mythz THZ /dev/ttyUSB0@115200 # oder (/dev/ttyXXX)
attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min
attr Mythz interval_sHistory 28800 # Internes Polling Intervall 8h
attr Mythz interval_sLast10errors 120 # Internes Polling Fehlerspeicher
define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz

Wenn die Attribute interval_sGlobal und interval_sHistory nicht definiert sind (oder 0), ist das interne Polling deaktiviert. Natürlich kann das Polling auch mit dem "at" Befehl ausserhalb des Moduls definiert werden.

define Mythz THZ /dev/ttyUSB0@115200 # oder (/dev/ttyXXX)
define atMythzGlobal at +*00:05:00 {fhem "get Mythz sGlobal","1";;return()}
define atMythzHistory at +*08:00:00 {fhem "get Mythz sHistory","1";;return()}
define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz

Via Netzwerk mit Ser2Net

define Mythz THZ 192.168.0.244:2003
attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5min
attr Mythz interval_sHistory 28800 # Internes Polling Intervall 8h
attr Mythz interval_sLast10errors 120 # Internes Polling Fehlerspeicher
define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz

Ausgelesene Werte

Wenn die Verbindung und das Auslesen erfolgreich waren, sollten Werte wie sGlobal, sFirmware, sHistory und diverse Einstellungen wie die Urlaubszeiten sowie einige PXX Werte angezeigt werden.

sGlobal (vormals allFB)

Beinhaltet alle aktuellen Werte wie Temperaturen von Wasser und Gas, Lüfterstatus, Drücke, usw.

sFirmware

Zeigt die Firmware Version der Wärmepumpe.

sHistory

Enthält Angaben zur Betriebsdauer. Beispielsweise die Anzahl der Betriebsstunden der Kompressoren.

pHoliday-Werte

Hier werden die aktuellen Einstellungen der Urlaubsfunktion der THZ angezeigt. Diese bewirken, dass keine Tagabsenkung (sofern programmiert) gemacht wird. Die holiday-Werte können mittels set auch angepasst werden.

sLast10errors

Liest die letzten 10 Fehlercodes aus und stellt diese dar.

pXX-Werte & program-Werte

Die pXX-Werte und program-Werte stellen Einstellungen wie Heizkreistemperaturen und Lüfterstufen sowie Heizungs- und Warmwasserprogramme der THZ dar. Alle pXX-Werte und program-Werte können mittels set auch angepasst werden. Es sind auch Lüfterdurchsatzmengen und Passivkühlung konfigurierbar.
pOpMode zeigt den Betriebszustand. Automatik, Handbetrieb, etc...

party-time

Hier wird die Uhrzeit der Party programmiert. Party-Time regelt die Lüfterstufe (p99FanStageParty) im Party-Modus. Diese kann auch angepasst werden.

sDHW (ex Status_DHW_F3)

Informationen zur Warmwasserbereitung

sHC1 (ex Status_HC1_F4)

Enthält Informationen zum Heizkreis 1

sHC2 (ex Status_HC2_F5)

Heizkreis 2 Informationen

sSol (ex Status_Sol_16)

Informationen zur Solaranlage

pOpMode (ex OperatingMode)

Betriebsart: Bereitschaft, Automatik, Tagbetrieb, Absenkbetrieb, WW-Betrieb, Manueller Betrieb, Notbetrieb

Wenn die Betriebsart via FHEM geändert werden soll, dann muss als set-Wert die entsprechende englische Bezeichnung gesendet werden (Standby, Automatic, DAYmode, SetBack, DHWmode, Manual, Emergency).

sXXX

Es gibt noch einige weitere "s"tatus Werte die unter anderem die Wärmerückgewinnungswerte beinhalten.

Plots - Grafische Darstellung

Nachfolgend wird gezeigt, wie man aus den Readings wie sGlobal grafische Plots erstellen kann.

Beispiel

Angenommen, wir wollen aus sGlobal die outside_temp und die dhw_temp (dhw=domestic hot water = Warmwasser) grafisch darstellen:

In FHEM legen wir das Plot an:

define Plot_Temp SVG FileLog_Mythz:thz:CURRENT
attr Plot_Temp room Heizung

Daraufhin wird das Plot erzeugt, noch ohne Daten und evtl. mit einer Fehlermeldung. Hier klicken wir dann auf den Plot-Namen um in das Plot-Konfigurationsfenster zu kommen. Hier tragen wir die entsprechenden Daten ein.

Wichtig sind nun die Input-Felder

Unterhalb der Eingabemaske befinden sich die zu Mythz gehörenden Readings, die verwendet werden können. Darunter auch sGlobal.

Das sGlobal wird in etwa so aussehen:

2014-03-02_13:07:49 Mythz sGlobal: outside_temp: 3.8 flow_temp: 26.5 return_temp: 27.2 hot_gas_temp: 32.1 dhw_temp: 43.4 flow_temp_HC2: -60 evaporator_temp: 5.3 condenser_temp: 27.4 Mixer_open: 0 Mixer_closed: 0 HeatPipeValve: 0 DiverterValve: 0 DHW_Pump: 0
Thzplot.jpg

Um den richtigen Input zu finden, zählen wir die durch Leerzeichen getrennten Daten ab. Somit ist der Wert der outside_temp an Stelle 5, die dhw_temp an Stelle 13. Diese Zahl tragen wir dann im Input-Feld ein und schon haben wir einen Plot der Daten erzeugt.

Weitere Infos zu auf der Seite Plots erzeugen.

Einzelne Werte aus den Readings

Um einzelne Werte aus den großen Readings wie sGlobal oder history zu bekommen, kann man ein userReading verwenden.

Beispiel:

attr Mythz userReadings AussenTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]},

VorlaufTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}

Weitere Infos zu userReadings in der commandref

Hinweise

  • Ein kompletter Refresh aller Werte wird nur beim Systemstart von FHEM gemacht. Dies geschieht sehr langsam, um die Performance nicht zu beeinträchtigen. Erst nachdem dieser Refresh (dauert ca. 3-4 Minuten) gelaufen ist, wird das interne Polling gestartet.
  • Wenn das Refresh Intervall kürzer oder gleich ist wie der initiale Refresh, kann es zu einer Überschneidung kommen, was allerdings kein Problem sein sollte.
  • Im Wintermodus kommt roomSetTemp (sHC1) von p01RoomTempDayHC1 und p02RoomTempNightHC1
  • Im Sommermodus kommt roomSetTemp (sHC1) von p01RoomTempDayHC1SummerMode und p02RoomTempNightHC1SummerMode

Bekannte Probleme

Im FHEM Log tauchen bei Ser2Net Verbindung häufig folgende Meldungen auf:

2014.03.02 09:41:09 1: 192.168.178.50:2003 disconnected, waiting to reappear
2014.03.02 09:41:09 1: 192.168.178.50:2003 reappeared (Mythz)

Dieses Problem ist aktuell nicht gelöst.

Release History

v0.067

Erstmalige Implementierung in FHEM

v0.068

neuer Befehl f. Party implementiert

v0.069

Deutsche CommandRef hinzugefügt

v0.070

BugFix in Status Bits

v0.071

Bugfix, undefFn verbessert

v0.072

  • Alle programHC1*, programHC2*, programFan* und programDHW* sind nun mit "get" und "set" implementiert
  • inside_temp wurde am Ende von allFB hinzugefügt
  • der Ser2Net connect/disconnet Bug wurde eingedämmt auf max 1 Logeintrag pro Sekunde

v0.074

Jetzt sind auch die Lüfterdurchsatzmengen und die Passivkühlung ausgelesen und änderbar.

v0.075

interval_last10errors implementiert. Intervall, in dem der Fehlerspeicher ausgelesen werden soll

v0.076

Bugfixes und neuer Parameter Status_HC1_F4

v0.078

neue Parameter Status_Sol_16 und Status_DHW_F3

v0.080

  • neue Parameter p49SummerModeTemp und p50SummerModeHysteresis
  • Status_HC1_F4 und Status_HC2_F5 zeigen nun "mode: Summer" (oder Winter)

Die Berechnung des Modus ist wie folgt:

if outsidetemp > p49SummerModeTemp + p50SummerModeHysteresis ---> Summermode
if outsidetemp < p49SummerModeTemp - p50SummerModeHysteresis ---> Wintermode

v0.081

BugFix für Sommer/Wintermodus-Anzeige

v0.084

  • OperatingMode wird nun ausgelesen (read-only)
  • p33BoosterTimeoutDHW (read/write)
  • p79BoosterTimeoutHC (read/write)

v0.085

OperatingMode kann jetzt auch geaendert werden.

v0.087

  • Neue Readings
  • Angepasste Readingnamen

Inkompatible Änderung: In Version 0.087 wurden die Parameternamen geändert!
Dies dient der Vereinheitlichung der Parameternamen. Werte mit "s" sind Statuswerte, solche mit "p" sind Parameter die in der Heizung eingestellt sind. Weitere Infos bei den ausgelesenen Parametern. Nach einem Updaten müssen ggf. Sachen wie readingsGroups, Dashboards, etc. angepasst werden.

v0.089

  • Kommunikation wurde stabilisiert
  • Bugfixes
  • Neue Readings

v0.091

Neue Readings: sHeatRecoveredDay & sHeatRecoveredTotal

v0.094

Bugfixes

v0.095

Neue Readings: sHeatDHWDay & sHeatDHWTotal

v0.096

Weitere neue Readings: sEletrx... & sHeat...

v0.097

Bugfixes

v0.099

Raumeinfluss wurde in die Heizkurvengrafik eingebaut

v0.100

Neue Parameter: p54MinPumpCycles, p55MaxPumpCycles, p56OutTempMaxPumpCycles, p57OutTempMinPumpCycles

v0.101

  • keine neuen Features
  • Code clean up
  • Logs in verbose 5 implementiert
  • buffer overflow (Verursacht von sGlobal bei LWZ 303 Firmware 3.19) gefixt

v0.103

  • Änderung der Kommunikation. Jetzt 10x schneller
  • Versionsinformation hinzugefügt

v0.104

Delay in der Kommunikation hinzugefügt (aber immer noch 5x schneller)

v0.105

  • Schnelleres set und get Verhalten
  • Dauer des Update beim Start halbiert
  • THZ Attribute können ohne Neustart geändert werden
  • BugFix
  • P83 hinzugefügt (DHWSetSolarTemp)
  • Suffix bei den Temp-Werten hinzugefügt. z.B. p04DHWsetDay jetzt p04DHWsetDayTemp

v0.107

  • p56 and p57 getauscht und repariert

v0.108

  • Party-Time wurde entfernt da nicht funktionsfähig
  • Grouping bei "set programFan_Mo-Fr_0 to 08:00--20:00" --> Einzelne Tage werden automatisch gesetzt

v0.109

  • Fehlerbehebung bei langen Nachrichten via Seriellem Kabel

v0.110

  • Bugfix (für seriellen Adapter) trunkating messages (forum 209294)

v.0111

  • P21,22,23,24,25,29 hinzugefügt

v0.112

  • Bugfix für Fehler verursacht durch DevIo.pm 6980 status disconnected msg223569

v0.113

  • Unterstützung für ältere Firmewareversionen hinzugefügt

v0.114

  • Unterstützung für ältere Firmewareversionen hinzugefügt

v0.115

  • Implementierung von "Informationen aus dem Modul des HeatpumpMonitor von Robert Penz". Alle nicht identifizierbaren Teile erhalten den Wert "n.a."

v0.116

  • weitere Unterstützung für ältere Firmewareversionen hinzugefügt

v0.118

  • faultcode implementiert
  • Rechtschreibefehler korrigiert: evuRelease

v0.119

  • der Firmwareparameter 2.06 erhöht den Maximalcount der Wiederholung von DevIo_SimpleReadWithTimeout von 24 auf 50
  • Reduktion des DevIo_SimpleReadWithTimeout von 0.06 auf 0.02
  • Der Firmwareparameter 2.06 entfernt jetzt Register, die von älteren Wärmepumpen nicht unterstützt werden

v0.120

  • Verzögerung zwischen programXXX_YY zugefügt

v0.121

  • Register Interpretation von user godmorgon implementiert
  • register 17 für ältere Firmwareversionen implementiert

v0.122

  • pXX Register für ältere Firmwareversionen implementiert
  • maximale Widerholungen jetzt limitiert auf 60, zuvor 50
  • actualPower_Qc: gepatcht um Pufferüberlauf zu vermeiden

v0.123

  • actualPower_Qc und actualPower_pEl korrigiert

v0.124

  • Verlaufsregister angelegt für Firmwareversion 2.06

v.0125

  • Anpassungen um die Firmware 2.06 zu unterstützen

v.0126

  • Weitere Anpassungen um die Firmware 2.06 zu unterstützen

v0.127

  • Bugfix:Unterschied in Parsingregel für FCtime

v0.128

  • Die meisten Paramter können jetzt von WP älterer Firmware gelesen werden

v0.129

  • sDisplay (Aktivitätsparameter die im Display dargestellt werden)

v0.130

  • 2 Bugfixes
  • Firmware-id enthält neue Feature wie HW: 74 SW: 2.08 Date: MAR 9 2011
  • neuer Parameter p99RoomThermCorrection implementiert
  • THZ_PrintcurveSVG (Heizkurve) wird jetzt durch p99RoomThermCorrection beeinflusst

v0.131

  • p35PasteurisationInterval,p35PasteurisationTemp, p34BoosterDHWTempAct, p99DHWmaxFlowTemp, p89DHWeco hinzugefügt

v0.132

  • p99startUnschedVent hinzugefügt
  • Aufteilung großer Register implementiert. Nötig für Firmware 2.06.
  • Heizkurven jetzt auf 15...35°C begrenzt für bessere Darstellung des Kurvenverlaufs

v0.133

  • p12 FanStageManual hinzugefügt
  • Autoskalierung der Heizkurvenskala

v0.133+

  • fixed: Laut Bedienungsanleitung ist p99RoomThermCorrection der Parameter P76

Beispielkonfiguration

Start Definition mit Ser2Net

define Mythz THZ 192.168.111.5:2003
attr Mythz room Sysintern

userReadings

Dash.jpg
attr Mythz userReadings AussenTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]}, VorlaufTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}, RuecklaufTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[5]}, WWTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[9]}, KollektorTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[79]}

interval Definitionen

attr Mythz interval_sGlobal 300 
attr Mythz interval_sHistory 28800 
attr Mythz interval_sLast10errors 120

Definition von file-log und den SVG-Plots einiger Daten

define FileLog_Mythz FileLog ./log/Mythz-%Y-%m.log Mythz
define wal_0 SVG FileLog_Mythz:thz:CURRENT
attr wal_0 room Heizung
define wal_1 SVG FileLog_Mythz:thz1:CURRENT
attr wal_1 room Heizung
define wal_2 SVG FileLog_Mythz:thz2:CURRENT
attr wal_2 room Heizung
define wal_3 SVG FileLog_Mythz:thz3:CURRENT
attr wal_3 room Heizung
define wal_4 SVG FileLog_Mythz:thz4:CURRENT
attr wal_4 room Heizung

readingsGroup

define rg_thz readingsGroup Mythz:<%temp_outside>,<Aussen>,AussenTemp Mythz:<%sani_supply_temp@red>,<Vorlauf>,VorlaufTemp Mythz:<%sani_return_temp@blue>,<Rücklauf>,RuecklaufTemp Mythz:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Mythz:<%sani_solar_temp>,<Kollektor>,KollektorTemp
attr rg_thz alias Heizung Temperaturen
attr rg_thz group THZ
attr rg_thz room Sysintern
attr rg_thz valueFormat { AussenTemp => '%1.f &deg;C', VorlaufTemp => '%1.f &deg;C', AussenTemp=> '%1.f &deg;C', RuecklaufTemp=> '%1.f &deg;C', WWTemp=> '%1.f &deg;C', KollektorTemp=> '%1.f &deg;C' }

Dashboard

define MyDashboard Dashboard
attr MyDashboard dashboard_lockstate unlock
attr MyDashboard dashboard_row top-center
attr MyDashboard dashboard_showhelper 0
attr MyDashboard dashboard_showtooglebuttons 0
attr MyDashboard dashboard_tab1groups THZ
attr MyDashboard dashboard_tab1name micofhem
attr MyDashboard dashboard_tab1sorting t0c100,THZ,true,170,253
attr MyDashboard dashboard_tabcount 1
attr MyDashboard dashboard_webfrontendfilter WEB
define MyDashboard_weblink weblink htmlCode {DashboardAsHtml("MyDashboard")}
attr MyDashboard_weblink room DashboardRoom

FanSelector für die Lüftungssteuerung

Fanselectorv2.png
define FanSelectorDay dummy
attr FanSelectorDay group THZ
attr FanSelectorDay setList 0 1 2 3 offFor60min
attr  FanSelectorDay webCmd 0:1:2:3:offFor60min
attr FanSelectorDay devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
define Notify_p07FanStageDay notify FanSelectorDay  IF ([FanSelectorDay] eq "offFor60min") (define at_D_offFor60min at +00:59:00 set Mythz p07FanStageDay [Mythz:p07FanStageDay],set Mythz p07FanStageDay 0, setstate FanSelectorDay offFor60min) ELSE (set Mythz p07FanStageDay $EVENT)
define Notify_FanselectorDay notify (Mythz.p07FanStageDay.*) setstate FanSelectorDay $EVTPART1
attr FanSelectorDay room heatpump
define FanSelectorNight dummy
attr FanSelectorNight group THZ
attr FanSelectorNight setList 0 1 2 3 offFor60min
attr  FanSelectorNight webCmd 0:1:2:3:offFor60min
attr FanSelectorNight devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
define Notify_p08FanStageNight notify FanSelectorNight IF ([FanSelectorNight] eq "offFor60min") (define at_N_offFor60min at +00:59:00 set Mythz p08FanStageNight [Mythz:p08FanStageNight],set Mythz p08FanStageNight 0, setstate FanSelectorNight offFor60min) ELSE (set Mythz p08FanStageNight $EVENT)
define Notify_FanselectorNight notify (Mythz.p08FanStageNight.*) setstate FanSelectorNight $EVTPART1
attr FanSelectorNight room heatpump

Links