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

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

Vorheriges Thema - Nächstes Thema

willybauss

Ich hatte ein ähnliches Problem in meiner Werkstatt im Keller. Aus Kostengründen haben wir im Keller keine Fußbodenheizung. Statt dessen habe ich einen 3-reihigen Heizkörper, ca. 1,5 x 1m. Der war nie ausreichend, weil die Vorlauftemperatur für die FBH ausgelegt ist. Jetzt habe ich sehr erfolgreich einen Heizkörperlüfter von Ecospal angebracht. Seither wird die Werkstatt gut warm und ich habe eine sensationell hohe Spreizung von ca. 10K: Vorlauf ca. 32,5°C, Rücklauf 22°C. Der Lüfter wirkt wie eine 3-fache Größe des Heizkörpers. Wenn es also eine Möglichkeit zur Nachrüstung gibt ...
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Stonemuc

Zitat von: Stonemuc am 03 Januar 2019, 20:48:47
Also meine Heizung bricht das Heizen täglich immernoch um 10 Uhr ab....

Kannst du mir diesen setreading Befehl anhand deines Beispiels mal kurz erklären? Ich check das noch nicht so zu 100% - bei mir wurde unter thz nämlich kein zusätzliches Reading erzeugt.

setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])},

Normal sollte doch unter Mythz ein reading mit dem Namen preventHCcancelDuringReset p01RoomTempDayHC1 erzeugt werden und dieses dann mit der aktuellen Temperatur befüllt werden. Aber was genau bedeutet das :d hinten am Code?

Ich muss mich jetzt auch nochmal selbst zitieren, nachdem ich mich hier jeden Tag über das Abbrechen des Heizzykluses ärger, hab ich heute mal im log nachgeschaut - er kennt bei mir das reading Mythz:integral nicht....ich hab mich hier damals nach der Standartinstallation gehalten. Da ist der Wert als integralHeat unter sHC1 enthalten. Ich habe jetzt das userreading mal angelegt und schau mal ob es nun passt...

Mythz.preventHCcancelDuringReset: IF: unknown reading: Mythz:integral

FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

TheTrumpeter

Zitat von: Stonemuc am 06 Januar 2019, 10:33:36
Ich muss mich jetzt auch nochmal selbst zitieren, nachdem ich mich hier jeden Tag über das Abbrechen des Heizzykluses ärger, hab ich heute mal im log nachgeschaut - er kennt bei mir das reading Mythz:integral nicht....ich hab mich hier damals nach der Standartinstallation gehalten. Da ist der Wert als integralHeat unter sHC1 enthalten. Ich habe jetzt das userreading mal angelegt und schau mal ob es nun passt...

Mythz.preventHCcancelDuringReset: IF: unknown reading: Mythz:integral
Du musst natürlich die entsprechenden User-Readings haben...
Hier mal alle meine Readings, damit läuft es jedenfalls...
Vorlauftemperatur_extern:sHC1.* {round(ReadingsVal("ADC.CH5678","Channel4",0)*5,1)},
Rel_humidity:sGlobal.* {((split ' ',ReadingsVal("Mythz","sGlobal",0))[67])},
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])},
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]},
HeatingCooling:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[5]-(split ' ',ReadingsVal("Mythz","sDisplay",0))[23]},
HeatingDHW:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[7]},
BoosterHC:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[9]},
FilterBoth:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[11]},
PumpHC:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[15]},
Defrost:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[17]},
Cooling:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[23]},
Service:sLast10errors.* {(split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]},
dhw_mode:sDHW.* {(split ' ',ReadingsVal("Mythz","sDHW",0))[17]},
hc_mode:sHC1.* {(split ' ',ReadingsVal("Mythz","sHC1",0))[19]},
integral:sHC1.*  {(split ' ',ReadingsVal("Mythz","sHC1",0))[7]},
Zuluft:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[55]*4},
Abluft:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[53]*4},
ElectrCooling_24h:sGlobal.* {((ReadingsVal("Mythz","Cooling",0))>0)?(((split ' ',ReadingsVal("Mythz","sGlobal",0))[77])/3600):0},
ElectrCooling_Total:sGlobal.* integral {((ReadingsVal("Mythz","Cooling",0))>0)?(((split ' ',ReadingsVal("Mythz","sGlobal",0))[77])/3600):0},
CoolHC_Day:sCoolHCTotal.* difference {ReadingsNum("Mythz","sCoolHCTotal",0)},
Ventilation:sDisplay.* {ReadingsVal("Mythz","fanstage",0) . (split ' ',ReadingsVal("Mythz","sDisplay",0))[13]},
outputVentilatorSpeed:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[59]},
HC1_temp:sHC1.*  {(split ' ',ReadingsVal("Mythz","sHC1",0))[13]},
HC1_soll:sHC1.*  {(split ' ',ReadingsVal("Mythz","sHC1",0))[11]},
flow_pressure:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[89]}


