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

Begonnen von willybauss, 07 Februar 2015, 11:30:16

Vorheriges Thema - Nächstes Thema

The Spirit

Zitat von: friesenjung am 16 Januar 2017, 16:24:06
ich würde mal sagen da mach die Heizung warmes Wasser...

bei Warmwasser sieht das aber auch so aus.
Ist das normal?
Danke
THZ 304 Eco Baujahr 2015

willybauss

Zitat von: TheTrumpeter am 17 Januar 2017, 06:51:53
Umgekehrt könnte ich natürlich auch schauen, wie weit ich den Durchfluss ohne Auswirkung auf den Rücklauf wieder drosseln kann? Oder meinst Du, dass eine Drosselung auch direkt die Rücklauftemperatur beeinflusst?
Das würde dann dazu führen, dass Du keinen einzigen Kreis mehr hast, der komplett offen ist, richtig? Das dürfte eher ineffizient für die Pumpe sein, die gegen unnötig großen Widerstand arbeiten muss. Wenn Du diese Drosselung aber über die Pumpenleistung machst und den Heizkreis komplett offen lässt, dann wird das sinnvoll.

Zitat von: TheTrumpeter am 17 Januar 2017, 06:51:53
Was ich mich dabei noch frage: Sollen die Temperaturen eher zu Beginn, in der Mitte oder am Ende der Heizphase notiert werden?
Gute Frage, weiß ich nicht (mehr). Ich hatte das damals in einer 6-wöchigen Krankheitsphase nach Bandscheibenvorfall gemacht. Da hatte ich Zeit, zig mal zu messen, wahrscheinlich mehrfach pro Heizzyklus. Vollgepumpt mit drogenähnlichen Schmerzmitteln wusste ich ohnehin nicht immer so genau, was ich tue.
Bauchgefühl: am Anfang misst Du eher die erfolgte Auskühlung des Estrichs (also so ne Art "dringender Wärmebedarf"), gegen Ende eher die langfristige Wärmeabgabe des Kreises an den Raum. Das hängt natürlich auch wieder von der Länge der Zyklen ab.

Zitat von: TheTrumpeter am 17 Januar 2017, 06:51:53
Kann ich aus dem Delta direkt auf die Veränderung der Raumtemperatur schließen? Vermutlich nicht, oder?
Klar, Delta kleiner heisst Raum (theoretisch) wärmer, aber nicht Delta 1°K kleiner heisst Raum z.B. 0,5°K wärmer?
Kommt immer drauf an, was für ein Delta Du betrachtest.
Delta Rücklauftemp. eines HK im zeitlichen Verlauf sag Dir, wie sich der Estrich inzwischen aufgewärmt hat. Das wird sich  - irgendwann -  natürlich auf die Raumtemperatur auswirken. Das kann um Stunden verzögert sein.
Delta zwischen Vor- und Rücklauf, also letztlich die Spreizung, hatten wir ja schon.
Delta Raumtemperatur im zeitlichen Verlauf misst natürlich direkt die Entwicklung der Raumtemperatur, logisch.
usw.

Nochmal was zu Rückschlüssen aus der Rücklauftemp. auf die Wärmeabgabe: man kann das nicht so direkt in Formeln packen; man muss immer überlegen. Angenommen du hast 2 identische Räume, Raum 1 mit verklebten Fliesen, Raum 2 unverklebtes, dickes Parkett mit lose verlegter Trittschalldämmung drunter, also die Wärmeabgabe optimal behindert.
Bei identischer Durchflussmenge wird Raum 1 eine geringere Rücklauftemperatur haben als Raum 2, somit eine geringere mittlere Estrichtemperatur. Der erste Anschein würde sagen, dass Raum 2 besser beheizt wird wegen der höheren Estrichtemperatur. In Wirklichkeit schafft es die Wärme nicht, sich durch die Isolation des Bodenaufbaus in den Raum hinein zu arbeiten, deshalb fließt die Wärme ungenutzt in Form erhöhter Rücklauftemperatur zurück. Raum 2 sollte kälter sein als Raum 1.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

Zitat von: friesenjung
ich würde mal sagen da mach die Heizung warmes Wasser...

Zitat von: The Spirit am 17 Januar 2017, 08:06:12
bei Warmwasser sieht das aber auch so aus.
Ist das normal?
Danke

Ich verstehe nicht den Unterschied zwischen "warmes Wasser" und "Warmwasser".

Rätselraten mag ich nicht. Gib uns bitte die üblichen 3 Plots, wie sie z.B. Trumpeter oder awex... in den letzten Beiträgen immer wieder gezeigt hatten. Ohne sowas ist alles Kaffeesatzleserei.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

ioT4db

Zitat von: willybauss am 17 Januar 2017, 08:34:59
Ich verstehe nicht den Unterschied zwischen "warmes Wasser" und "Warmwasser".

Rätselraten mag ich nicht. Gib uns bitte die üblichen 3 Plots, wie sie z.B. Trumpeter oder awex... in den letzten Beiträgen immer wieder gezeigt hatten. Ohne sowas ist alles Kaffeesatzleserei.

sorry mein Fehler. Ich meinte Warmwasser (WW)!
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

awex102

Hallo nochmal zusammen,

nebenbei: Auch bei mir hat die Anlage heute Nacht die HK Pumpe jeweils einmal für eine Stunde nach der Heizphase und eine Stunde vor der Heizphase ohne Grund laufen lassen. Mal weiter beobachten.

Die Sonne scheint grade so schön und ich bin bei 24 Grad Raumtemp. Da kam mir der Gendanke, der Anlage für solche Fälle ein Innenraumfühler zu spendieren. Hilft das in solchen Fällen? Die Anlage müsste heute gar nicht laufen und es wäre mollig warm.

Ich habe kein Kabel dafür im Führungsraum. Daher dachte ich mir: Kann man der Anlage üben fhem einen Fühler vorgaukeln, ich habe ja Raumthermostate, die Messwerte stehen also ini fhem zur Verfügung.

Danke und Gruß

TheTrumpeter

Zitat von: awex102 am 17 Januar 2017, 12:45:44
Kann man der Anlage üben fhem einen Fühler vorgaukeln, ich habe ja Raumthermostate, die Messwerte stehen also ini fhem zur Verfügung.
Du könntest die Raum-Soll-Temperatur selbst anhand der Ist-Temperatur korrigieren, d.h. Du kannst damit die Heizkurve korrigieren. Das wäre vmtl. die einfachste Möglichkeit, geht dann aber auf die Schreibzyklen vom EEPROM.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

awex102

Zitat von: TheTrumpeter am 17 Januar 2017, 13:40:25
geht dann aber auf die Schreibzyklen vom EEPROM.

Ist das sehr kritisch oder überlebt der EEPROM mit diesem Ansatz keine 30 Jahre ;-) ?

TheTrumpeter

Zitat von: awex102 am 17 Januar 2017, 14:04:09
Ist das sehr kritisch oder überlebt der EEPROM mit diesem Ansatz keine 30 Jahre ;-) ?
Kommt darauf an wie oft Du ändern willst.
Irgendwo hier hat schonmal jemand eine Lebensdauerbetrachtung gemacht.
Ich meine mich zu erinnern, dass da mit einer Handvoll Schreibzugriffen pro Tag eine Lebensdauer >15 Jahre berechnet wurde.
Wenn Du die Solltemperatur entsprechend "nachführen" willst, kommst Du natürlich auf ein paarmal pro Tag, aber nur in der Heizperiode.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

willybauss

Zitat von: awex102 am 17 Januar 2017, 12:45:44
Die Sonne scheint grade so schön und ich bin bei 24 Grad Raumtemp. Da kam mir der Gendanke, der Anlage für solche Fälle ein Innenraumfühler zu spendieren. Hilft das in solchen Fällen? Die Anlage müsste heute gar nicht laufen und es wäre mollig warm.

Ich habe kein Kabel dafür im Führungsraum. Daher dachte ich mir: Kann man der Anlage üben fhem einen Fühler vorgaukeln, ich habe ja Raumthermostate, die Messwerte stehen also ini fhem zur Verfügung.
Ja, hilft wirklich. Allerdings wird dann die Heizung im ganzen Haus eingestellt, d.h. der Sonne abgewandte Räume werden dann auch nicht beheizt. Bei mir macht das aber keine Temperatureinbrüche. Ich habe Raumeinfluss bei ca. 60% eingestellt.

Besser wäre ein externes Display im Führungsraum. Kostet mehr, hat aber außer Temperatur- auch einen Feuchtefühler drin. Und es ist halt ziemlich komfortabel, nicht immer gleich in den Keller zu müssen, wenn man  was einstellen will. Meine Frau hat's nicht so mit Bedienung über fhem.