Und zu der Frage bzgl. setreading... die Parameter werden im neuen "Gerät" mit Namen "Mythz.preventHCcancelDuringReset" angelegt und nicht bei der Wärmepumpe "Mythz" selbst.
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

TheTrumpeter

Übrigens nimmt der Bug bzgl. "Pumpendauerlauf" ungeahnte Dimensionen an...

Wenn sich die LWZ im "Ferienmodus" befindet und die gefilterte Aussentemperatur unter 0°C fällt, werden die "Schnüffelzyklen" invertiert, d.h. die Umwälzpumpe läuft dann permanent und pausiert zu den Zeitpunkten, an denen die Schnüffelzyklen laufen sollten...
Mit Ende des "Ferienmodus" nimmt's wieder die gewohnte Form mit sporadischen 1h-dauernden Dauerläufen bei gefilterter Aussentemperatur unter 0°C an.


EDIT: Da fällt mir grad auf, dass es gar nicht richtig "invertiert" ist. Die Schnüffelzyklen sollten alle 40min sein, wenn der Bug auftritt, läuft die Pumpe aber exakt 1h, pausert dann für 5min (Schnüffelzyklus) und läuft dann wieder exakt 1h.  :o
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

BigNose82

War das nur mal eine Spielerei oder nutzt du den Modus wirklich? Diese ganzen Sonderprogramme sind aus meiner Sicht nichts für Anwender wie "uns" weil wir jeden Betriebszustand mit ein paar Klicks oder Codezeilen auch im Automatikmodus herbeiführen können. Daher würde ich mir auch keine Gedanken zu unerklärlichen Phänomenen machen :)
LWZ 304 Trend - Hausautomatisierung über z-wave mit dem Fibaro HC2

TheTrumpeter

Ja nutzte ich bisher schon... ist eine Einstellung in der LWZ und alles funktioniert, egal ob der RasPi abschmiert oder nicht. Wenn ich nach Hause komme, ist alles wieder umgestellt und warm.

Funktioniert beispielsweise die Feuchteschutzlüftung im Automatikmodus bei "manipulierten" Parametern? Das wüsste ich nicht ad hoc...
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

BigNose82

Hmmm. Ok, du hast jetzt schon öfter auf die Ausfallsicherheit angespielt. Das scheint dir extrem wichtig zu sein.

Wenn wir längere Zeit weg sind, schalte ich auf WW-Betrieb mit 10 °C Sollwert. Die Lüftung fährt ohnehin auf 80/80 sobald niemand mehr zu Hause ist. Ganz aus ist keine Option, da dies Wachstum begünstigt. Im Winter wird zusätzlich die RT auf 10 °C abgesenkt (Nur wenn wir länger als ein paar Tage unterwegs sind) und eineinhalb Tage vor der Rückreise dann wieder auf den Normalwert. WW starte ich erst wenns gebraucht wird. I.d.R. rennt man ja vom Auto nicht direkt in die Dusche ;D
Das alles über das ISG. Und wenn ich doch mal - warum auch immer - nicht per VPN in mein Netzwerk komme - joa :) dann ists halt kalt. 
LWZ 304 Trend - Hausautomatisierung über z-wave mit dem Fibaro HC2

Stonemuc