Was auch hilft: den Außentemperatursensor an der Nordostseite montieren, so dass er bei Sonnenschein gleich morgens bei Sonnenaufgang für ne Stunde in der Sonne hängt und so eine zu hohe Außentemperatur gemessen wird. Dann fährt die Heizung ziemlich schnell runter.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

Zitat von: TheTrumpeter am 17 Januar 2017, 13:40:25
... geht dann aber auf die Schreibzyklen vom EEPROM.
Das solltest Du vorher durchkalkulieren. Irgendwo hier wurde mal die maximale Anzahl Schreibzyklen genannt. Wenn Du die frühzeitig überschreitest geht das Mainboard über'n Jordan.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

awex102

Per Funk gibt's da nicht oder ? Im Führungsraum hab ich kein Leerrohr in den heizungsraum liegen.

Über einen raspberry pi und fhem kriege ich keinen enocean funk Fühler an den anlagenanschluss oder, zB per seriellem adapter  ? Bedienteil brauche ich nicht wirklich , habe mir ein Telekom Puls  Tablet an die wand gehängt und schon diverse Readings der Anlage über Tablet ui abgebildet.

willybauss

Lies in der Installationsanleitung zum Thema externer Temperaturfühler. Dort findest Du den zu benutzenden Typ. Der hat eine Kennlinie (Widersstand vs. Temperatur), ist also pure Analogtechnik. Ich könnte mir nicht vorstellen, wie Du diese Kennlinie mit einem Funkfühler nachbilden willst. Ich kenne da nichts.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

immi

Zitat von: awex102 am 17 Januar 2017, 20:13:57
Per Funk gibt's da nicht oder ? Im Führungsraum hab ich kein Leerrohr in den heizungsraum liegen.
You do not need an empty pipe. I found 2 spare current cables going from basement upstairs: I soldered to them my internal temperature sensor. 
For my heatpump KTY81-210-B NXP   --> cost 1.50€
immi

willybauss

Mal was Neues: Statusdisplay

In Anlehnung an die Vorarbeit von andre.k
https://forum.fhem.de/index.php/topic,13132.msg255412.html#msg255412
habe ich mir ein Statusdisplay gebaut. Eingang finden Werte aus sDisplay, sLast10errors und sGlobal, evtl. auch sHC1 (weiß ich grade nicht mehr genau). Die Anzeige der Icons lehnt sich an das Original-Display der Anlage an. Die Icons wechseln je nach Zustand den Inhalt und/oder die Farbe.

Jedenfalls werden aus den o.g. "Multi"Readings die einzelnen Werte per userReading extrahiert und dann in eine ReadingsGroup mit DevStateIcons zusammen gefasst.

Die ReadingsGroup incl. Icon-Definition:
define rg_thz_stat readingsGroup Mythz:<Schaltprogramm_aktiv>,SwitchingProg\
Mythz:<Verdichter>,Compressor\
Mythz:<Heizen>,HeatingHC\
Mythz:<Warmwasserbereitung>,HeatingDHW\
Mythz:<Nachheizstufen>,BoosterHC\
Mythz:<Filterwechsel>,FilterBoth\
Mythz:<Lüftungsstufe_manuell>,VentStage\
Mythz:<Lüftungsstufe_aktuell>,fanstage\
Mythz:<Heizkreispumpe>,PumpHC\
Mythz:<Abtauen>,Defrost\
Mythz:<Störung>,Service
attr rg_thz_stat alias Status
attr rg_thz_stat group THZ
attr rg_thz_stat nonames 1
attr rg_thz_stat room Heizung
attr rg_thz_stat sortby 1
attr rg_thz_stat valueIcon {'SwitchingProg.1'=>'hourglass@red',\
'SwitchingProg.0'=>'hourglass', \
'Compressor.1'=>'sani_garden_pump@red',\
'Compressor.0'=>'sani_garden_pump', \
'HeatingHC.1'=>'sani_heating@red',\
'HeatingHC.0'=>'sani_heating', \
'HeatingDHW.1'=>'sani_water_hot@red',\
'HeatingDHW.0'=>'sani_water_hot', \
'BoosterHC.3'=>'sani_heating_level_100@red',\
'BoosterHC.2'=>'sani_heating_level_80@red',\
'BoosterHC.1'=>'sani_heating_level_60@red',\
'BoosterHC.0'=>'sani_heating_level_0', \
'FilterBoth.1'=>'recycling@red',\
'FilterBoth.0'=>'recycling', \
'VentStage.1'=>'vent_ventilation_level_manual_m@red',\
'VentStage.0'=>'vent_ventilation_level_manual_m', \
'fanstage.3'=>'vent_ventilation_level_3@red', \
'fanstage.2'=>'vent_ventilation_level_2@blue', \
'fanstage.1'=>'vent_ventilation_level_1@green', \
'fanstage.0'=>'vent_ventilation_level_0@red', \
'PumpHC.1'=>'sani_pump@red',\
'PumpHC.0'=>'sani_pump', \
'Defrost.1'=>'frost@red',\
'Defrost.0'=>'frost', \
'Service.1'=>'hue_room_garage@red',\
'Service.0'=>'hue_room_garage', \
\
}


Die userReadings (das sind jetzt alle, die ich habe, also für diesen Zweck ein paar zu viel; die neuen sind ganz unten):
attr Mythz userReadings Rel_humidity:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[67]) + 11.5}, \
flow_temp:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[3])}, \
return_temp:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[5])}, \
outside_temp:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[1])}, \
dhw_temp:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[9])}, \
inside_temp:sHC1.* {((split ' ',ReadingsVal("Mythz","sHC1",0))[27])}, \
CopHC:sHeatRecoveredDay.* {sprintf("%.2f", ReadingsNum("Mythz","sHeatHCDay",1) / ReadingsNum("Mythz","sElectrHCDay",1))}, \
CopDHW:sHeatRecoveredDay.* {sprintf("%.2f", ReadingsNum("Mythz","sHeatDHWDay",1) / ReadingsNum("Mythz","sElectrDHWDay",1))},\
PumpeDHW:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[25]}, \
PumpeHC:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[27]}, \
PumpeSol:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[29]}, \
Compress:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[31]}, \
Boost3:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[33]}, \
Boost2:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[35]}, \
Boost1:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[37]},\
SwitchingProg:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[1]},\
Compressor:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[3]},\
HeatingHC:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[5]},\
HeatingDHW:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[7]},\
BoosterHC:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[9]},\
FilterBoth:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[11]},\
VentStage:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[13]},\
PumpHC:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[15]},\
Defrost:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[17]},\
Service:sLast10errors.* {(split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]}


immi's Code zur Erkennung der aktuellen Lüfterstufe:
define FanStageCurrent DOIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] ) \
(setreading Mythz fanstage 0)\
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] )\
(setreading Mythz fanstage 1)\
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] )\
(setreading Mythz fanstage 2)\
DOELSE\
(setreading Mythz fanstage 3)
attr FanStageCurrent do always
attr FanStageCurrent group THZ
attr FanStageCurrent room Heizung


Ich bräuchte einen Freiwilligen, der es ausprobiert und mir sagt, ob der genannte Code vollständig ist.

edit 18.1.17:
kleine Code-Änderungen (Texte, Icons)

edit 20.1.17:
Korrektur des Filelog, um die Datenlast zu reduzieren.
Die Definion des FileLog_Mythz ändert sich in
/mntUSB/fhem/log/Mythz-%Y-%m.log Mythz:.*_temp.*|Mythz:Cop.*|Mythz:Rel_humidity|Mythz:sB.*|Mythz:sE.*|Mythz:sG.*|Mythz:sH.*|Mythz:sL.*

Bisher waren alle Mythz-Readings im Log, jetzt wird eingeschränkt auf:

        Mythz:.*_temp.*      Temperaturwerte
        Mythz:Cop.*          Cop-Werte
        Mythz:Rel_humidity   Luftfeuchtigkeit
        Mythz:sB.*           StatusReadings beginnend mit Buchstaben  sB, sE, usw.
        Mythz:sE.*
        Mythz:sG.*
        Mythz:sH.*
        Mythz:sL.*

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

TheTrumpeter

Zitat von: willybauss am 17 Januar 2017, 22:13:39
Ich bräuchte einen Freiwilligen, der es ausprobiert und mir sagt, ob der genannte Code vollständig ist.
Kann ich gerne machen... sind die Symbole alle vorhanden, sodass nur die Definitionen in die Konfigurationsdatei kopiert werden müssen?
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110