2019.01.08 09:59:15 1: PERL WARNING: Bareword found where operator expected at (eval 624845) line 1, near "' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF"
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: (Missing operator before IF?)
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: Number found where operator expected at (eval 624845) line 1, near "p01RoomTempDayHC1 15"
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: (Do you need to predeclare p01RoomTempDayHC1?)
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: Number found where operator expected at (eval 624845) line 1, near "p02RoomTempNightHC1 15"
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: (Do you need to predeclare p02RoomTempNightHC1?)
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: Bareword found where operator expected at (eval 624845) line 1, near "180 quiet"
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: PERL WARNING: (Missing operator before quiet?)
2019.01.08 09:59:15 3: eval: {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}
2019.01.08 09:59:15 1: ERROR evaluating {if((ReadingValIf('Mythz','HeatingHC','') == 1) && (ReadingValIf('Mythz','Integral','') < (ReadingValIf('Mythz','p30integralComponent','(-?\d+(\.\d+)?)')/4*3)) && (ReadingValIf('Mythz','dhw_temp','') > 40)){fhem('get Mythz p01RoomTempDayHC1');fhem(' get Mythz p02RoomTempNightHC1');fhem(' setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 21');fhem(' setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 20');fhem(' set Mythz p01RoomTempDayHC1 27');fhem(' set Mythz p02RoomTempNightHC1 27');fhem(' sleep 180 quiet; set Mythz p01RoomTempDayHC1 21; set Mythz p02RoomTempNightHC1 20;}else{fhem(' IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, )')}}: Can't find string terminator "'" anywhere before EOF at (eval 624845) line 1.

2019.01.08 09:59:15 3: Mythz.preventHCcancelDuringReset: Can't find string terminator "'" anywhere before EOF at (eval 624845) line 1.


Irgendetwas stimmt da immernoch nicht - kann da mal jemand drüber schauen? Ich finde den Fehler nicht...
So siehte es in meiner fhem.cfg aus:

define Mythz.preventHCcancelDuringReset at *09:59:15 IF (([Mythz:HeatingHC] == 1) && ([Mythz:Integral] < ([Mythz:p30integralComponent:d]/4*3)) && ([Mythz:dhw_temp] > 40)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 27, set Mythz p02RoomTempNightHC1 27, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, ) ELSE ( IF (([Mythz:HeatingHC] == 0) && ([Mythz:HeatingDHW] == 0) && ([Mythz:PumpHC] == 1) && ([Mythz:dhw_temp] < 38)) (get Mythz p01RoomTempDayHC1, get Mythz p02RoomTempNightHC1, setreading Mythz.preventHCcancelDuringReset p01RoomTempDayHC1 {([Mythz:p01RoomTempDayHC1:d])}, setreading Mythz.preventHCcancelDuringReset p02RoomTempNightHC1 {([Mythz:p02RoomTempNightHC1:d])}, set Mythz p01RoomTempDayHC1 15, set Mythz p02RoomTempNightHC1 15, sleep 180 quiet, set Mythz p01RoomTempDayHC1 {([Mythz.preventHCcancelDuringReset:p01RoomTempDayHC1:d])}, set Mythz p02RoomTempNightHC1 {([Mythz.preventHCcancelDuringReset:p02RoomTempNightHC1:d])}, ))
attr Mythz.preventHCcancelDuringReset room Heizung

So sieht's in meiner fhem.cfg
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

TheTrumpeter

Zitat von: Stonemuc am 08 Januar 2019, 17:03:13
Irgendetwas stimmt da immernoch nicht - kann da mal jemand drüber schauen? Ich finde den Fehler nicht...
Ich habe ja gesagt, dass die Erweiterung (der ELSE-Zweig) noch ungetestet ist...
Tatsächlich liefert der ELSE-Zweig bei mir auch eine Fehlermeldung und ich habe den Fehler selbst noch nicht gefunden. Eigentlich ist im ELSE-Zweig nur nochmal das ursprüngliche bereits positiv getestete Kommando drin mit abgeänderten Parametern.
Ich habe heute noch ein paar Leerzeichen an den Zeilenenden eingefügt, weil ich irgendwo mal gelesen habe, dass die an manchen Stellen wichtig sind.

Du kannst einfach mal den Teil ab "ELSE" weglöschen und schauen ob das funktioniert. Bei mir läuft das nämlich.
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

Stonemuc

Danke für den Hinweis - ich hab jetzt mal den ELSE Zweig gelöscht und schau mal was dabei raus kommt.
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Stonemuc

Mal was anderes....habt ihr schonmal was von diesem Enthalpie-Wärmeübertrager LWTF 304 | 404 gehört?
Ist das Teil neu? Scheint ja die Lösung für Probleme mit zu geringer Luftfeuchtigkeit zu sein - kostet allerding auch eine Stange Geld
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

BigNose82

Jep, hab einen drin. Funzt mit einem Minimum an Logik drum rum super. Immer um die 50 %rh.
Darüber haben wir aber vor ein paar Seiten noch ausgiebig diskutiert, als raus kam, dass Trumpeter eine aktive Befeuchtung hat....
LWZ 304 Trend - Hausautomatisierung über z-wave mit dem Fibaro HC2

Stonemuc

Ja...ich hatte da was gelesen, mir war aber nicht klar, dass du den offiziellen Tecalor Enthalpie-Wärmeübetrager drin hast - ich dachte du hast da auch was externes eingebaut. Das kam dann wohl falsch rüber. Was hast du bezahlt? Ich hab ihn gerade auf einer Seite für 699 Euro gefunden, momentan aber anscheinend nicht lieferbar. Überall anders kostet er das doppelte...
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Hashtag#

Hallo miteinander,

entschuldigt wenn ich hier einfach so dazwischen grätsche. Falls ungewünscht bitte löschen oder verschieben.

Ich bin seit gestern gänzlich neu in der Materie (raspberry, FHEM etc.). Auf jeden Fall habe ich mich jetzt ganz gut reingearbeitet, was bei mir jedoch überhaupt nicht klappt, ist dass wenn ich einen plot erstelle, dann bekomme ich keine vernünftige Kurve sondern immer eine Gerade, die vll 1 oder zweimal die Richtung ändert.

Hat jemand eine Idee was ich hier anders machen muss bzw. könnte? Wie gesagt sorry, ich bin komplett neu in der Materie.

LG

willybauss

@Hashtag#:
Deine Frage ist offenbar nicht THZ-spezifisch. Dann wende Dich bitte an die Forenkategorie "Anfängerfragen".
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS