# Aufruf der Intervalle, hier werden benötigt
attr Mythz interval_sGlobal 300
attr Mythz interval_sHC1 300
attr Mythz interval_sFlowRate 300
attr Mythz interval_sDisplay 300
#userReadings hier werden die Userreagings für das Display generiert
attr Mythz userReadings sD_outsideTemp {(split ' ',ReadingsVal("Mythz","sHC1",0))[1]}, sD_flowTemp {(split ' ',ReadingsVal("Mythz","sHC1",0))[9]}, sD_returnTemp {(split ' ',ReadingsVal("Mythz","sHC1",0))[5]}, sD_insideTempRC {(split ' ',ReadingsVal("Mythz","sHC1",0))[27]}, sD_sFlowRate {(split ' ',ReadingsVal("Mythz","sFlowRate",0))[0]}, sD_dhw_temp {(split ' ',ReadingsVal("Mythz","sDHW",0))[1]}, sD_switchingProg {(split ' ',ReadingsVal("Mythz","sDisplay",0))[1]}, sD_compressor {(split ' ',ReadingsVal("Mythz","sDisplay",0))[3]}, sD_heatingHC {(split ' ',ReadingsVal("Mythz","sDisplay",0))[5]}, sD_heatingDHW {(split ' ',ReadingsVal("Mythz","sDisplay",0))[7]}, sD_boosterHC {(split ' ',ReadingsVal("Mythz","sDisplay",0))[9]}, sD_filterBoth {(split ' ',ReadingsVal("Mythz","sDisplay",0))[11]}, sD_ventStage {(split ' ',ReadingsVal("Mythz","sDisplay",0))[13]}, sD_pumpHC {(split ' ',ReadingsVal("Mythz","sDisplay",0))[15]}, sD_defrost {(split ' ',ReadingsVal("Mythz","sDisplay",0))[17]}, sD_filterUp {(split ' ',ReadingsVal("Mythz","sDisplay",0))[19]}, sD_filterDown {(split ' ',ReadingsVal("Mythz","sDisplay",0))[21]}
#### Status Symbole des Displays werden generiert
define rg_thz_stat readingsGroup \
Mythz:<Schaltprogramm>,sD_switchingProg \
Mythz:<Verdichter>,sD_compressor \
Mythz:<Heizen>,sD_heatingHC \
Mythz:<Warmwasserbereitung>,sD_heatingDHW \
Mythz:<Elektrische_Nachheizstufen>,sD_boosterHC \
Mythz:<Heizkreispumpe>,sD_pumpHC \
Mythz:<Abtauen_Verdampfer>,sD_defrost \
Mythz:<Lüfterstufe>,sD_ventStage \
Mythz:<Filter_oben>,sD_filterUp \
Mythz:<Filter_unten>,sD_filterDown \
Mythz:<Filterwechsel_ou>,sD_filterBoth
#Attribute für Status
attr rg_thz_stat alias Status
attr rg_thz_stat group THZ
attr rg_thz_stat room Sysintern
attr rg_thz_stat nonames 1
# Zuweisung der readings in Verbindung mit Symbolen
attr rg_thz_stat valueIcon {'sD_switchingProg.1'=>'hourglass@blue','sD_switchingProg.0'=>'hourglass', 'sD_compressor.1'=>'sani_garden_pump@blue','sD_compressor.0'=>'sani_garden_pump', 'sD_heatingHC.1'=>'sani_floor_heating_neutral@blue','sD_heatingHC.0'=>'sani_floor_heating_neutral', 'sD_heatingDHW.1'=>'sani_domestic_waterworks@blue','sD_heatingDHW.0'=>'sani_domestic_waterworks', 'sD_boosterHC.1'=>'sani_heating_boost@red','sD_boosterHC.0'=>'sani_heating_boost', 'sD_pumpHC.1'=>'sani_pump@blue','sD_pumpHC.0'=>'sani_pump', 'sD_defrost.1'=>'weather_frost@blue','sD_defrost.0'=>'weather_frost', 'sD_ventStage.1'=>'vent_ventilation_level_3@blue','sD_ventStage.0'=>'vent_ventilation', 'sD_filterUp.1'=>'vent_ventilation_level_manual_m@red','sD_filterUp.0'=>'vent_ventilation_level_automatic', 'sD_filterDown.1'=>'vent_ventilation_level_manual_m@red','sD_filterDown.0'=>'vent_ventilation_level_automatic', 'sD_filterBoth.1'=>'vent_ventilation_level_manual_m@red','sD_filterBoth.0'=>'vent_ventilation_level_automatic'}
# Anzeige der Prozesswerte aus den userreadings von oben
define rg_thz readingsGroup \
Mythz:<%temp_outside>,<Aussentemperatur>,sD_outsideTemp \
Mythz:<%temp_inside>,<Innentemperatur>,sD_insideTempRC \
Mythz:<%sani_supply_temp@red>,<Vorlauf>,sD_flowTemp \
Mythz:<%sani_return_temp@blue>,<Rücklauf>,sD_returnTemp \
Mythz:<%sani_pump>,<Durchfluss>,sD_sFlowRate \
Mythz:<%sani_boiler_temp@BD7800>,<Wassertemperatur>,sD_dhw_temp
# Attribute der Prozesswerte
attr rg_thz alias Prozesswerte
attr rg_thz group THZ
attr rg_thz room Sysintern
# Formatierung der Prozesswerte
attr rg_thz valueFormat { sD_outsideTemp => '%.1f °C', sD_insideTempRC => '%.1f °C', sD_flowTemp => '%.1f °C', sD_returnTemp => '%.1f °C', sD_sFlowRate => '%.1f cl/min', sD_dhw_temp => '%.1f °C' }
Zitat von: belu am 05 Februar 2015, 09:19:28sGlobal (as well as the other multi-data readings) always needs to have same sequence of data (sort order, number of values). Otherwise you wouldn't be able to create gplots or data extraction for other purposes; all data extractions rely on index number inside the data string.
Könnte man da nicht so ne Änderung einbringen das nur geschrieben wird was sich geändert hat.
+*{sunrise_rel("REAL",-3600)} set PV_Zaehler INTERVAL 300
+*{sunset_rel("REAL",+1800)} set PV_Zaehler INTERVAL 3600
Zitat von: belu am 05 Februar 2015, 09:19:28no. I am still searcing for the perfect setting. My actual setting is
Hast du eine Idee wie man das umsetzt?
attr Mythz event-min-interval s.*:4800
attr Mythz event-on-change-reading .*
Zitat von: belu am 06 Februar 2015, 00:27:12
Also meine Raspberry Pi 2 ist heute gekommen. Das wirklich ein Unterschied... Das ist erstmal die bessere Lösung :D
Zitat von: toggle am 06 Februar 2015, 19:07:26before installing the kty81
Are you sure that this is the intended use of insideTempRC? According to the feedback I think that this parameter is only valid if you have a remote control. In my heat pump the returned value is always 21. Shouldn't the additional temp sensor be displayed in sGlobal->roomTemp?
If the analog circuit for the temp sensor is not stabilzed properly any spikes etc. could influence the A/D converter.
Zitat von: immi am 06 Februar 2015, 20:20:21No, I meant the hardware implementation of the A/D part on the main board.
what you mean by stabilizing? you mean shielding the cable?
Zitat von: immi am 06 Februar 2015, 17:00:11I do not yet understand completely. Did you connect the sensor to X5 panel, pin 5 and 6, labeled as "Raumfühler" ?
I installed a internal temp sensor last week-end; The NXP KTY81 component has a terrible off-set of -5k
Zitat von: willybauss am 06 Februar 2015, 21:03:52correct
I do not yet understand completely. Did you connect the sensor to X5 panel, pin 5 and 6, labeled as "Raumfühler" ?
If yes: the temperature of this sensor is shown as sGlobal.insideTemp in the data log.
Zitatnot true in my system
The value sHC1.insideTempRC has nothing to do with this sensor. sHC1.insideTempRC is the value which is read from an external display. If you read out sHC1.insideTempRC values while not having an external display installed I don't believe that you get valid values.
Zitat von: willybauss am 06 Februar 2015, 21:34:59willy
Is the cable a twisted pair type, not routed in parallel to the compressor's power cable?
ZitatI try to move the cable now. It is in the same hole as the power supply of the heatpump.
Zitat von: houseowner123 am 07 Februar 2015, 00:28:15That's the reason why I asked for twisted pair cable. Mine lays in parallel to all the other THZ cables in a cable duct for >4 meters, but without any trouble.
I would think this could be the issue, the induction of the power cable could cause this. Try to move the sensor cable away from there. Just let it hang outside for test purposes.
attr Mythz event-min-interval s.*:4800
attr Mythz event-on-change-reading .*
ZitatOpMode implemented readonly ("1" =>"Standby", "11" => "Automatic", "3" =>"DAYmode", "4" =>"SetBack", "5" =>"DHWmode", "14" =>"Manual", "0" =>"Emergency")It looks like there's a bug in the implementation: FHEM always reports "setback" while in fact the THZ works in automatic mode.
Zitat von: peter456 am 08 Februar 2015, 12:09:58
Hallo alle zusammen,
vielen Dank nochmals an alle Experten hier. Mein FHEM-Monitoring läuft mittlerweile super stabil und ich bekomme auf einer Seite den Überblick über alle wichtigen Werte (siehe Anhang).
Was mir noch fehlt ist die Änderung der Parameter meiner LWZ303i (Firmware 2.06) über FHEM. Wir waren z.B. Anfang des Jahres für eine Woche im Urlaub. Mein Ziel in so einem Zeitraum wäre z.B., dass ich den Sollwert der WW-Bereitung herunterstelle und am letzten Urlaubstag per Internet diesen Sollwert wieder zurückstelle. Meine Frage an Immi wäre, ob es möglich ist für die Firmware 2.06 wenigstens die Parameter "p01-p12" änderbar zu machen?
freundliche Grüße
Peter
"p01RoomTempDay:slider,10,0.1,30,1"
or
"p07FanStageDay:0,1,2,3"
Zitat von: willybauss am 08 Februar 2015, 12:18:55
today I came across an old posting of last yearIt looks like there's a bug in the implementation: FHEM always reports "setback" while in fact the THZ works in automatic mode.
@immi
Could you please have a look into the code?
Thanks
Willy
Zitat von: houseowner123 am 08 Februar 2015, 14:10:56
today I came across an old posting of last yearIt looks like there's a bug in the implementation: FHEM always reports "setback" while in fact the THZ works in automatic mode.
I can confirm this! Seems like a bug.
Zitat von: andre.k am 08 Februar 2015, 12:51:55Hi Andre
@Immi: What do you think about using sliders and list boxes for validation of set values:Code Auswählen"p01RoomTempDay:slider,10,0.1,30,1"
or
"p07FanStageDay:0,1,2,3"
This could increase the usability for gui users a little bit.
Andre
Zitat von: immi am 08 Februar 2015, 15:22:34You're completely right. I just looked in the frequent readings sHC1 and sGlobal, but not in pOpMode. Since I don't use any time programs it's obvious that setback never changes to normal.
maybe we look at different places, therefore please be more specific.
Zitat von: immi am 08 Februar 2015, 15:53:57
Hi Andre
I tried list and slider last year, but on some browser (android) was not working fine.
In 12 monthes, the frontend improved a lot!!... maybe now all issues are gone.
Could you show me just for "p07FanStageDay:0,1,2,3" show would you like to implement?
---------------------------
How do I validate the parameter before writing? easy I check the interval and I round the data.
set Mythz p99FanStageParty 1.7 will set a 1
set Mythz p99FanStageParty 4.7 will give an error with the allowed intervall
Concernig writing to old heatpump, you have the complexity of seveal parameter in one register.
I think the user should not be able to change more than one parameter in one register at the time.
I was thinking to the following:
1) split all register during reading in single parameters
2) for writing "set Mythz p13GradientHC1 0.3", you know that p13GradientHC1 is in register 05. You read it again completely and overwrite only the bytes involved
I started 2) some weeks ago, at line 614 there is also a reminder on what should be done.
immi
my %sets206 = (
"p01RoomTempDay" => {cmd2=>"17", argMin => "10", argMax => "30", pos=>[4, 4, "hex", 10], unit =>" °C"},
"p02RoomTempNight" => {cmd2=>"17", argMin => "10", argMax => "30", pos=>[8, 4, "hex", 10], unit =>" °C"},
"p03RoomTempStandby" => {cmd2=>"17", argMin => "10", argMax => "30", pos=>[12, 4, "hex", 10], unit =>" °C"},
"p04DHWsetDayTemp" => {cmd2=>"17", argMin => "10", argMax => "55", pos=>[16, 4, "hex", 10], unit =>" °C"},
"p05DHWsetNightTemp" => {cmd2=>"17", argMin => "10", argMax => "55", pos=>[20, 4, "hex", 10], unit =>" °C"},
"p06DHWsetStandbyTemp" => {cmd2=>"17", argMin => "10", argMax => "55", pos=>[24, 4, "hex", 10], unit =>" °C"},
"p07FanStageDay" => {cmd2=>"17", argMin => "0", argMax => "3", pos=>[28, 2, "hex", 1], unit =>""},
"p08FanStageNight" => {cmd2=>"17", argMin => "0", argMax => "3", pos=>[30, 2, "hex", 1], unit =>""},
"p09FanStageStandby" => {cmd2=>"17", argMin => "0", argMax => "3", pos=>[32, 2, "hex", 1], unit =>""},
"p10RoomTempManual" => {cmd2=>"17", argMin => "10", argMax => "65", pos=>[34, 4, "hex", 10], unit =>" °C"},
"p11DHWSetTempManual" => {cmd2=>"17", argMin => "10", argMax => "65", pos=>[38, 4, "hex", 10], unit =>" °C"},
"p12FANStageManual" => {cmd2=>"17", argMin => "0", argMax => "3", pos=>[42, 2, "hex", 1], unit =>""}
);
#handle write back for old firmware if the attribute 206 is set.
if((AttrVal($hash->{NAME}, "firmware" , "4.39") eq "2.06")) {
my $pos = $cmdhash->{pos}[0];
my $len = $cmdhash->{pos}[1];
my $dec = $cmdhash->{pos}[3];
my $subst;
Log3 $hash->{NAME}, 3, "write register/pos/arg to THZ: '$cmdHex2/$pos/$arg'";
#read before write the register
$cmdHex2=THZ_encodecommand($cmdHex2, "get");
($err, $msg) = THZ_Get_Comunication($hash, $cmdHex2);
if (defined($err)) {
Log3 $hash->{NAME}, 5, "THZ_Set: error read register: '$err'";
return ($msg ."\n msg " . $err);
}
Log3 $hash->{NAME}, 3, "answer from THZ: $msg";
$arg *= $dec; #shift the decimal point
if ($len eq "4") {
$subst = sprintf("%04X",$arg);
}
elsif ($len eq "2"){
$subst = sprintf("%02X",$arg);
}
substr($msg, $pos, $len, $subst); # substitute the parameter in the message payload
Log3 $hash->{NAME}, 3, "write to THZ: $msg";
# write the message to THZ
substr($msg, 0, 2, ""); #remove the checksum from the head of the payload
$cmdHex2=THZ_encodecommand($msg, "set");
($err, $msg) = THZ_Get_Comunication($hash, $cmdHex2);
Log3 $hash->{NAME}, 3, "written THZ: $msg";
if (defined($err)) {
Log3 $hash->{NAME}, 5, "THZ_Set: error write register: '$err'";
return ($msg ."\n msg " . $err);
}
return $msg;
} #end 2.06 handling
$msg2 = THZ_Parse1($hash,$msg2,$cmdhash->{pos});
Zitat von: andre.k am 08 Februar 2015, 12:51:55
Hi Peter,
I'm about to implement an update for the subroutine THZ_Set. There is a significant difference between the 2.x Firmware and the later versions. In version 2.x a single parameter value has to be written in groups of parameters. For example if you want to change P01 you have to write all parameter from P01 to P12 to the THZ. All parameters from 01 to 12 will be written with the same command 0x17.
So I'm on the way.
Zitat von: peter456 am 08 Februar 2015, 17:07:28
Alles klar immi. Sage bescheid wenn ich was testen soll.
Zitat von: immi am 08 Februar 2015, 16:05:55I can confirm 4).
3) room_thermometer not connected and room_display connected (hypothesis)
sGlobal.insideTemp = -60
sHC1.insideTempRC = room_display remperature
4) room_thermometer connected to KTY81 and room_display connected (hypothesis)
sGlobal.insideTemp = resistance between X5-pin5 and X5-pin6 (conversion table of a NXP-KTY81)
sHC1.insideTempRC = room_display remperature
I cannot reproduce 3 and 4 because I do not have a second display... someone else has to confirm (connect something //press reset button // wait 3 min. // confirm or write new theory)
Zitat von: immi am 04 Februar 2015, 16:05:53
Hi Belu, Hi Andre.k
I like both solution a lot.
But, I do not want to update sDisplay too often (e.g. each 30 sec)
What I miss is, an automatic way to update sDisplay before the webpage is generated.
Untill we find it, it makes sense to add a button "refresh"
immi
ZitatDie Aktualisierung im Browserfenster geschieht per longpoll und überträgt nur die jeweils geänderten Zellen. Wenn eine readingsGroup in keinem Browserfenster angezeigt wird findet keine longpoll aktualisierung statt.Is this what you're looking for?
Zitat von: peter456 am 08 Februar 2015, 22:49:49
Hallo Andre,
im Anhang die Ergebnisse meines Parameterabgleichs. Bei falschen Werten habe ich meine richtigen Parametern in Klammer (gelb markiert) dargestellt. Ich denke die Solar-Parameter brauchen wir nicht zu beachten, da meine LWZ303i keine Solarfunktion hat.
Gruß
Peter
2015.02.10 20:30:39 5: Parse message: 4A015A8AC85A8AC8003C003C003C003C00
Zitat von: andre.k am 10 Februar 2015, 20:35:10
Hallo Peter,
danke fürs testen. Ich habe die Fehler gefunden und werde sie korrigieren. Bei pFAN (Register 01) haben wir aber einen Unterschied zwischen Deiner und meiner Firmware. In meiner 2.14 kann ich die Lüfter bis 250 m3/h einstellen. Dafür genügt ein Datenbyte zum kodieren. In Deiner Firmaware 2.06 kann der wert bis 280 eingestellt werden. Das passt dann nicht mehr in ein Byte. Daher werden vermutlich für jede Einstellung von P37...P42 zwei Bytes in der Payload werwendet. Um das zu verfizieren benötige ich die folgende vollständige Message aus dem Logfile (Dazu musst du das Attribut verbose=5 setzen).Code Auswählen2015.02.10 20:30:39 5: Parse message: 4A015A8AC85A8AC8003C003C003C003C00
Andre
Zitat von: NaCkHaYeD am 11 Februar 2015, 23:14:35
Hi,
bin neu hier, dementsprechend ein paar Fragen/Anmerkungen:
Zitat von: NaCkHaYeD am 11 Februar 2015, 23:14:35Das mit dem Filtertausch geht lt. Tecalor Manal über den Anstieg der Lüfterdrehzahl, die notwendig ist, um die eingestellte Luftmenge aufrecht zu erhalten. Aber wie bereits genannt: Bei Stromausfall wird der Wert zurück gesetzt und ist damit sinnlos.
- Gibt es einen Parameter, welcher mir sagt, dass der Filter getauscht werden muss?
- ... wenn wieder der Wodte Differenz Sensor ausgelöst hat.
Zitat von: NaCkHaYeD am 11 Februar 2015, 23:14:35Technisch wäre es möglich. Meine THZ 404 hat folgende Register für die Uhrzeit und das Datum:
- Gibt es eine Möglichkeit die aktuelle Uhrzeit vom Raspi an die THZ zu senden (Hintergrund: THZ läuft etwas davon)?
Zitat von: mlb am 12 Februar 2015, 14:24:25HI Marek
Maybe you could help me with the following question: does the 00_THZ module support unscheduled ventilation program activation ?
Marek
Zitat von: immi am 12 Februar 2015, 21:45:33
the unscheduled ventilation is not completely implemented because some info are missing.
I do not miss it because I use fhem for it
Zitat von: mlb am 12 Februar 2015, 22:34:38
Thanks immi. Yes, I have seen this - however I have some concerns about controlling it via changing Pxx parameters. If I understand how the electronic board works - each change of any Pxx parameter is written to internal flash memory. Of course that's not a problem if you change parameters occasionally, but in case you would change those a couple of times per day - those memory chips have limited number of writes and so one day they could simply stop working because of it... I simply have thrown away too many flash drives to ignore this risk... :-\
Zitat von: immi am 13 Februar 2015, 15:22:45
One more thing: Are you sure that the unscheduled feature in the heatpump does not write to the eprom?
Zitat von: mlb am 13 Februar 2015, 19:42:50The display is connected to the THZ via CAN bus. This is valid for every display, no matter if it is external or the internal one. So monitoring the CAN bus is necessary, no matter where the display is located.
I'm happy to do some tests with my LWZ, just I do not have external controller, and so no means to intercept the sequence that would start it... Still, please let me know if you'd have ideas how to test it without external control unit.
Zitat von: mlb am 13 Februar 2015, 19:42:50
I just did a test: started unscheduled ventilation, and after a while I switched the heatpump off. After starting it again the ventilation did not restart - so that would suggest the unscheduled status is not written to non-volatile memory.
Zitat von: godmorgon am 14 Februar 2015, 16:04:36thanks for sharing. I will have a look.
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.
Zitat von: immi am 14 Februar 2015, 16:16:55Set the fan stage for unscheduled ventilation to 1.
I am now curious: how have you found out?
Zitat von: godmorgon am 14 Februar 2015, 16:29:20the old school :)
Set the fan stage for unscheduled ventilation to 1.
Perform register scan.
Set the fan stage for unscheduled ventilation to 2.
Perform register scan.
Run diff and check for changes 1->2.
Zitat von: mlb am 14 Februar 2015, 15:42:35Yes, that's what I believe. But it's no more necessary after godmorgon's
Thanks Willy, this explains a lot. Still, it sounds like the ventilation could be activated by additional command that could be sent independently to parameters write command. Are you saying that if we had CAN interface attached to RPi (for example http://skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html (http://skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html)) - we would be able to read the complete sequence?
Zitat von: godmorgon am 14 Februar 2015, 16:04:36it is working. Deploy this night with 2 other small things.
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.
Zitat von: godmorgon am 14 Februar 2015, 16:04:36
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.
Zitat von: immi am 14 Februar 2015, 18:59:26
--unscheduled ventilation --> probably 3 writes to the eeprom
Zitat von: immi am 14 Februar 2015, 18:59:26How so?
--button: 60 min off --> 2 writes to the eeprom
--unscheduled ventilation --> probably 3 writes to the eeprom
Zitat von: mlb am 13 Februar 2015, 19:42:50
I just did a test: started unscheduled ventilation, and after a while I switched the heatpump off. After starting it again the ventilation did not restart.
Zitat von: immi am 14 Februar 2015, 21:38:52
- added p99startUnschedVent
Zitat von: immi am 14 Februar 2015, 21:38:52
- vertical range in the heating curve changed to 15..35°C as requested.
Zitat von: mlb am 15 Februar 2015, 00:01:16interesting, it worked for me with 0 but have not tested other numbers
Thanks!
Yes I can see the new parameter, but I cannot change it and also ventilation does not start when I try to set it to something different than 0. I'm just wondering if that's because I'm still on 4.38 firmware and it works fine for others? When I start unscheduled ventilation from control panel - yes I can see non-zero value for p99startUnschedVent, so reading works fine.
ZitatI will provide a parameter by next release.
Could the upper limit be defined by a parameter? My heating curve actually goes above 40°C, and now the graph looks strange...
Of course I could stop using this graph, just it's pretty cool to see it.
Zitat von: immi am 15 Februar 2015, 09:39:23IIRC the heat pump uses big endian for most registers. So a short int would correspond to 00 01. Didn't you do a read check first? ;-)
interesting, it worked for me with 0 but have not tested other numbers
@godmorgon: how is a 1 implemented in the register 0a05dd0100 or 0a05dd0001?
Zitat von: immi am 15 Februar 2015, 09:39:23
interesting, it worked for me with 0 but have not tested other numbers
Zitat von: godmorgon am 15 Februar 2015, 10:15:22and this is how it was implemented 0a05dd0001
IIRC the heat pump uses big endian for most registers. So a short int would correspond to 00 01.
Zitat von: immi am 14 Februar 2015, 21:38:52Hi immi,
v 0132 uploaded; tomorrow you can update
- added p99startUnschedVent
- splitting of big register implemented; this is needed for writing in old 206 firmware.
- vertical range in the heating curve changed to 15..35°C as requested.
@all I changed lots of code for the splitting, update only if you need.
@all with old firmware, wait for Andre testing!!
@Andre:please comment out line 797. Can you test the writing in the old firmware? No actual writing takes place. I didn´t finish subTHZ_Set: just 50%. I want your feedback before going on.
immi
"p01RoomTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
"p02RoomTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
"p03RoomTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
- "p04DHWsetDayTemp" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
- "p05DHWsetNightTemp" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
- "p06DHWsetStandbyTemp" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p04DHWsetTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p05DHWsetTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p06DHWsetTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
"p07FanStageDay" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p08FanStageNight" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p10RoomTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
- "p11DHWSetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
- "p12FANStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""}
+ "p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
+ "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""}
define Fan.Unscheduled dummy
attr Fan.Unscheduled devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
attr Fan.Unscheduled group THZ-Fans
attr Fan.Unscheduled room Heating
attr Fan.Unscheduled setList 0 1 2 3
attr Fan.Unscheduled webCmd 0:1:2:3
define Notify_p99startUnschedVent notify Fan.Unscheduled set Mythz p99startUnschedVent $EVENT
define Notify_UnschedVent notify (Mythz.p99startUnschedVent.*) setstate Fan.Unscheduled $EVTPART1
editConfig: 1,0
Zitat von: houseowner123 am 15 Februar 2015, 15:19:32OT
I hate these unnecessary safety features. >:( So, how can I enable to edit fhem.cgf? I tried so far: editConfig1; editConfig=1; editConfig 1
Nothing worked, nothing in the documentation expect for that you should set editConfig to 1.
Zitat von: houseowner123 am 15 Februar 2015, 15:19:32The right way is:
I hate these unnecessary safety features. >:( So, how can I enable to edit fhem.cgf?
Zitat von: immi am 15 Februar 2015, 13:56:08Immi, have you included the rest of the THZ_Set code for old firmware? Or do you still wait for testing?
v0.133 uploaded
- andres path
- autoscale of heatcurve for mlb
Zitat von: houseowner123 am 15 Februar 2015, 19:06:47As long as you're not familiar with the FHEM user interface (and therefore with FHEM at all?) you should avoid modifying the fhem.cfg manually. The above mentioned usage is given almost everywhere in fhem. E.g. if you want to create a new plot just navigate to
Thank you so much, Willy! :D
Zitat von: andre.k am 15 Februar 2015, 19:23:09Andre
Immi, have you included the rest of the THZ_Set code for old firmware? Or do you still wait for testing?
Andre
Zitat von: willybauss am 15 Februar 2015, 19:30:21
As long as you're not familiar with the FHEM user interface (and therefore with FHEM at all?) you should avoid modifying the fhem.cfg manually. The above mentioned usage is given almost everywhere in fhem. E.g. if you want to create a new plot just navigate to
Everything - FileLog - FileLog_Mythz
and there click on the "Create_SVG_Plot" button, what brings you into the graphical UI for plot creation.
Zitat von: mlb am 15 Februar 2015, 14:22:05
I'm happy to confirm the unscheduled ventilation started working after I created a control for it:
Zitat von: willybauss am 15 Februar 2015, 21:39:01
I'd like to do the same for party mode as well, but I noticed that "party-time" is a read-only setting
Zitatv0.108
Party-Time set removed as it has never worked
Zitat von: mlb am 15 Februar 2015, 22:48:53Link to the code is in my post above, here again: HERE IS THE LINK AGAIN (http://forum.fhem.de/index.php/topic,33452.msg262224.html#msg262224)
Your sliders look very useful, would you mind posting example code for one slider?
Zitat von: mlb am 15 Februar 2015, 21:30:48not too serius during carneval monday ;D
My software version is 4.38, and at Fhem I set it as 4.39. So far I have not noticed serious issues with Fhem. The only thing I have noticed are strange parameters at sHC1:
outsideTemp: -0.8 x08: 7 returnTemp: 17.7 integralHeat: 77 flowTemp: 32.6 heatSetTemp: 22.9 heatTemp: 32.6 seasonMode: winter integralSwitch: 90 opMode: setback roomSetTemp: 16.5 x60: 0 x64: 563.2 insideTempRC: 22.5 x72: 0 x76: 2.2
Zitat von: mlb am 20 Februar 2015, 14:56:52
@immi: I am not sure if this is THZ-specific, of more general topic. I know we can request data from THZ on interval basis. But we also do not want to do it too frequently.
However, I think we may have one exception - when we send a a command to THZ, often it would be very useful to refresh status from THZ at the next step, just to make sure the command has been actually successful. Is there a way of doing it?
Zitat von: immi am 20 Februar 2015, 15:13:27
Example:you can tell fhem to read again sGlobal, each time you change the ventilator speed.
define Fan.Unscheduled dummy
attr Fan.Unscheduled alias Start
attr Fan.Unscheduled devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
attr Fan.Unscheduled group THZ-FansUnscheduled
attr Fan.Unscheduled setList 0 1 2 3
attr Fan.Unscheduled webCmd 0:1:2:3
define Notify_p99startUnschedVent notify Fan.Unscheduled set Mythz p99startUnschedVent $EVENT
define Notify_UnschedVent notify (Mythz.p99startUnschedVent.*) setstate Fan.Unscheduled $EVTPART1
define Notify_UnschedVentRefresh notify Fan.Unscheduled get Mythz sGlobal
[" OnHysteresisNo: ", 32, 2, "hex", 1],
[" OffHysteresisNo: ", 34, 2, "hex", 1],
[" HCBoosterStage: ", 36, 2, "hex", 1]
define Notify_p99startUnschedVent notify Fan.Unscheduled set Mythz p99startUnschedVent $EVENT;; define UnschedRefreshDelay1 at +00:00:15 get Mythz sGlobal;;define UnschedRefreshDelay2 at +00:00:35 get Mythz sGlobal
Zitat von: immi am 20 Februar 2015, 21:54:00Hi immi,
Hi Andre
HCBoosterStage: is selfexplaining
what represent the other 2?
x72: 0.1 x76: -535.4 onHysteresisNo: 0 offHysteresisNo: 1 HCBoosterStage: 0
Zitat von: mlb am 20 Februar 2015, 22:22:44Code Auswählendefine Notify_p99startUnschedVent notify Fan.Unscheduled set Mythz p99startUnschedVent $EVENT;; define UnschedRefreshDelay1 at +00:00:15 get Mythz sGlobal;;define UnschedRefreshDelay2 at +00:00:35 get Mythz sGlobal
define ntfy1 notify Fernbedienung:.* set Lampe1 $EVENT ;; sleep 7.5;; set Lampe2 $EVENT
Zitat von: der-Lolo am 20 Februar 2015, 23:12:32Welcome in club
Hello together,
in the moment we do not have a THZ heater solution - but in the future we get one.
I write here just to stay better in touch with this thread...
Zitat von: der-Lolo am 20 Februar 2015, 23:12:32Hi Michael,
Hello together,
in the moment we do not have a THZ heater solution - but in the future we get one.
I write here just to stay better in touch with this thread...
Zitat von: mlb am 20 Februar 2015, 18:39:29It also depends on the way how you implement your changes. If you edit fhem.cfg and save it manually, you need to do a "rereadcfg" or better a "shutdown restart" to activate the new code.
Willy - yes I have done that already, and Event Monitor shows "dummy Fan.Unscheduled <number>", as expected. That's why I'm asking here, because my Notify_UnschedVentRefresh is not being triggered, so I cannot see any event about getting sGlobal that would follow the start of ventilation.
$ Starting fhem...
main::THZ_Get() called too early to check prototype at ./FHEM/00_THZ.pm line 944, <$fh> line 89.
ZitatMythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
Zitat von: immi am 20 Februar 2015, 22:37:57
why don´t you use "sleep" instead of at?
look in the wiki http://www.fhemwiki.de/wiki/NotifyCode Auswählendefine ntfy1 notify Fernbedienung:.* set Lampe1 $EVENT ;; sleep 7.5;; set Lampe2 $EVENT
define Notify_p99startUnschedVent notify Fan.Unscheduled set Mythz p99startUnschedVent $EVENT;;sleep 2;;set Mythz p99startUnschedVent $EVENT;; sleep 15;; get Mythz sGlobal;;sleep 15;; get Mythz sGlobal
Zitat von: mlb am 21 Februar 2015, 17:21:53If this is true (and I do not understand why, strange), use { } syntax for notify and copy $EVENT in a variable, and then use the variable for setting.
sets p99startUnschedVent twice as expected, just second command always sets p99startUnschedVent to zero.
Zitat von: der-Lolo am 21 Februar 2015, 17:02:45I don't understand completely - do you want me to update the links manually after reboot? If that works I could put this action into a fhem startup script easily.
@willy: i was also working on USB problems today - maybe you will try to get the right device by using /dev/serial/by-id/ for me and the first one wire test environment everything looks fine that way without udev rules.
Zitat$ ll /dev/serial/by-id
total 0
drwxr-xr-x 2 root root 100 Jan 1 1970 .
drwxr-xr-x 4 root root 80 Jan 1 1970 ..
lrwxrwxrwx 1 root root 13 Jan 1 1970 usb-busware.de_CUL868-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Jan 1 1970 usb-EnOcean_GmbH_EnOcean_USB_300_DA_FTWMW5A3-if00-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Jan 1 1970 usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 -> ../../ttyUSB0
pi@raspberrypi ~ $
define Mythz THZ /dev/ttyUSB0@115200
define Mythz THZ /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0@115200
pi@raspberrypi ~ $ date
Sat Feb 21 20:21:43 CET 2015
pi@raspberrypi ~ $
Zitat von: immi am 21 Februar 2015, 18:25:40
If this is true (and I do not understand why, strange), use { } syntax for notify and copy $EVENT in a variable, and then use the variable for setting.
define Notify_p99startUnschedVent notify Fan.Unscheduled {my $LastSetVent=$EVENT;;fhem("set Mythz p99startUnschedVent $LastSetVent;;sleep 3;;set Mythz p99startUnschedVent $LastSetVent;;sleep 15;;get Mythz sGlobal;;sleep 15;;get Mythz sGlobal")}
Zitat von: andre.k am 21 Februar 2015, 11:28:05Hallo Andre,
I just upgraded to version 0.134. Many thanks to immi for the graet functionality to write multi value registers.
@all: Could you please test the new version deeply, especially the users of old firmware. Here some new features:
- Writing of parameters/settings is possible for old firmware versions 2.x. In this version only p1..p12 are writable.
- Handling of different payload for register pFAN (p37...p46/p75) in firmaware 2.06 vs. 2.14
- New register sProgram (Not parsed in this version, please check the availibility of the register in Firmaware 2.06, in my 2.14 it exists and contains e.g. the operating mode (manual/automatic)
We would like your feedback befor we go further to implement additional set parameters. What use cases make sense in FHEM? Some parameter are may be too dangerous to change with FHEM.
Zitat von: immi am 22 Februar 2015, 10:40:03
if you updated in the last days, you have seen 3 new parameters in sHC1, discovered by Andre
outsideTemp: 6.2 x08: 8.6 returnTemp: 24.6 integralHeat: 28 flowTemp: 25.1 heatSetTemp: 19.6 heatTemp: 24.6 seasonMode: winter integralSwitch: 101 opMode: standby roomSetTemp: 18 x60: 6.9 x64: 563.2 insideTempRC: 22 x72: 0 x76: 2.2 onHysteresisNo: 0 offHysteresisNo: 1 HCBoosterStage: 0
I still do not understand what they are for: do you want to keep them?
Zitat von: peter456 am 22 Februar 2015, 11:52:56Hi Peter,
Hallo Andre,
ich habe heute mein FHEM auf die Version 0.135 aktualisiert. Meine LWZ hat die Firmware 2.06.
Das Schreiben der Parameter p01-p12 funktioniert soweit richtig. Das funktioniert aber meistens erst beim 2. oder 3. Versuch. Die Komma-Werte (z.B. 22.1) werden anscheint schlechter übernommen als ganze Werte. Bei Parametern p08FanStageNight und p09FanStageStandby scheint das Lesen noch falsch programmiert zu sein. Wenn ich z.B. p08FanStageNight auswähle und dann "get" betätige, dann bekomme ich nicht den ausgelesenen Wert angezeigt, sondern das Auswahlfeld "get" wechselt von p08FanStageNight auf p01-p12.
Das Auslesen von pFan funktioniert jetzt auch bei meiner Firmware richtig. Super Arbeit von dir und von immi. Vielen Dank.
p37Fanstage1AirflowInlet: 115 p38Fanstage2AirflowInlet: 173 p39Fanstage3AirflowInlet: 230 p40Fanstage1AirflowOutlet: 115 p41Fanstage2AirflowOutlet: 163 p42Fanstage3AirflowOutlet: 230 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 0
Das neue Register sProgram wird bei mir so angezeigt:
05EE018F01010202000025F300000004B0000004B0
Gruß Peter
Zitat von: andre.k am 22 Februar 2015, 14:02:05I would introduce a 0.5s sleep after the reading the parent register ( line 832)
I have the same behavior. Sometimes I have to set parameter twice, probably a timing issue.
Zitatcan you provide a log with verbose5?
Concerning the p08 and p09 I have the same situation like you only in case of return value=0. When I get value=1..3 it works.
Zitat von: immi am 22 Februar 2015, 17:15:54Hi immi , I just run the commands p08 and p09 . The appendix is the log file with verbose 5.
I would introduce a 0.5s sleep after the reading the parent register ( line 832)
select(undef, undef, undef, 0.5);can you provide a log with verbose5?
Zitat von: peter456 am 22 Februar 2015, 18:53:02Peter, you do not have problem with writing; you have problems with every reading also.
Hi immi , I just run the commands p08 and p09 . The appendix is the log file with verbose 5.
2015.02.22 20:18:27 5: THZ_Get: Try to get 'p09FanStageStandby'
2015.02.22 20:18:27 5: THZ_Get: Try to get 'p01-p12'
2015.02.22 20:18:27 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2015.02.22 20:18:27 5: SW: 02
2015.02.22 20:18:27 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:18:27 5: THZ_ReadAnswer: uc unpack: '10'
2015.02.22 20:18:27 5: SW: 010018171003
2015.02.22 20:18:27 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:18:27 5: THZ_ReadAnswer: uc unpack: '10'
2015.02.22 20:18:27 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:18:27 5: THZ_ReadAnswer: uc unpack: '02'
2015.02.22 20:18:27 5: SW: 10
2015.02.22 20:18:27 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:18:27 5: double read 1 activated 01
2015.02.22 20:18:27 5: double read 1 result with buf1 0100
2015.02.22 20:18:27 5: double read 2 activated 0100
2015.02.22 20:18:27 5: double read 2 result with buf1 0100B8
2015.02.22 20:18:27 5: double read 3 activated 0100B8
2015.02.22 20:18:27 5: double read 3 result with buf1 0100B81700C8
2015.02.22 20:18:27 5: double read 4 activated 0100B81700C8
2015.02.22 20:18:27 5: double read 4 result with buf1 0100B81700C800BE
2015.02.22 20:18:27 5: double read 5 activated 0100B81700C800BE
2015.02.22 20:18:27 5: double read 5 result with buf1 0100B81700C800BE00
2015.02.22 20:18:27 5: double read 6 activated 0100B81700C800BE00
2015.02.22 20:18:27 5: double read 6 result with buf1 0100B81700C800BE00A001
2015.02.22 20:18:27 5: double read 7 activated 0100B81700C800BE00A001
2015.02.22 20:18:27 5: double read 7 result with buf1 0100B81700C800BE00A001C20190
2015.02.22 20:18:27 5: double read 8 activated 0100B81700C800BE00A001C20190
2015.02.22 20:18:27 5: double read 8 result with buf1 0100B81700C800BE00A001C201900064
2015.02.22 20:18:27 5: double read 9 activated 0100B81700C800BE00A001C201900064
2015.02.22 20:18:27 5: double read 9 result with buf1 0100B81700C800BE00A001C20190006402
2015.02.22 20:18:27 5: double read 10 activated 0100B81700C800BE00A001C20190006402
2015.02.22 20:18:27 5: double read 10 result with buf1 0100B81700C800BE00A001C20190006402010000
2015.02.22 20:18:27 5: double read 11 activated 0100B81700C800BE00A001C20190006402010000
2015.02.22 20:18:27 5: double read 11 result with buf1 0100B81700C800BE00A001C20190006402010000E601
2015.02.22 20:18:27 5: double read 12 activated 0100B81700C800BE00A001C20190006402010000E601
2015.02.22 20:18:27 5: double read 12 result with buf1 0100B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:18:27 5: double read 13 activated 0100B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:18:27 5: double read 13 result with buf1 0100B81700C800BE00A001C20190006402010000E601D6021003
2015.02.22 20:18:27 5: THZ_ReadAnswer: uc unpack: '0100B81700C800BE00A001C20190006402010000E601D6021003'
2015.02.22 20:18:27 5: SW: 10
2015.02.22 20:18:27 5: Parse message: B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:18:27 5: Message length: 44
2015.02.22 20:19:56 5: THZ_Get: Try to get 'p01RoomTempDay'
2015.02.22 20:19:56 5: THZ_Get: Try to get 'p01-p12'
2015.02.22 20:19:56 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2015.02.22 20:19:56 5: SW: 02
2015.02.22 20:19:56 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:19:56 5: THZ_ReadAnswer: uc unpack: '10'
2015.02.22 20:19:56 5: SW: 010018171003
2015.02.22 20:19:56 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:19:56 5: THZ_ReadAnswer: uc unpack: '10'
2015.02.22 20:19:56 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:19:56 5: THZ_ReadAnswer: uc unpack: '02'
2015.02.22 20:19:56 5: SW: 10
2015.02.22 20:19:56 5: myWP start Funktion THZ_ReadAnswer
2015.02.22 20:19:56 5: double read 1 activated 01
2015.02.22 20:19:56 5: double read 1 result with buf1 0100
2015.02.22 20:19:56 5: double read 2 activated 0100
2015.02.22 20:19:56 5: double read 2 result with buf1 0100B817
2015.02.22 20:19:56 5: double read 3 activated 0100B817
2015.02.22 20:19:56 5: double read 3 result with buf1 0100B81700C800
2015.02.22 20:19:56 5: double read 4 activated 0100B81700C800
2015.02.22 20:19:56 5: double read 4 result with buf1 0100B81700C800BE00
2015.02.22 20:19:56 5: double read 5 activated 0100B81700C800BE00
2015.02.22 20:19:56 5: double read 5 result with buf1 0100B81700C800BE00A001C2
2015.02.22 20:19:56 5: double read 6 activated 0100B81700C800BE00A001C2
2015.02.22 20:19:56 5: double read 6 result with buf1 0100B81700C800BE00A001C20190
2015.02.22 20:19:56 5: double read 7 activated 0100B81700C800BE00A001C20190
2015.02.22 20:19:56 5: double read 7 result with buf1 0100B81700C800BE00A001C2019000
2015.02.22 20:19:56 5: double read 8 activated 0100B81700C800BE00A001C2019000
2015.02.22 20:19:56 5: double read 8 result with buf1 0100B81700C800BE00A001C2019000640201
2015.02.22 20:19:56 5: double read 9 activated 0100B81700C800BE00A001C2019000640201
2015.02.22 20:19:56 5: double read 9 result with buf1 0100B81700C800BE00A001C20190006402010000
2015.02.22 20:19:56 5: double read 10 activated 0100B81700C800BE00A001C20190006402010000
2015.02.22 20:19:56 5: double read 10 result with buf1 0100B81700C800BE00A001C20190006402010000E6
2015.02.22 20:19:56 5: double read 11 activated 0100B81700C800BE00A001C20190006402010000E6
2015.02.22 20:19:56 5: double read 11 result with buf1 0100B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:19:56 5: double read 12 activated 0100B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:19:56 5: double read 12 result with buf1 0100B81700C800BE00A001C20190006402010000E601D6021003
2015.02.22 20:19:56 5: THZ_ReadAnswer: uc unpack: '0100B81700C800BE00A001C20190006402010000E601D6021003'
2015.02.22 20:19:56 5: SW: 10
2015.02.22 20:19:56 5: Parse message: B81700C800BE00A001C20190006402010000E601D602
2015.02.22 20:19:56 5: Message length: 44
Zitat von: andre.k am 22 Februar 2015, 21:11:12
Hi immi,
then I am reassured :D
Would it be helpful having an addidional Log3 message in THZ_Get(), if the get is from memory?
Zitat von: immi am 22 Februar 2015, 19:24:49Hi immi,
Peter, you do not have problem with writing; you have problems with every reading also.
Andre, I hope your logfile does not look the same.
I just uploaded v0136 with some waittimes for old firmwares.
immi
Zitat von: immi am 23 Februar 2015, 23:02:22
- 2 curves are now displayed: one with insideTemp influence (green), the other without(blue).
Zitat von: mlb am 26 Februar 2015, 23:16:47fixed and uploaded
I think autoscaling does not work after adding second curve.
Zitat von: immi am 27 Februar 2015, 00:09:27Unexpected but positive side effect of adding the second curve: now it helps to unmask wrong settings :) .
p.s are you sure you need such a high blue line. Don´t you think your p13GradientHC1 and p14LowEndHC1 are too high?
Zitat von: mlb am 27 Februar 2015, 10:45:01Youless LS110 is my suggestion (http://bg-etech.de/os/product_info.php/products_id/44). Easy installation, no need to change anything in the power cabling, direct LAN access, supported in FHEM. I use it sonce a few months to track my PV energy creation.
I'm also looking at electricity consumption, but so far I could not find a good method to analyse it...
Zitat von: mlb am 27 Februar 2015, 10:45:01In parallel to monitoring, I would program the programHC1XX programDHWXX so that you have 1K more in the heating-set-temp and in the hotwater-set-temp between 13:00-15:00.
Yes they are likely too high :) The reason is my main heating source is fireplace connected to house heating system and I have been using LWZ just for DHW and absences - and so I was really looking forward to analyze graphs from FHEM to understand if and how should I use LWZ for heating... That's why I have all these questions. I'm also looking at electricity consumption, but so far I could not find a good method to analyse it for a period of time, especially when I have 2-tariff electricity meter (in my case I have cheaper energy for 13:00-15:00 and 22:00-06:00 hours).
Zitat von: immi am 27 Februar 2015, 14:58:06
In parallel to monitoring, I would program the programHC1XX programDHWXX so that you have 1K more in the heating-set-temp and in the hotwater-set-temp between 13:00-15:00.
Zitat von: willybauss am 27 Februar 2015, 13:23:20
Youless LS110 is my suggestion (http://bg-etech.de/os/product_info.php/products_id/44). Easy installation, no need to change anything in the power cabling, direct LAN access, supported in FHEM. I use it sonce a few months to track my PV energy creation.
Zitat von: mlb am 27 Februar 2015, 17:00:21
Thanks - good itea, I will look at it. Just I noticed it needs the old type of meter with rotating plate, they are no longer used here... maybe I could find a used one.
Zitat von: mlb am 27 Februar 2015, 17:00:21you simply could write the daily values to the log file at 23:59 every night and create a graph later on
Still I was hoping to register values like sElectrDHWDay or sElectrHCDay on daily basis just to track usage in different months, just for some reason they are not shown on graphs reasonably.
Zitat von: mlb am 27 Februar 2015, 17:00:21The Youless has a config menu where you can enter the numper of pulses per kWh, so you're completely free on which kind of meter you choose.
Thanks - good itea, I will look at it. Just I noticed it needs the old type of meter with rotating plate, they are no longer used here... maybe I could find a used one.
Zitat von: mlb am 27 Februar 2015, 18:23:28I also have such peaks somtetimes; do not know where they come from
I was also looking at PQc and Pel. Most of times values seem rather reasonable, but sometimes they look too good to be true - like the peak here: can it be the heatpump temporarily has over 700% of efficiency gain?
Zitat von: belu am 28 Februar 2015, 13:20:16
Hi,
it looks like my MyTHZ Module does not work. Stop Working Yesterday at 15:02. Version 1.37
This is the actual answer Log Verbose 5
2015.02.28 13:10:31 5: Mythz start Funktion THZ_ReadAnswer
2015.02.28 13:10:31 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2015.02.28 13:10:31 5: THZ_Get: Error msg2: 'InterfaceNotRespondig error found at step1 error found at step2'
2015.02.28 13:10:32 5: THZ_Get: Try to get 'programHC2_Tu_1'
2015.02.28 13:10:32 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2015.02.28 13:10:32 5: Mythz sending 02
2015.02.28 13:10:32 5: SW: 02
2015.02.28 13:10:32 5: Mythz start Funktion THZ_ReadAnswer
2015.02.28 13:10:32 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2015.02.28 13:10:32 5: THZ_Get: Error msg2: 'InterfaceNotRespondig error found at step1 error found at step2'
i checked the USB connection on linux, restart raspberry update raspberry, all ok, mythz does not work.
Thats not good...
My THZ works without problems. i Checked Display and Paramter, works....
Restart THZ.... Now THZ and MyTHZ Modul works again.
Can the MyTHZ Modul kill the THZ UART USB Modul?
Zitat von: immi am 12 Februar 2015, 21:45:33Today I got the reason for having the THZ's time synchronized tu the FHEM server. I added a few rows to my config in order to get total values per day:
it is possble to set the time from fhem, if someone implements it.
nevertheless I do not see how this feature could be usefull. you set it and do not change it for 10 years.
define GetsHeatHCDay at *23:59:00 get Mythz sHeatHCDay
attr GetsHeatHCDay room Heizung
define GetsElectrDHWDay at *23:59:00 get Mythz sElectrDHWDay
attr GetsElectrDHWDay room Heizung
define GetsElectrHCDay at *23:59:00 get Mythz sElectrHCDay
attr GetsElectrHCDay room Heizung
define GetsHeatDHWDay at *23:59:00 get Mythz sHeatDHWDay
attr GetsHeatDHWDay room Heizung
define GetsHeatRecoveredDay at *23:59:00 get Mythz sHeatRecoveredDay
attr GetsHeatRecoveredDay room Heizung
define GetsBoostDHWTotal at *00:01:00 {if($mday == 1) { "get Mythz sBoostDHWTotal" }}
attr GetsBoostDHWTotal room Heizung
define GetsBoostHCTotal at *00:01:00 {if($mday == 1) { "get Mythz sBoostHCTotal" }}
attr GetsBoostHCTotal room Heizung
define GetsElectrDHWTotal at *00:01:00 {if($mday == 1) { "get Mythz sElectrDHWTotal" }}
attr GetsElectrDHWTotal room Heizung
define GetsElectrHCTotal at *00:01:00 {if($mday == 1) { "get Mythz sElectrHCTotal" }}
attr GetsElectrHCTotal room Heizung
define GetsHeatDHWTotal at *00:01:00 {if($mday == 1) { "get Mythz sHeatDHWTotal" }}
attr GetsHeatDHWTotal room Heizung
define GetsHeatHCTotal at *00:01:00 {if($mday == 1) { "get Mythz sHeatHCTotal" }}
attr GetsHeatHCTotal room Heizung
define GetsHeatRecoveredTotal at *00:01:00 {if($mday == 1) { "get Mythz sHeatRecoveredTotal" }}
attr GetsHeatRecoveredTotal room Heizung
define GetsHistory at *00:01:00 {if($mday == 1) { "get Mythz sHistory" }}
attr GetsHistory room Heizung
sTimedate
Weekday: Monday Hour: 23 Min: 2 Sec: 30 Date: 2015/3/2
2015-03-02 23:01:43
Zitat von: willybauss am 03 März 2015, 07:52:13Willy
I see a difference of 24 seconds - so the code using 23:59:00 should have worked :-\ .
Zitat von: mlb am 05 März 2015, 01:19:49Hi
I'm just testing the new raspberry pi 2 with Fhem. In general it is a bit faster, but also I have noticed that perl uses just a single thread when generating graphs - so there is no real benefit from 4 cores new raspi is equipped with. I was just wondering if this is something you could consider for the future, or the chart generation is outside of THZ module?
Zitat von: immi am 05 März 2015, 18:27:39I actually tested that at first instance :) Since the new raspi has 1GB of RAM, I created ramdisk and copied log files there - easy thing to do, you just need
nevertheless for speeding up multiple plots, file access speed should be increased.
sudo mkdir -p /ram
sudo mount -t tmpfs -o size=50m tmpfs /ram
sudo chmod 777 /ram
ZitatIn my home automation system devices communicate over IP, commands are sent via http and statuses broadcasted via UDP. It works very well, just since Fhem seems to be single-threaded - I have some doubts I could successfully integrate it, also because of language barrier I have when trying to understand other comments written in German.I have 160 defined entities (17 lights, 15 windowshutters, 10 termostate, gas-sensor, heatpump...) in fhem, which are working quite well together on a cheap NAS, where mail-server a web-server is also running.
Zitat von: immi am 05 März 2015, 21:13:42
p.s. I haven´t understood. Did you see an improovement with the ramdisk?
I must say, that I do not like the 100% CPU time; strange.
define SetClockMinutes at *00:27:00 {if($mday == 1) { "set Mythz pClockMinutes 27" }}
attr SetClockMinutes room Heizung
Zitat von: immi am 23 Februar 2015, 23:02:22Hallo Andre.k,
I just uploaded v 0.137
changelog
heatcurve has been improved:
- 2 curves are now displayed: one with insideTemp influence (green), the other without(blue).
- heatcurve should support also old firmware (please Andre test it)
@Peter: I am happy if you are happy with the THZ module. Let Andre make the tests for your older firmware.
Zitat von: peter456 am 16 März 2015, 21:05:30Hi Peter
Hallo Andre.k,
hast du schon bei deiner LWZ die Heizkurve getestet?
Wenn das funktioniert, wie kann ich das bei mir einrichten?
define wl_hr2 weblink htmlCode <div class="SVGplot"><embed src="/fhem/THZ_PrintcurveSVG/" type="image/svg+xml" /></div> <a href="/fhem?detail=wl_hr2">wl_hr2</a><br>
attr wl_hr2 room heatpump
($p13GradientHC1, $p14LowEndHC1, $p15RoomInfluenceHC1) = (split ' ',ReadingsVal($devname,"pHeat1",0))[1,3,5];
Zitat von: andre.k am 18 März 2015, 10:06:50Andre, the missing temp sensore is not the problem.
That's probably because I don't have an inside temperature sensor. And my old THZ doesn't have an externel (remote) control unit.
2015.03.18 19:20:01 5: Parse message: 5BF40065001A01FD002302320105020C00020001011D00640200000000000000BE024F000000000002000000E6
--- 00_THZ.140.pm 2015-03-31 13:39:50.957769638 +0200
+++ 00_THZ.pm 2015-03-31 12:16:29.712267229 +0200
@@ -237,10 +237,10 @@
[" Date: ", 12, 2, "year", 1], ["/", 14, 2, "hex", 1],
["/", 16, 2, "hex", 1]
],
- "FCtime206" => [["Weekday: ", 7, 1, "weekday", 1], [" Hour: ", 8, 2, "hex", 1],
- [" Min: ", 10, 2, "hex", 1], [" Sec: ", 12, 2, "hex", 1],
- [" Date: ", 14, 2, "year", 1], ["/", 18, 2, "hex", 1],
- ["/", 20, 2, "hex", 1]
+ "FCtime206" => [["Weekday: ", 7, 1, "weekday", 1], [" pClockHour: ", 8, 2, "hex", 1],
+ [" pClockMinutes: ", 10, 2, "hex", 1], [" Sec: ", 12, 2, "hex", 1],
+ [" pClockYear: ", 14, 2, "hex", 1], [" pClockMonth: ", 18, 2, "hex", 1],
+ [" pClockDay: ", 20, 2, "hex", 1]
],
"FDfirm" => [["version: ", 4, 4, "hex", 100]
],
@@ -496,7 +496,12 @@
"p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p10RoomTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
"p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
- "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""}
+ "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
+ "pClockDay" => {parent=>"sTimedate", argMin => "1", argMax => "31", unit =>""},
+ "pClockMonth" => {parent=>"sTimedate", argMin => "1", argMax => "12", unit =>""},
+ "pClockYear" => {parent=>"sTimedate", argMin => "12", argMax => "20", unit =>""},
+ "pClockHour" => {parent=>"sTimedate", argMin => "0", argMax => "23", unit =>""},
+ "pClockMinutes" => {parent=>"sTimedate", argMin => "0", argMax => "59", unit =>""}
);
Zitat von: michaelk68 am 05 April 2015, 10:05:57yes, to my opinion it has nothing to do with line 706 or v0.141.
with v0.141 I have problems with THZ disconnected after a while.
When I uncomment line 706 I got error
"msg2 InterfaceNotRespondig error found at step1 error found at step2"
any ideas?
Zitat von: immi am 05 April 2015, 13:58:50Topic is described here (http://forum.fhem.de/index.php/topic,33452.msg271164.html#msg271164).
... Willy had some troublle after updating his raspi; the /dev/usbsomething changed to /dev/usbsomethingelse.
Zitat von: der-Lolo am 12 April 2015, 16:34:32Now I have 4K between basement (19°C) and sleep-room (23°C).
Is there such a big difference in the floors that it makes sense? Maybe there is another way to bring some cold fresh water in the system...
Zitat von: houseowner123 am 12 April 2015, 23:46:52Not cooling:
So immi you See a potential to use manual circulation for cooling.
if (Mythz.inside_temp < Mythz.p01RoomTempNightHC1) AND (Mythz.pOpMode = "DHWmode") then
set Mythz pOpMode automatic
endif
if (Mythz.inside_temp > (Mythz.p01RoomTempNightHC1 + 1)) AND Mythz.outsidetemp > 4 AND (Mythz.pOpMode = "automatic") then
set Mythz pOpMode DHWmode
endif
Zitat von: willybauss am 22 April 2015, 21:26:59I agree completely; moreover you have no indication of the unit with a slider.....so I am not sure I will upload it to the repository.
Disadvantage of sliders ...
######## ThzSummerWinterMode ############################################
## Aufruf { ThzSummerWinterMode() }
sub ThzSummerWinterMode () {
if(fhem( "Mythz.inside_temp" ) lt fhem( "Mythz.p01RoomTempNightHC1" ) and ( fhem( "Mythz.pOpMode" ) eq "DHWmode")) {
fhem( "set Mythz pOpMode automatic" );
}
if(fhem( "Mythz.inside_temp" ) gt ( fhem( "Mythz.p01RoomTempNightHC1" ) + 1 ) and ( fhem( "Mythz.outsidetemp") gt 4 ) and (fhem( "Mythz.pOpMode" ) eq "automatic")) {
fhem( "set Mythz pOpMode DHWmode ");
}
}
define CheckThzMode at *02:00:00 { ThzSummerWinterMode() }
define opmodechange DOIF (([Mythz:sHC1:[insideTempRC. (\d+)]] < [Mythz:p01RoomTempNightHC1:d]) and ([Mythz:sHC1:pOpMode] eq "DHWmode")) (set Mythz pOpMode automatic)
attr opmodechange cmdpause 7200
attr opmodechange room heatpump
Zitat von: houseowner123 am 27 April 2015, 00:09:15
... When May is here, just setting OpMode to DHW until End of Sept. seems easier? So, where is the (energy-saving?) advantage of your option?
Zitat von: willybauss am 22 April 2015, 21:26:59These unnecessary nightly heating cycles happen in spring time and most probably im autumn as well over a period of ~ 2 months. Savind 2 hours * 1.5kW every night will save a lot of energy.
... Curently I'm thinking about an automatic change of opmode ..., executed every night at e.g. 3 am...
My intention is not on avoiding manual setting of opmode, but on saving energy: this could avoid useless heating cycles at approx. 4 am, when the house is still warm enough, warmed up by sunshine of previous day. Currently the heating cycle starts anyway, just caused by low outside temperature. I don't want to set room influence to more than the current 70%, therefore I need such an alternative solution.
Zitat von: Heiner am 29 April 2015, 22:07:18Since when are you using v0141? I uploaded it 4 weeks ago. Can you exclude a problem with it?
Hi since 3 days I habe issues with the THZ module. I do not get ans data anymore and my log keeps empty.
If I do a manual GET i do geht this mesage: msg2 closed connection
I use V 141
Zitat von: immi am 27 April 2015, 01:17:22Hi immi,
Hi Willy
no need for perl coding
try something like thisCode Auswählendefine opmodechange DOIF (([Mythz:sHC1:[insideTempRC. (\d+)]] < [Mythz:p01RoomTempNightHC1:d]) and ([Mythz:sHC1:pOpMode] eq "DHWmode")) (set Mythz pOpMode automatic)
attr opmodechange cmdpause 7200
attr opmodechange room heatpump
...
Zitatopmodechange DOIF: unknown expression format: pOpMode
Zitat von: willybauss am 29 April 2015, 23:07:52
@immi:
Is the short syntax, e.g. [Mythz:pOpMode] limited to DOIF, of can it be a general replacement for the lengthy ReadingsVal(...) ?
I tried to use it in combination with a normal "if", but it doesn't seem to work.
Der IF-Befehl dient in erster Linie zur Vereinfachung der Schreibweise in Kombination mit anderen FHEM-Modulen wie at, notify oder DOIF. Intern wird der IF-Befehl zur Ausführung in einen Perl if-Befehl umgesetzt. Das soll anhand von Beispielen verdeutlicht werden:
IF ([switch] eq "off") (set lamp on)
entspricht:
{if (Value('switch') eq "off"){fhem('set lamp on')}}
IF ([living_room:temperature] > 12) (set lamp on, set lamp2 off)
entspricht:
{if (ReadingVal('living_room','temperature','') > 12) {fhem('set lamp on');;fhem('set lamp2 off')}}
IF ([bathroom:humidity] > 70) (set led red) ELSE (set led green)
entspricht:
{if (ReadingsVal('bathroom','humidity','') > 70) {fhem('set led red')} else {fhem('set led green')}}
.2015.04.30 21:23:18 5: THZ_Get: Try to get 'p01RoomTempDayHC1'
2015.04.30 21:23:18 5: THZ_Get_Comunication: Check if port is open. State = '(automatic)'
2015.04.30 21:23:18 5: THZ_Get: Error msg2: 'closed connection'
Zitat von: immi am 30 April 2015, 13:56:50Thanks. Looks like I should rework my code completely to shorten it by using IF instead of if.
TO my knoledge it is limited to some modules like DOIF or IF.... just look to commandref
..
Zitat von: willybauss am 01 Mai 2015, 08:36:07remember not to use IF between {}
Thanks. Looks like I should rework my code completely to shorten it by using IF instead of if.
([pl_soBad] eq "on") (
IF ([pr_soBad] eq "present")
(IF ([player:config] eq "auto") (set sonos_Bad Volume 12,
set sonos_Wohnzimmer AddMember sonos_Bad, attr pr_soBad disable 1,
set EntertainmentEvents add Bad Lautsprecher im Automatikmode angeschaltet und zur Wohnzimmer Wiedergabe hinzugefügt...)
ELSE (set EntertainmentEvents add Der Bad Lautsprecher ist im Sonossystem zur Wiedergabe bereit...,
attr pr_soBad disable 1)
)
ELSE
(set pl_soBad off,set EntertainmentEvents add Netzwerkeinbindung missglückt, ich versuche den Player neu zu starten.,
define at_pl_soBad at +00:00:05 set pl_soBad on)
)
attr Heizung stateFormat pOpmode
Zitat von: Heiner am 01 Mai 2015, 15:51:38You cannot change the status of the interface. I check it before reading and writing
Error found,Code Auswählenattr Heizung stateFormat pOpmode
cause the Problem.But why.
I just wanted to see on the Device that Popmode and it works and Shows "automatic" rather than "open" as without this Attribute. But it cause the Problem of not being able to perform any GET command anymore.
Is my idea wrong, or shall we state a hint in the Wiki?
define opmode readingsProxy Mythz:pOpMode
attr opmode alias Operation Mode
attr opmode group THZ
attr opmode room pompa
attr opmode setFn {$CMD = "$READING $CMD"}
attr opmode setList state:automatic,standby,DAYmode,setback,DHWmode,manual,emergency
attr opmode webCmd state
ZitatActually for your application, you can connect the pool to HC1 with 2 valves controlling when do you want to heat the pool.
---
Moreover, in summer, you could circulate HC1 in the pool and without any effort (1 pipe, 2 valves and 1 thermometer) you can cool down your living room in summer!!
Assume you have 26°C in your living room and 22 in the pool, you just have to circulate to cool down your livingroom.
Zitat von: Heiner am 15 Mai 2015, 11:54:34Not to my knoledge
Question:
Can I somehow influence the flow of the pump with any given Parameter of the THZ? Or do I need to manually adjust at the pump itself?
Zitat50°C vorlauf for the pool??
Which Parameter do I change to what value to get a flow temp of ideally stable 50° at a outside temp of about 20°?
ZitatYes, If the question is: can we switch the heatcircuit and the heatpump-compressor indipendently?
In case I would like to use this to cool down my home, I need a second valve to bring the flow from pump via poolhetexchanger to house heating and back to the pump. But being realistic, if i heat the Pool to about 25-27°, cooling the home is only usefull for outside temps beyond 30°. Can we Switch the heatpump on without heating, means in summermode?
# prüfe alle 2 Stunden um xx:03:00 ob zu kalt und schalte ggf. Heizung ein
define OpModeDhwToAuto at +*02:00:00 IF (([Mythz:sHC1:[insideTempRC. (\d+)]] < [Mythz:p02RoomTempNightHC1:d]) and ([Mythz:pOpMode] eq "DHWmode")) (set Mythz pOpMode automatic)
attr OpModeDhwToAuto alignTime 00:03:00
attr OpModeDhwToAuto room Heizung
# prüfe 1 mal nachts un 2 Uhr, ob innen und aussen warm genug und schalte ggf, Heizung aus
define OpModeAutoToDhw at *02:02:00 IF (([Mythz:sHC1:[insideTempRC. (\d+)]] > [Mythz:p02RoomTempNightHC1:d]) and ([Mythz:outside_temp] > 4) and ([Mythz:pOpMode] eq "automatic")) (set Mythz pOpMode DHWmode)
attr OpModeAutoToDhw room Heizung
Zitat von: willybauss am 22 Mai 2015, 16:38:36
So I expect the mode to switch from DHW to automatic just if insideTempRC is less than 21.5°C. But tonight this switch happened while insideTempRC was at 21.9°C. Can anyone imagine why? As far as I understand the regular expression (\d+) should just cut the ' °C' part, but should not cut the '.9' as well. May I need to replace the dot by a comma, or what could be the root cause and/or the solution?
insideTempRC. (\d+)
insideTempRC. (-?\d+(\.\d+)?)
insideTempRC. (\S+)
DOIF
Mythz.alarm_insideTempHigh cmd_2
Mythz.alarm_insideTempLow cmd_2
at
OpModeAutoToDhw Next: 02:02:00
OpModeDhwToAuto Next: 10:03:00
define Mythz.alarm_ovenFireplace notify Mythz { if (((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]) < ReadingsVal("Mythz", "ovenFireplace_old", 0)) { DebianMail('abc@@xyz.de','Alarm Waermepumpe, Unterdrucksensor','Unterdrucksensor für Kamin hat ausgelöst. Bitte an der Messdose oberhalb vom Kühlschrank die rechte Taste(Enter) zur Quittierung für 3sec drücken.','') ;; } fhem("setreading Mythz ovenFireplace_old ". ((split ' ',ReadingsVal("Mythz","sGlobal",0))[49]));; }
Zitat von: willybauss am 23 Mai 2015, 08:21:29
I frequently observe the issue, that unscheduled fan selector changes (p43 ... p46) are often not accepted by the THZ, though correctly requested via FHEM or via display. Again: even THZ display driven changes are not always executed by the THZ !
I believe I'm not the only one having this problem.
I wonder if I should enhance my fhem code to check shortly after every change if it works and redo the action if necessary. On the other side I think it's a more common issue and therefore might belong to the THZ module.
Any comments?
define AutoCoolingVentilation DOIF ([23:00-04:00] and [Mythz:inside_temp] > 26 and [Mythz:outside_temp] < 19 and [Mythz:outputVentilatorPower] eq 0) (set Mythz p99startUnschedVent 1)
2015.07.24 20:02:25 2: AutoCoolingVentilationTest: set Mythz p99startUnschedVent 3: 3
Zitat von: mlb am 24 Juli 2015, 20:06:46
Hi immi
Readings seem to work fine, please see the attached screenshot... Where this error could come from?
Also in log file I haveCode Auswählen2015.07.24 20:02:25 2: AutoCoolingVentilationTest: set Mythz p99startUnschedVent 3: 3
Regards
define AutoCoolingVentilation DOIF (([23:00-24:00] or [00:00-03:00]) and [Mythz:inside_temp] > 26 and [Mythz:outside_temp] < 19 and [Mythz:outputVentilatorPower] == 0) ({fhem("set Mythz p99startUnschedVent 3")};;;;sleep 1)
attr AutoCoolingVentilation room Heating
# Lüftung im Sommer bei hoher Außentemperatur absenken
define VentSommerReduziert DOIF ([+[1]:00] and ([?06:30-18:59|12345] or [?07:30-19:29|06]) and ([Myhtu21dogcD:temperature] > 24.5 and [Myhtu21dwzcD:temperature] > 24.5) and [Mythz:AussenTemp] > 26.0 and [Mythz:VentZuluft] ne 0 and [Mythz:VentAbluft] ne 0) (set Mythz p39Fanstage3AirflowInlet 125;;set Mythz p42Fanstage3AirflowOutlet 125;;set Mythz p43UnschedVent3 60;;set Mythz p99startUnschedVent 3;;sleep 1)
attr VentSommerReduziert room 11_Heizung_Hand
# Lüftung im Sommer bei niedriger Außentemperatur erhöhen
define VentSommerErhoeht DOIF ([+[1]:00] and ([?19:00-06:29|12345] or [?19:30-07:29|06]) and ([Myhtu21dogcD:temperature] > 24.5 and [Myhtu21dwzcD:temperature] > 24.5) and [Mythz:AussenTemp] < 23.0 and [Mythz:VentZuluft] ne 0 and [Mythz:VentAbluft] ne 0) (set Mythz p39Fanstage3AirflowInlet 200;;set Mythz p42Fanstage3AirflowOutlet 200;;set Mythz p43UnschedVent3 60;;set Mythz p99startUnschedVent 3;;sleep 1)
attr VentSommerErhoeht room 11_Heizung_Hand
Zitat von: NaCkHaYeD am 05 August 2015, 09:09:53
return() nimmt er bei mir nicht, ungültiges Kommando
2015.08.10 13:00:02 2: VentSommerReduziertSetDrehzahl: set Mythz p39Fanstage3AirflowInlet 125;set Mythz p42Fanstage3AirflowOutlet 125: 125 m3/h
125 m3/h
2015.08.10 13:00:02 2: VentSommerReduziertSetDrehzahl: set Mythz p39Fanstage3AirflowInlet 125;set Mythz p42Fanstage3AirflowOutlet 125: 125 m3/h
125 m3/h
2015.08.10 13:00:12 2: VentSommerReduziertSetZeit: set Mythz p43UnschedVent3 55;sleep 1: 55 min
2015.08.10 13:00:13 2: VentSommerReduziertSetZeit: set Mythz p43UnschedVent3 55;sleep 1: 55 min
2015.08.10 13:00:21 2: VentSommerReduziertSetModus: set Mythz p99startUnschedVent 3;sleep 1: 3
2015.08.10 13:00:22 2: VentSommerReduziertSetModus: set Mythz p99startUnschedVent 3;sleep 1: 3
2015.08.10 13:00:31 2: VentSommerReduziertSetModus2: set Mythz p99startUnschedVent 3;sleep 1: 3
2015.08.10 13:00:32 2: VentSommerReduziertSetModus2: set Mythz p99startUnschedVent 3;sleep 1: 3
define VentAutoMode Dummy
attr VentAutoMode devStateIcon man:vent_ventilation_level_manual_m sommer:weather_summer winter:weather_winter
attr VentAutoMode group 02_automatische_Drehzahlsteuerung
attr VentAutoMode room 12_Heizung_Vent
set VentAutoMode man
attr VentAutoMode setList state:man,sommer,winter
attr VentAutoMode webCmd man:sommer:winter
define VentSommerReduziertDrehzahl Dummy
attr VentSommerReduziertDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertDrehzahl 125
attr VentSommerReduziertDrehzahl room 12_Heizung_Vent
attr VentSommerReduziertDrehzahl setList state:slider,70,5,280
attr VentSommerReduziertDrehzahl webCmd state
define VentSommerErhoehtDrehzahl Dummy
attr VentSommerErhoehtDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtDrehzahl 200
attr VentSommerErhoehtDrehzahl room 12_Heizung_Vent
attr VentSommerErhoehtDrehzahl setList state:slider,70,5,280
attr VentSommerErhoehtDrehzahl webCmd state
define VentSommerInnenTemp Dummy
attr VentSommerInnenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerInnenTemp 24.5
attr VentSommerInnenTemp room 12_Heizung_Vent
attr VentSommerInnenTemp setList state:textField
attr VentSommerInnenTemp webCmd state
define VentSommerReduziertAussenTemp Dummy
attr VentSommerReduziertAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertAussenTemp 26.0
attr VentSommerReduziertAussenTemp room 12_Heizung_Vent
attr VentSommerReduziertAussenTemp setList state:textField
attr VentSommerReduziertAussenTemp webCmd state
define VentSommerErhoehtAussenTemp Dummy
attr VentSommerErhoehtAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtAussenTemp 23.0
attr VentSommerErhoehtAussenTemp room 12_Heizung_Vent
attr VentSommerErhoehtAussenTemp setList state:textField
attr VentSommerErhoehtAussenTemp webCmd state
define VentSommerErhoehtTempDifferenz Dummy
attr VentSommerErhoehtTempDifferenz group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtTempDifferenz 1.0
attr VentSommerErhoehtTempDifferenz room 12_Heizung_Vent
attr VentSommerErhoehtTempDifferenz setList state:textField
attr VentSommerErhoehtTempDifferenz webCmd state
# Lüftung im Sommer bei hoher Außentemperatur absenken
# Zunächst die Drehzahlen und Dauer setzen, falls noch nicht erfolgt
define VentSommerReduziertSetDrehzahl DOIF ([VentAutoMode] eq "sommer" and [+[1]:00] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and ([Mythz:p39Fanstage3AirflowInlet] ne [VentSommerReduziertDrehzahl] or [Mythz:p42Fanstage3AirflowOutlet] ne [VentSommerReduziertDrehzahl])) (set Mythz p39Fanstage3AirflowInlet [VentSommerReduziertDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerReduziertDrehzahl])
# dann die Lüftung auf 60min
define VentSommerReduziertSetZeit DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 10)] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p43UnschedVent3 55;;sleep 1)
# dann die Lüftung auf manuell stellen
define VentSommerReduziertSetModus DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 20)] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p99startUnschedVent 3;;sleep 1)
define VentSommerReduziertSetModus2 DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 30)] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p99startUnschedVent 3;;sleep 1)
attr VentSommerReduziertSetDrehzahl room 12_Heizung_Vent
attr VentSommerReduziertSetZeit room 12_Heizung_Vent
attr VentSommerReduziertSetModus room 12_Heizung_Vent
attr VentSommerReduziertSetModus2 room 12_Heizung_Vent
attr VentSommerReduziertSetDrehzahl group 00_DOIF
attr VentSommerReduziertSetZeit group 00_DOIF
attr VentSommerReduziertSetModus group 00_DOIF
attr VentSommerReduziertSetModus2 group 00_DOIF
# Lüftung im Sommer bei niedriger Außentemperatur erhöhen
# Zunächst die Drehzahlen und Dauer setzen, falls noch nicht erfolgt
define VentSommerErhoehtSetDrehzahl DOIF ([VentAutoMode] eq "sommer" and [+[1]:00] and ([?19:00-06:01|12345] or [?19:30-07:01|06]) and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp]) or ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) and ([Mythz:p39Fanstage3AirflowInlet] ne [VentSommerErhoehtDrehzahl] or [Mythz:p42Fanstage3AirflowOutlet] ne [VentSommerErhoehtDrehzahl])) (set Mythz p39Fanstage3AirflowInlet [VentSommerErhoehtDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerErhoehtDrehzahl])
# dann die Lüftung auf 60min
define VentSommerErhoehtSetZeit DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 10)] and ([?19:00-06:01|12345] or [?19:30-07:01|06]) and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp]) or ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p43UnschedVent3 55;;sleep 1)
# dann die Lüftung auf manuell stellen
define VentSommerErhoehtSetModus DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 20)] and ([?19:00-06:01|12345] or [?19:30-07:01|06]) and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp]) or ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p99startUnschedVent 3;;sleep 1)
define VentSommerErhoehtSetModus2 DOIF ([VentAutoMode] eq "sommer" and [([+[1]:00] + 30)] and ([?19:00-06:01|12345] or [?19:30-07:01|06]) and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp]) or ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0) (set Mythz p99startUnschedVent 3;;sleep 1)
attr VentSommerErhoehtSetDrehzahl room 12_Heizung_Vent
attr VentSommerErhoehtSetZeit room 12_Heizung_Vent
attr VentSommerErhoehtSetModus room 12_Heizung_Vent
attr VentSommerErhoehtSetModus2 room 12_Heizung_Vent
attr VentSommerErhoehtSetDrehzahl group 00_DOIF
attr VentSommerErhoehtSetZeit group 00_DOIF
attr VentSommerErhoehtSetModus group 00_DOIF
attr VentSommerErhoehtSetModus2 group 00_DOIF
Zitat von: NaCkHaYeD am 10 August 2015, 13:08:04The tecalor understands the command but sometimes does not obey: it requires that you repeat the command twice, without waiting too much.
Ich habe aber wie gesagt auch festgestellt, wenn ich selber das Kommando gebe, dass es nicht zuverlässig per FHEM funktioniert
Zitat von: immi am 09 August 2015, 09:16:04
v 0.143 uploaded
added heatcurves to backend, added p77OutThermFilterTime
Zitat von: micomat am 11 August 2015, 02:49:36Hi
What exactly is p77 OutThermFilterTime showing?
Direktanwahl: P77
Um zu vermeiden, dass bei schnellen Außentemperaturänderungen
die Heizkurve verschoben wird und dadurch die Wärmepumpe
ständig ein- und ausschaltet, wird die Außentemperatur
gedämpft. Es wird ein Mittelwert über die eingestellte Zeit gebildet.
Die Dämpfung kann unter diesem Parameter zwischen
0 und 24 Stunden variiert werden.
define VentAutoMode Dummy
attr VentAutoMode devStateIcon man:vent_ventilation_level_manual_m sommer:weather_summer winter:weather_winter
attr VentAutoMode group 02_automatische_Drehzahlsteuerung
attr VentAutoMode room 12_Heizung_Vent
set VentAutoMode man
attr VentAutoMode setList state:man,sommer,winter
attr VentAutoMode webCmd man:sommer:winter
define VentSommerReduziertDrehzahl Dummy
attr VentSommerReduziertDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertDrehzahl 125
attr VentSommerReduziertDrehzahl room 12_Heizung_Vent
attr VentSommerReduziertDrehzahl setList state:slider,70,5,280
attr VentSommerReduziertDrehzahl webCmd state
define VentSommerErhoehtDrehzahl Dummy
attr VentSommerErhoehtDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtDrehzahl 200
attr VentSommerErhoehtDrehzahl room 12_Heizung_Vent
attr VentSommerErhoehtDrehzahl setList state:slider,70,5,280
attr VentSommerErhoehtDrehzahl webCmd state
define VentSommerInnenTemp Dummy
attr VentSommerInnenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerInnenTemp 24.5
attr VentSommerInnenTemp room 12_Heizung_Vent
attr VentSommerInnenTemp setList state:textField
attr VentSommerInnenTemp webCmd state
define VentSommerReduziertAussenTemp Dummy
attr VentSommerReduziertAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertAussenTemp 26.0
attr VentSommerReduziertAussenTemp room 12_Heizung_Vent
attr VentSommerReduziertAussenTemp setList state:textField
attr VentSommerReduziertAussenTemp webCmd state
define VentSommerErhoehtAussenTemp Dummy
attr VentSommerErhoehtAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtAussenTemp 23.0
attr VentSommerErhoehtAussenTemp room 12_Heizung_Vent
attr VentSommerErhoehtAussenTemp setList state:textField
attr VentSommerErhoehtAussenTemp webCmd state
define VentSommerErhoehtTempDifferenz Dummy
attr VentSommerErhoehtTempDifferenz group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtTempDifferenz 1.0
attr VentSommerErhoehtTempDifferenz room 12_Heizung_Vent
attr VentSommerErhoehtTempDifferenz setList state:textField
attr VentSommerErhoehtTempDifferenz webCmd state
# Lüftung im Sommer bei hoher Außentemperatur absenken
define VentSommerReduziert DOIF ([VentAutoMode] eq "sommer" and [+600] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0 and [Mythz:p07FanStageDay] != 3) (set Mythz p39Fanstage3AirflowInlet [VentSommerReduziertDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerReduziertDrehzahl];;set Mythz p07FanStageDay 3;;) DOELSEIF (([VentAutoMode] ne "sommer" or [+600] and ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= [VentSommerInnenTemp] or [Mythz:AussenTemp] <= [VentSommerReduziertAussenTemp])) and [Mythz:p07FanStageDay] != 2) (set Mythz p07FanStageDay 2;;)
attr VentSommerReduziert do always
attr VentSommerReduziert room 12_Heizung_Vent
attr VentSommerReduziert group 00_DOIF
# Lüftung im Sommer bei niedriger Außentemperatur erhöhen
define VentSommerErhoeht DOIF ([VentAutoMode] eq "sommer" and [+600] and ([?19:00-23:59|12345] or [?00:00-06:01|12345] or [?19:30-23:59|06] or [?00:00-07:01|06]) and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp]) or ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0 and [Mythz:p08FanStageNight] != 3) (set Mythz p39Fanstage3AirflowInlet [VentSommerErhoehtDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerErhoehtDrehzahl];;set Mythz p08FanStageNight 3;;) DOELSEIF (([VentAutoMode] ne "sommer" or [+600] and (((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= [VentSommerInnenTemp] or [Mythz:AussenTemp] >= [VentSommerErhoehtAussenTemp]) and ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz])))) and [Mythz:p08FanStageNight] != 1) (set Mythz p08FanStageNight 1)
attr VentSommerErhoeht do always
attr VentSommerErhoeht room 12_Heizung_Vent
attr VentSommerErhoeht group 00_DOIF
define VentAutoMode Dummy
attr VentAutoMode devStateIcon man:vent_ventilation_level_manual_m sommer:weather_summer winter:weather_winter
attr VentAutoMode group 02_automatische_Drehzahlsteuerung
attr VentAutoMode room 12_Heizung_Vent
set VentAutoMode man
attr VentAutoMode setList state:man,sommer,winter
attr VentAutoMode webCmd man:sommer:winter
define VentSommerReduziertDrehzahl Dummy
attr VentSommerReduziertDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertDrehzahl 125
attr VentSommerReduziertDrehzahl room 12_Heizung_Vent
attr VentSommerReduziertDrehzahl setList state:slider,70,5,280
attr VentSommerReduziertDrehzahl webCmd state
define VentSommerErhoehtDrehzahl Dummy
attr VentSommerErhoehtDrehzahl group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtDrehzahl 200
attr VentSommerErhoehtDrehzahl room 12_Heizung_Vent
attr VentSommerErhoehtDrehzahl setList state:slider,70,5,280
attr VentSommerErhoehtDrehzahl webCmd state
define VentSommerInnenTemp Dummy
attr VentSommerInnenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerInnenTemp 24.5
attr VentSommerInnenTemp room 12_Heizung_Vent
attr VentSommerInnenTemp setList state:textField
attr VentSommerInnenTemp webCmd state
define VentSommerReduziertAussenTemp Dummy
attr VentSommerReduziertAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerReduziertAussenTemp 26.0
attr VentSommerReduziertAussenTemp room 12_Heizung_Vent
attr VentSommerReduziertAussenTemp setList state:textField
attr VentSommerReduziertAussenTemp webCmd state
define VentSommerErhoehtAussenTemp Dummy
attr VentSommerErhoehtAussenTemp group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtAussenTemp 23.0
attr VentSommerErhoehtAussenTemp room 12_Heizung_Vent
attr VentSommerErhoehtAussenTemp setList state:textField
attr VentSommerErhoehtAussenTemp webCmd state
define VentSommerErhoehtTempDifferenz Dummy
attr VentSommerErhoehtTempDifferenz group 02_automatische_Drehzahlsteuerung
set VentSommerErhoehtTempDifferenz 1.0
attr VentSommerErhoehtTempDifferenz room 12_Heizung_Vent
attr VentSommerErhoehtTempDifferenz setList state:textField
attr VentSommerErhoehtTempDifferenz webCmd state
# Lüftung im Sommer bei hoher Außentemperatur absenken
define VentSommerReduziert DOIF ([VentAutoMode] eq "sommer" and [+600] and ([?06:30-19:01|12345] or [?07:30-19:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and [Mythz:AussenTemp] > [VentSommerReduziertAussenTemp] and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0 and [Mythz:p07FanStageDay] != 3) (set Mythz p39Fanstage3AirflowInlet [VentSommerReduziertDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerReduziertDrehzahl];;set Mythz p07FanStageDay 3;;) DOELSEIF (([VentAutoMode] ne "sommer" or [+600] and ((([?06:30-19:01|12345] or [?07:30-19:01|06]) and ((([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= [VentSommerInnenTemp] or [Mythz:AussenTemp] <= [VentSommerReduziertAussenTemp]) or ([?19:00-23:59|12345] or [?00:00-06:01|12345] or [?19:30-23:59|06] or [?00:00-07:01|06])))) and [Mythz:p07FanStageDay] != 2) (set Mythz p07FanStageDay 2)
attr VentSommerReduziert do always
attr VentSommerReduziert room 12_Heizung_Vent
attr VentSommerReduziert group 00_DOIF
# Lüftung im Sommer bei niedriger Außentemperatur erhöhen
define VentSommerErhoeht DOIF ([VentAutoMode] eq "sommer" and [+600] and ([?19:00-23:59|12345] or [?00:00-06:01|12345] or [?19:30-23:59|06] or [?00:00-07:01|06]) and (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > [VentSommerInnenTemp] and ([Mythz:AussenTemp] < [VentSommerErhoehtAussenTemp] or (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) > ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz])) and [Mythz:VentZuluft] != 0 and [Mythz:VentAbluft] != 0 and [Mythz:p08FanStageNight] != 3) (set Mythz p39Fanstage3AirflowInlet [VentSommerErhoehtDrehzahl];;set Mythz p42Fanstage3AirflowOutlet [VentSommerErhoehtDrehzahl];;set Mythz p08FanStageNight 3;;) DOELSEIF (([VentAutoMode] ne "sommer" or [+600] and ((([?19:00-23:59|12345] or [?00:00-06:01|12345] or [?19:30-23:59|06] or [?00:00-07:01|06]) and ( (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= [VentSommerInnenTemp] or [Mythz:AussenTemp] >= [VentSommerErhoehtAussenTemp] or (([Myhtu21dogcD:temperature] + [Myhtu21dwzcD:temperature]) / 2) <= ([Mythz:AussenTemp] + [VentSommerErhoehtTempDifferenz]))) or ([?06:30-19:01|12345] or [?07:30-19:01|06]))) and [Mythz:p08FanStageNight] != 1) (set Mythz p08FanStageNight 1)
attr VentSommerErhoeht do always
attr VentSommerErhoeht room 12_Heizung_Vent
attr VentSommerErhoeht group 00_DOIF
Zitat von: skyper am 05 September 2015, 14:05:34welcome in FHEM
i have a stiebel 403sol with firmware 3.39
is there a known problem with this firmware or fully supported ? (not listed in the wiki)
my serial connection (12m far away) only works with 57600 baud and not very good. (not faster, not slower)
often there is "Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?"
or an simple get sFirmware shows: 01 msg2 new unknown answer, next time "msg2 InterfaceNotRespondig "
Zitat von: immi am 03 Februar 2015, 23:29:47
v 0.131 uploaded
changelog
- added p35PasteurisationInterval, p35PasteurisationTemp, p34BoosterDHWTempAct, p99DHWmaxFlowTemp, p89DHWeco
immi
Zitat von: micomat am 16 September 2015, 12:41:0312.2.3 Temperature enable - electric booster heater
any idea what P34 is about? Mine shows me -10°C
Zitat von: immi am 16 September 2015, 21:05:04
p.s I was tempter to answer RTFM, but you are right, the explanation is definitely not clear
https://xkcd.com/293/
2015.10.11 20:51:42 5: Cmd: >get Mythz sLast10errors<
2015.10.11 20:51:42 5: THZ_Get: Try to get 'sLast10errors'
2015.10.11 20:51:42 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2015.10.11 20:51:42 5: Mythz sending 02
2015.10.11 20:51:42 5: SW: 02
2015.10.11 20:51:42 5: Mythz start Funktion THZ_ReadAnswer
2015.10.11 20:51:42 5: THZ_ReadAnswer: uc unpack: '10'
2015.10.11 20:51:42 5: Mythz sending 0100D2D11003
2015.10.11 20:51:42 5: SW: 0100D2D11003
2015.10.11 20:51:42 5: Mythz start Funktion THZ_ReadAnswer
2015.10.11 20:51:42 5: THZ_ReadAnswer: uc unpack: '10'
2015.10.11 20:51:42 5: Mythz start Funktion THZ_ReadAnswer
2015.10.11 20:51:42 5: THZ_ReadAnswer: uc unpack: '02'
2015.10.11 20:51:42 5: Mythz sending 10
2015.10.11 20:51:42 5: SW: 10
2015.10.11 20:51:42 5: Mythz start Funktion THZ_ReadAnswer
2015.10.11 20:51:42 5: double read 1 activated 01005ED10101220030013601000000
2015.10.11 20:51:42 5: double read 1 result with buf1 01005ED10101220030013601000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 2 activated 01005ED10101220030013601000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 2 result with buf1 01005ED10101220030013601000000000000000000000000000000000000000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 3 activated 01005ED10101220030013601000000000000000000000000000000000000000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 3 result with buf1 01005ED10101220030013601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 4 activated 01005ED10101220030013601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2015.10.11 20:51:42 5: double read 4 result with buf1 01005ED101012200300136010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001003
2015.10.11 20:51:42 5: THZ_ReadAnswer: uc unpack: '01005ED101012200300136010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001003'
2015.10.11 20:51:42 5: Mythz sending 10
2015.10.11 20:51:42 5: SW: 10
2015.10.11 20:51:42 5: Parse message: 5ED10101220030013601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2015.10.11 20:51:42 5: Message length: 128
2015.10.11 20:51:42 5: Triggering Mythz (1 changes)
2015.10.11 20:51:42 5: Notify loop for Mythz sLast10errors: number_of_faults: 1 fault0CODE: F34_FlowSensor fault0TIME: 03:04 fault0DATE: 3.1 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 0 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 0 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 0
2015.10.11 20:51:42 5: Triggering Mythz.alarm_boosterDHW
Zitat2015-10-18_16:47:05 Mythz sHC1: outsideTemp: 8 x08: -31.4 returnTemp: 23.6 integralHeat: -45 flowTemp: 24.4 heatSetTemp: 26 heatTemp: 23.8 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.1 x72: 0 x76: 2.2 onHysteresisNo: 0 offHysteresisNo: 1 HCBoosterStage: 0
Zitatattr 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))}
Zitat2015-10-18_16:47:05 Mythz inside_temp: 22.1
Zitat von: tom_1 am 18 Oktober 2015, 19:07:01
Hi,
yes I have an external display.
insidetemp i have found in the logfile (BUT without timestamp????). So apparently the problem is, that i do not have this splitted line for inside temp...
2015-10-18_13:27:23 Mythz inside_temp: 18.8
attr Mythz interval_sHC1 300
attr Mythz interval_sGlobal 300
define atMythzGlobal at +*00:05:00 {fhem "get Mythz sGlobal","1";;return()}
Zitatdefine Mythz THZ /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0@115200The other rows in my example may be required as well, if you want e.g. to be informed by email in case of failures etc.
attr Mythz icon sani_heating
attr Mythz interval_sGlobal 300
attr Mythz interval_sHC1 300
attr Mythz interval_sHistory 3600
attr Mythz interval_sLast10errors 3600
Zitatdefine atMythzGlobal at +*00:05:00 {fhem "get Mythz sGlobal","1";;return()}is not necessary.
define atMythzHistory at +*08:00:00 {fhem "get Mythz sHistory","1";;return()}
Zitat von: mlb am 12 Oktober 2015, 23:28:23
It works fine with 3.13.0-40, so we need to hold on with kernel update to latest until it is fixed.
2015.11.07 07:22:50 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:22:51 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:22:52 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:22:53 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:22:55 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:22:56 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:22:57 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:22:58 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:23:00 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:23:03 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:23:05 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:23:09 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:23:10 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:23:14 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:23:16 1: 192.168.178.50:2003 disconnected, waiting to reappear (Mythz)
2015.11.07 07:23:19 1: 192.168.178.50:2003 reappeared (Mythz)
2015.11.07 07:20:40 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2015.11.07 07:20:41 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2015.11.07 07:20:41 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2015.11.07 07:20:42 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
Zitat von: houseowner123 am 22 Dezember 2015, 13:26:50something like this?
Can you save it under your chosen name or is it generic date plus something else?
Zitat von: immi am 22 Dezember 2015, 13:35:04
something like this?
thz_2015_12_22.save
Zitat von: houseowner123 am 22 Dezember 2015, 13:45:01deletereading Mythz .*
So how do I get rid of all thos obsolete things? Can you implement a cleanup in the code looking for double entries and obsolete settings?
Zitat von: houseowner123 am 22 Dezember 2015, 14:04:38no. just delete all and restart. You will se no sideeffect.
Do I substitute the * with the name of the parameter?
deletereading Mythz .*
shutdown restart
Zitat von: willybauss am 22 Dezember 2015, 19:52:47I read the attibute "global statefile" and change the filename;
sounds nice. In which Location do you save the file?
Zitat von: glücksgriff am 27 Dezember 2015, 15:12:57fröhliche Weihnachten
Kann es daran liegen dass ich auf die SD-Karte speichere. Wohin speichert Ihr.
Zitat von: Frostie am 21 Januar 2016, 13:16:48Dominik, you are welcome
@ Immi: Great. Thanks a lot. I will try it as soon as possible and give feedback!
define di_highhum DOIF (([TF_BADOG:humidity] > 60 ) or ([TF_WZ:humidity] > 60 ) or ([RT_Schlafzimmer_Climate:humidity] > 55 ) and ([Mythz:Betriebsart] eq "winter") and ([Mythz:Zuluftventilator] == 0)) (set Mythz p07FanStageDay 2,set Mythz p08FanStageNight 2,define offagainafterhighhum1 at +01:00:00 set Mythz p07FanStageDay 0,define offagainafterhighhum2 at +01:00:00 set Mythz p08FanStageNight 0)
define LueftungAn at +*03:00:00 {if ((ReadingsVal("Mythz","Betriebsart",0) eq "winter") && (ReadingsVal("Mythz","Zuluftventilator",0) == 0)) {fhem "set Mythz p07FanStageDay 1; set Mythz p08FanStageNight 1"}}
define LueftungAus at+*03:00:00 {if ((ReadingsVal("Mythz","Betriebsart",0) eq "winter") && (ReadingsVal("Mythz","Zuluftventilator",0) > 0)) {fhem "set Mythz p07FanStageDay 0; set Mythz p08FanStageNight 0"}}
attr LueftingAus alignTime 00:30
define Summermode notify Mythz:Betriebsart.* {if ((ReadingsVal("Mythz","Betriebsart",0) eq "summer") && (ReadingsVal("Mythz","Zuluftventilator",0) == 0)) {fhem "set Mythz p07FanStageDay 1; set Mythz p08FanStageNight 1"}}
define Wintermode notify Mythz:Betriebsart.* {if ((ReadingsVal("Mythz","Betriebsart",0) eq "winter") && (ReadingsVal("Mythz","Zuluftventilator",0) > 0)) {fhem "set Mythz p07FanStageDay 0; set Mythz p08FanStageNight 0"}}
Zitat von: Frostie am 22 Januar 2016, 17:40:02So that I understand: what are the possible values of p80EnableSolar? only 0 and 1?
really unbelievable great support here! Thank you so much!
@ Immi: Now it works. Perfect. Thanks a lot.
Zitatpost in german the code in FHEM»Codeschnipsel
I have implemented a humidty control in the garage using the dewpoint module and status control via Piface. If the given conditions are true it opens the port a little bit to vent the garage. Works good, but the last days were definitly too cold. -20 degrees last night... If someone is interested in the code...
Zitat von: willybauss am 30 Januar 2016, 13:13:31Hallo Willy,
Darüber ist glaube ich keinem vor uns was bekannt. In sHC1 gibt es ein paar nicht identifizierte Werte
x60: x64: x72: 0x76:
Evtl. passt ja da was?
Zitat von: andre1979 am 31 Januar 2016, 16:06:38
hand betrieb
90EE00050102010200000195000000000000000000
automatik Betrieb
91EE01050102010200000195000000000000000000
Zitat von: andre1979 am 31 Januar 2016, 16:06:38
hand betrieb
90EE00050102010200000195000000000000000000
automatik Betrieb
91EE01050102010200000195000000000000000000
Vielen Dank für Eure Anregungen.
"EEprg206" => [["OpMode: ", 4, 2, "hex", 1], [" ProgStateHC: ", 10, 2, "opmodehc", 1], [" ProgStateDHW: ", 12, 2, "opmodehc", 1],
[" ProgStateFAN: ", 14, 2, "opmodehc", 1], [" BaseTimeAP0: ", 16, 8, "hex", 1], [" StatusAP0: ", 24, 2, "hex", 1],
[" StartTimeAP0: ", 26, 8, "hex", 1], [" EndTimeAP0: ", 34, 8, "hex", 1]
],
Zitat von: belu am 26 Februar 2016, 13:09:56
Wegen dem RS232 Converter für das Raspberry, hab da einen alten Prolific adapter aber es damit noch nie ans laufen gebrachte, habe mal geschaut Willy hat was von einem FT232R Chipsatz erwähnt das dieser gut mit der Raspberry läuft.
Habe da direkt so ein Kabel gefunden.
https://www.reichelt.de/Programmer-Entwicklungstools/TTL-232R-RPI/3/index.html?&ACTION=3&LA=5&ARTICLE=133760&GROUPID=2969&artnr=TTL+232R+RPI
define Alarm notify Heizung:sLast10errors:* { DebianMail('a.b@c.de', 'Alarm Heizung', 'Achtung Fehlermeldung',) }
Zitat(Heizung.sLast10errors.*)versucht, geht aber ebensowenig.
extraVent_ALL: set Mythz p46UnschedVent0 1000: Argument does not match the allowed inerval Min 0 ...... Max 900
ZitatLÜFTUNGZEIT AUSS. STUFE 0 P46 0-1000 Minuten
LÜFTUNGZEIT AUSS. STUFE 1 P45 0-1000 Minuten
LÜFTUNGZEIT AUSS. STUFE 2 P44 0-1000 Minuten
LÜFTUNGZEIT AUSS. STUFE 3 P43 0-1000 Minuten
Zitat von: The Spirit am 23 Juni 2016, 15:27:57es kommt darauf an wie lange ist die kabel.
HI.
Gibt es eigentlich Unterschiede, ob ich per USB oder RS232 drauf gehe?
Ich hätte die USB Variante bevorzugt, da ich FHEM auf einem RasPi betreibe und dort USB direkt vorhanden ist.
Wo finde ich die USB-Buchse an der Tecalor?
Hat da jemand ein Foto für mich?
Danke
Zitat von: immi am 23 Juni 2016, 18:05:36danke.
es kommt darauf an wie lange ist die kabel.
kurze kabel --> USB direktt könnte einfacher sein
sehr lange kabel --> RS232 ist besser un billiger
immi
DOELSEIF
( ([extraVent_Wohnzimmer_value] == 0)
and ([extraVent_Schlafzimmer_value] == 0)
and ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] > 10)
and ([Mythz:sGlobal:[dhwPump. (\d+)]] == 0)
and ([Mythz:Rel_humidity] < 60)
and ([RandomTimer_BinAbwesend] eq "ja") )
((set Mythz p07FanStageDay 0),
(set Mythz p08FanStageNight 0),
(attr extraVent_ALL cmdpause 1:1:1:7200),
{Log 1,"Ventilation set to level 0"})
DOIF (Bedingung1)
(set ...) ## erster Befehl der ersten Sequenz soll um eine Sekunde verzögert werden
(set ...) ## zweiter Befehl der ersten Sequenz soll um 2 Sekunden nach dem ersten Befehl verzögert werden
DOELSEIF (Bedingung2)
(set ...) ## erster Befehl der zweiten Sequenz soll um 3 Sekunden verzögert werden
(set ...) ## zweiter Befehl der zweiten Sequenz soll um 0,5 Sekunden nach dem ersten Befehl verzögert werden
attr <DOIF-module> wait 1,2:3,0.5
set Mythz p07FanStageDay 0
set Mythz p07FanStageDay 2
DOIF
(( ([extraVent_Wohnzimmer_value] == 3)
or ([extraVent_Schlafzimmer_value] == 3) )
and ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] < 55) )
((set Mythz p07FanStageDay 3),
(set Mythz p08FanStageNight 3),
(attr extraVent_ALL cmdpause 7200:7200:7200:7200),
{Log 1,"Ventilation set to level 3"})
DOELSEIF
(( ([extraVent_Wohnzimmer_value] == 2)
or ([extraVent_Schlafzimmer_value] == 2)
or ([Mythz:Rel_humidity] > 70) )
and ( ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] > 55)
or ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] < 30) ))
((set Mythz p07FanStageDay 2),
(set Mythz p08FanStageNight 2),
(attr extraVent_ALL cmdpause 1:7200:7200:7200),
{Log 1,"Ventilation set to level 2"})
DOELSEIF
(( ([extraVent_Wohnzimmer_value] == 1)
or ([extraVent_Schlafzimmer_value] == 1)
or ([Mythz:sGlobal:[dhwPump. (\d+)]] > 0) )
and ( ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] > 30)
or ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] < 10) ))
((set Mythz p07FanStageDay 1),
(set Mythz p08FanStageNight 1),
(attr extraVent_ALL cmdpause 1:1:7200:7200),
{Log 1,"Ventilation set to level 1"})
DOELSEIF
( ([extraVent_Wohnzimmer_value] == 0)
and ([extraVent_Schlafzimmer_value] == 0)
and ([Mythz:sGlobal:[inputVentilatorPower. (\d+)]] > 10)
and ([Mythz:sGlobal:[dhwPump. (\d+)]] == 0)
and ([Mythz:Rel_humidity] < 60)
and ([RandomTimer_BinAbwesend] eq "ja") )
((set Mythz p07FanStageDay 2),
(set Mythz p08FanStageNight 0),
(attr extraVent_ALL cmdpause 1:1:1:7200),
{Log 1,"Ventilation set to level 0"})
Zitat von: willybauss am 03 Juli 2016, 12:47:33
Another idea: may p09FanStageStandby be active as long as vacation time is set via the pHoliday* settings? I have to check the THZ manual.
set Mythz p09FanStageStandby 0
get pOpMode
Zitat von: immi am 03 Juli 2016, 14:45:13
try to look in sHC1, there is another opMode
Zitat von: willybauss am 03 Juli 2016, 18:00:34
Thanks for the hint. sHC1.opMode is the right one:
==> standby in case of vacation
==> setback in normal case
Zitat von: immi am 02 Juli 2016, 14:08:01
Hi Karl
It looks like you tecalor is busy and ansers very late.
I jut uploaded version 0.152 introducing a delay for you.
update fhem tomorrow; restart and tell me if you seen an improvement.
immi
Zitat von: Karle am 04 Juli 2016, 14:27:35Hi Karl
Hi Immi,
I updated the module and restartet FHEM, now it looks, that i have even more of this errors (nearly every minute, in the past it was ~20 minutes).
So this did not solve the issue.
Greets Karl
Zitat von: micomat am 06 Juli 2016, 13:02:22
have you tried to reduce the speed to 57600bps? maybe the messages are just too fast?
Zitat von: Karle am 07 Juli 2016, 12:40:29Also mine is set to 115200; I do not know why and I do not know if it can be changed or it is hardcoded.
no not yet, do you use the 57600 bps ? I don't know why it is set to 115200.
Zitat von: twiederh am 04 August 2016, 18:02:45Hi Thomas
Hallo,
mit der neuesten Version 0.152 laufen plötzlich die Messwerte für Aussen-, Vorlauf-, Rücklauf etc. von der FHEM Installationsanleitung für das THZ-Modul nicht mehr. Bei mir war es so, dass die letzten Werte vom 22. Juli waren, vermutlich dem Tag, an dem ich ein Update auf FHEM gestartet habe. Ich habe das Modul noch mal von vorne nach Anleitung konfiguriert, leider erscheinen die Werte in der Tabelle jetzt überhaupt nicht mehr. Leider habe ich keinerlei Informationen gefunden, was sich da geändert hat und wie ich die Werte wieder einlesen kann. Kann mir hier bitte jemand helfen?
define MyDashboard Dashboard
attr MyDashboard userattr dashboard_tab2backgroundimage dashboard_tab2colcount dashboard_tab2devices dashboard_tab2groups dashboard_tab2icon dashboard_tab2name dashboard_tab2rowcentercolwidth dashboard_tab2sorting
attr MyDashboard dashboard_activetab 1
attr MyDashboard dashboard_row top-center
attr MyDashboard dashboard_showtogglebuttons 0
attr MyDashboard dashboard_tab1colcount 1
attr MyDashboard dashboard_tab1groups THZ
attr MyDashboard dashboard_tab1name micofhem
attr MyDashboard dashboard_tab1sorting t0c100,THZ,true,170,253
define MyDashboard_weblink weblink htmlCode {DashboardAsHtml("MyDashboard")}
attr MyDashboard_weblink room DashboardRoom
define FileLog_Waermepumpe FileLog ./log/Waermepumpe-%Y.log Waermepumpe
define Waermepumpe THZ 192.168.1.167:2003
attr Waermepumpe interval_sGlobal 300
attr Waermepumpe interval_sHistory 28800
attr Waermepumpe interval_sLast10errors 120
attr Waermepumpe room Heizung
attr Waermepumpe userReadings AussenTemp:sGlobal {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[1]}, VorlaufTemp:sGlobal {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[3]}, RuecklaufTemp:sGlobal {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[5]}, WWTemp:sGlobal {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[9]}, KollektorTemp:sGlobal {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[79]}
define rg_thz readingsGroup Waermepumpe:<%temp_outside>,<Aussen>,AussenTemp Waermepumpe:<%sani_supply_temp@red>,<Vorlauf>,VorlaufTemp Waermepumpe:<%sani_return_temp@blue>,<Rücklauf>,RuecklaufTemp Waermepumpe:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Waermepumpe:<%sani_solar_temp>,<Kollektor>,KollektorTemp
attr rg_thz alias Heizung Temperaturen
attr rg_thz group THZ
attr rg_thz room Heizung
attr rg_thz valueFormat { AussenTemp => '%1.f °C', VorlaufTemp => '%1.f °C', AussenTemp=> '%1.f °C', RuecklaufTemp=> '%1.f °C', WWTemp=> '%1.f °C', KollektorTemp=> '%1.f °C' }
define MyDashboard Dashboard
attr MyDashboard userattr dashboard_tab2backgroundimage dashboard_tab2colcount dashboard_tab2devices dashboard_tab2groups dashboard_tab2icon dashboard_tab2name dashboard_tab2rowcentercolwidth dashboard_tab2sorting
attr MyDashboard dashboard_activetab 1
attr MyDashboard dashboard_row top-center
attr MyDashboard dashboard_showtogglebuttons 0
attr MyDashboard dashboard_tab1colcount 1
attr MyDashboard dashboard_tab1groups THZ
attr MyDashboard dashboard_tab1name micofhem
attr MyDashboard dashboard_tab1sorting t0c100,THZ,true,170,253
define MyDashboard_weblink weblink htmlCode {DashboardAsHtml("MyDashboard")}
attr MyDashboard_weblink room DashboardRoom
define FileLog_Waermepumpe FileLog ./log/Waermepumpe-%Y.log Waermepumpe
define Waermepumpe THZ 192.168.1.167:2003
attr Waermepumpe interval_sGlobal 300
attr Waermepumpe interval_sHistory 28800
attr Waermepumpe interval_sLast10errors 120
attr Waermepumpe room Heizung
attr Waermepumpe userReadings AussenTemp:sGlobal.* {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[1]}, VorlaufTemp:sGlobal.* {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[3]}, RuecklaufTemp:sGlobal.* {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[5]}, WWTemp:sGlobal.* {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[9]}, KollektorTemp:sGlobal.* {(split ' ',ReadingsVal("Waermepumpe","sGlobal",0))[79]}
define rg_thz readingsGroup Waermepumpe:<%temp_outside>,<Aussen>,AussenTemp Waermepumpe:<%sani_supply_temp@red>,<Vorlauf>,VorlaufTemp Waermepumpe:<%sani_return_temp@blue>,<Rücklauf>,RuecklaufTemp Waermepumpe:<%sani_boiler_temp@BD7800>,<Wasser>,WWTemp Waermepumpe:<%sani_solar_temp>,<Kollektor>,KollektorTemp
attr rg_thz alias Heizung Temperaturen
attr rg_thz group THZ
attr rg_thz room Heizung
attr rg_thz valueFormat { AussenTemp => '%1.f °C', VorlaufTemp => '%1.f °C', AussenTemp=> '%1.f °C', RuecklaufTemp=> '%1.f °C', WWTemp=> '%1.f °C', KollektorTemp=> '%1.f °C' }
2016-08-06_07:21:37 Waermepumpe sLast10errors: number_of_faults: 1 fault0CODE: F07_MainOutputFanFault fault0TIME: 17:32 fault0DATE: 28.12 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2016-08-06_07:23:37 Waermepumpe sLast10errors: number_of_faults: 1 fault0CODE: F07_MainOutputFanFault fault0TIME: 17:32 fault0DATE: 28.12 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2016-08-06_07:25:37 Waermepumpe sLast10errors: number_of_faults: 1 fault0CODE: F07_MainOutputFanFault fault0TIME: 17:32 fault0DATE: 28.12 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2016-08-06_07:26:08 Waermepumpe sGlobal: outsideTemp: 16.3 flowTemp: 28.9 returnTemp: 24.4 hotGasTemp: 25 dhwTemp: 49.6 flowTempHC2: -60 evaporatorTemp: 24.8 condenserTemp: 25.1 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 1 STB: 0 outputVentilatorPower: 55 inputVentilatorPower: 0 mainVentilatorPower: 0 outputVentilatorSpeed: 33 inputVentilatorSpeed: 0 mainVentilatorSpeed: 0 outside_tempFiltered: 18.8 relHumidity: 0 dewPoint: 0 P_Nd: 11.32 P_Hd: 11.05 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: 17.2 insideTemp: -60
2016-08-06_07:26:08 Waermepumpe AussenTemp: 16.3
2016-08-06_07:26:08 Waermepumpe VorlaufTemp: 28.9
2016-08-06_07:26:08 Waermepumpe RuecklaufTemp: 24.4
2016-08-06_07:26:08 Waermepumpe WWTemp: 49.6
2016-08-06_07:26:08 Waermepumpe KollektorTemp: 17.2
Zitat von: immi am 05 August 2016, 16:26:35
Hi Markus
would you be so nice to update the fhem wiki; the example with userreadings is outdated and needs ".*"
I think Willy has already updated his confifile example.
immi
Zitat01-BF011DA0808000
02-010003021003-010306021003-command not known
03-010004031003-010307031003-command not known
04-010005041003-010308041003-command not known
05-010006051003-010309051003-command not known
06-010007061003-01030A061003-command not known
07-010008071003-01030B071003-command not known
08-010009081003-01030C081003-command not known
09-340901B4000000510000000000000222
0A-01000B0A1003-0104C40A01B41003-UNKNOWN REQUEST
0B-01000C0B1003-0104C50B01B41003-UNKNOWN REQUEST
0C-01000D0C1003-0104C60C01B41003-UNKNOWN REQUEST
0D-01000E0D1003-0103110D1003-command not known
0E-01000F0E1003-0103120E1003-command not known
0F-010010100F1003-0103130F1003-command not known
10-01001110101003-010314101003-command not known
11-010012111003-010315111003-command not known
12-010013121003-010316121003-command not known
13-010014131003-010317131003-command not known
14-010015141003-010318141003-command not known
15-010016151003-010319151003-command not known
16-8D16FDA801E1011100000A003C61081717
17-010018171003-01031B171003-command not known
18-010019181003-01031C181003-command not known
19-01001A191003-01031D191003-command not known
1A-01001B1A1003-01031E1A1003-command not known
1B-01001C1B1003-01031F1B1003-command not known
1C-01001D1C1003-0103201C1003-command not known
1D-01001E1D1003-0103211D1003-command not known
1E-01001F1E1003-0103221E1003-command not known
1F-0100201F1003-0103231F1003-command not known
20-010021201003-010324201003-command not known
21-010022211003-010325211003-command not known
22-010023221003-010326221003-command not known
23-010024231003-010327231003-command not known
24-010025241003-010328241003-command not known
25-010026251003-010329251003-command not known
26-010027261003-01032A261003-command not known
27-010028271003-01032B271003-command not known
28-010029281003-01032C281003-command not known
29-01002A291003-01032D291003-command not known
2A-01002B182A1003-01032E2A1003-command not known
2B-01002C2B181003-01032F2B1003-command not known
2C-01002D2C1003-0103302C1003-command not known
2D-01002E2D1003-0103312D1003-command not known
2E-01002F2E1003-0103322E1003-command not known
2F-0100302F1003-0103332F1003-command not known
30-010031301003-010334301003-command not known
31-010032311003-010335311003-command not known
32-010033321003-010336321003-command not known
33-010034331003-010337331003-command not known
34-010035341003-010338341003-command not known
35-010036351003-010339351003-command not known
36-010037361003-01033A361003-command not known
37-010038371003-01033B371003-command not known
38-010039381003-01033C381003-command not known
39-01003A391003-01033D391003-command not known
3A-01003B3A1003-01033E3A1003-command not known
3B-01003C3B1003-01033F3B1003-command not known
3C-01003D3C1003-0103403C1003-command not known
3D-01003E3D1003-0103413D1003-command not known
3E-01003F3E1003-0103423E1003-command not known
3F-0100403F1003-0103433F1003-command not known
40-010041401003-010344401003-command not known
41-010042411003-010345411003-command not known
42-010043421003-010346421003-command not known
43-010044431003-010347431003-command not known
44-010045441003-010348441003-command not known
45-010046451003-010349451003-command not known
46-010047461003-01034A461003-command not known
47-010048471003-01034B471003-command not known
48-010049481003-01034C481003-command not known
49-01004A491003-01034D491003-command not known
4A-01004B4A1003-01034E4A1003-command not known
4B-01004C4B1003-01034F4B1003-command not known
4C-01004D4C1003-0103504C1003-command not known
4D-01004E4D1003-0103514D1003-command not known
4E-01004F4E1003-0103524E1003-command not known
4F-0100504F1003-0103534F1003-command not known
50-010051501003-010354501003-command not known
51-010052511003-010355511003-command not known
52-010053521003-010356521003-command not known
53-010054531003-010357531003-command not known
54-010055541003-010358541003-command not known
55-010056551003-010359551003-command not known
56-010057561003-01035A561003-command not known
57-010058571003-01035B571003-command not known
58-010059581003-01035C581003-command not known
59-01005A591003-01035D591003-command not known
5A-01005B5A1003-01035E5A1003-command not known
5B-01005C5B1003-01035F5B1003-command not known
5C-01005D5C1003-0103605C1003-command not known
5D-01005E5D1003-0103615D1003-command not known
5E-01005F5E1003-0103625E1003-command not known
5F-0100605F1003-0103635F1003-command not known
60-010061601003-010364601003-command not known
61-010062611003-010365611003-command not known
62-010063621003-010366621003-command not known
63-010064631003-010367631003-command not known
64-010065641003-010368641003-command not known
65-010066651003-010369651003-command not known
66-010067661003-01036A661003-command not known
67-010068671003-01036B671003-command not known
68-010069681003-01036C681003-command not known
69-01006A691003-01036D691003-command not known
6A-01006B6A1003-01036E6A1003-command not known
6B-01006C6B1003-01036F6B1003-command not known
6C-01006D6C1003-0103706C1003-command not known
6D-01006E6D1003-0103716D1003-command not known
6E-01006F6E1003-0103726E1003-command not known
6F-0100706F1003-0103736F1003-command not known
70-010071701003-010374701003-command not known
71-010072711003-010375711003-command not known
72-010073721003-010376721003-command not known
73-010074731003-010377731003-command not known
74-010075741003-010378741003-command not known
75-010076751003-010379751003-command not known
76-010077761003-01037A761003-command not known
77-010078771003-01037B771003-command not known
78-010079781003-01037C781003-command not known
79-01007A791003-01037D791003-command not known
7A-01007B7A1003-01037E7A1003-command not known
7B-01007C7B1003-01037F7B1003-command not known
7C-01007D7C1003-0103807C1003-command not known
7D-01007E7D1003-0103817D1003-command not known
7E-01007F7E1003-0103827E1003-command not known
7F-0100807F1003-0103837F1003-command not known
80-010081801003-010384801003-command not known
81-010082811003-010385811003-command not known
82-010083821003-010386821003-command not known
83-010084831003-010387831003-command not known
84-010085841003-010388841003-command not known
85-010086851003-010389851003-command not known
86-010087861003-01038A861003-command not known
87-010088871003-01038B871003-command not known
88-010089881003-01038C881003-command not known
89-01008A891003-01038D891003-command not known
8A-01008B8A1003-01038E8A1003-command not known
8B-01008C8B1003-01038F8B1003-command not known
8C-01008D8C1003-0103908C1003-command not known
8D-01008E8D1003-0103918D1003-command not known
8E-01008F8E1003-0103928E1003-command not known
8F-0100908F1003-0103938F1003-command not known
90-010091901003-010394901003-command not known
91-010092911003-010395911003-command not known
92-010093921003-010396921003-command not known
93-010094931003-010397931003-command not known
94-010095941003-010398941003-command not known
95-010096951003-010399951003-command not known
96-010097961003-01039A961003-command not known
97-010098971003-01039B971003-command not known
98-010099981003-01039C981003-command not known
99-01009A991003-01039D991003-command not known
9A-01009B9A1003-01039E9A1003-command not known
9B-01009C9B1003-01039F9B1003-command not known
9C-01009D9C1003-0103A09C1003-command not known
9D-01009E9D1003-0103A19D1003-command not known
9E-01009F9E1003-0103A29E1003-command not known
9F-0100A09F1003-0103A39F1003-command not known
A0-0100A1A01003-0103A4A01003-command not known
A1-0100A2A11003-0103A5A11003-command not known
A2-0100A3A21003-0103A6A21003-command not known
A3-0100A4A31003-0103A7A31003-command not known
A4-0100A5A41003-0103A8A41003-command not known
A5-0100A6A51003-0103A9A51003-command not known
A6-0100A7A61003-0103AAA61003-command not known
A7-0100A8A71003-0103ABA71003-command not known
A8-0100A9A81003-0103ACA81003-command not known
A9-0100AAA91003-0103ADA91003-command not known
AA-0100ABAA1003-0103AEAA1003-command not known
AB-0100ACAB1003-0103AFAB1003-command not known
AC-0100ADAC1003-0103B0AC1003-command not known
AD-0100AEAD1003-0103B1AD1003-command not known
AE-0100AFAE1003-0103B2AE1003-command not known
AF-0100B0AF1003-0103B3AF1003-command not known
B0-0100B1B01003-0103B4B01003-command not known
B1-0100B2B11003-0103B5B11003-command not known
B2-0100B3B21003-0103B6B21003-command not known
B3-0100B4B31003-0103B7B31003-command not known
B4-0100B5B41003-0103B8B41003-command not known
B5-0100B6B51003-0103B9B51003-command not known
B6-0100B7B61003-0103BAB61003-command not known
B7-0100B8B71003-0103BBB71003-command not known
B8-0100B9B81003-0103BCB81003-command not known
B9-0100BAB91003-0103BDB91003-command not known
BA-0100BBBA1003-0103BEBA1003-command not known
BB-0100BCBB1003-0103BFBB1003-command not known
BC-0100BDBC1003-0103C0BC1003-command not known
BD-0100BEBD1003-0103C1BD1003-command not known
BE-0100BFBE1003-0103C2BE1003-command not known
BF-0100C0BF1003-0103C3BF1003-command not known
C0-0100C1C01003-0103C4C01003-command not known
C1-0100C2C11003-0103C5C11003-command not known
C2-0100C3C21003-0103C6C21003-command not known
C3-0100C4C31003-0103C7C31003-command not known
C4-0100C5C41003-0103C8C41003-command not known
C5-0100C6C51003-0103C9C51003-command not known
C6-0100C7C61003-0103CAC61003-command not known
C7-0100C8C71003-0103CBC71003-command not known
C8-0100C9C81003-0103CCC81003-command not known
C9-0100CAC91003-0103CDC91003-command not known
CA-0100CBCA1003-0103CECA1003-command not known
CB-0100CCCB1003-0103CFCB1003-command not known
CC-0100CDCC1003-0103D0CC1003-command not known
CD-0100CECD1003-0103D1CD1003-command not known
CE-0100CFCE1003-0103D2CE1003-command not known
CF-0100D0CF1003-0103D3CF1003-command not known
D0-D1D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
D1-D2D10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
D2-5ED25338
D3-0100D4D31003-0103D7D31003-command not known
D4-0100D5D41003-0103D8D41003-command not known
D5-0100D6D51003-0103D9D51003-command not known
D6-0100D7D61003-0103DAD61003-command not known
D7-0100D8D71003-0103DBD71003-command not known
D8-0100D9D81003-0103DCD81003-command not known
D9-0100DAD91003-0103DDD91003-command not known
DA-0100DBDA1003-0103DEDA1003-command not known
DB-0100DCDB1003-0103DFDB1003-command not known
DC-0100DDDC1003-0103E0DC1003-command not known
DD-0100DEDD1003-0103E1DD1003-command not known
DE-0100DFDE1003-0103E2DE1003-command not known
DF-0100E0DF1003-0103E3DF1003-command not known
E0-0100E1E01003-0103E4E01003-command not known
E1-0100E2E11003-0103E5E11003-command not known
E2-0100E3E21003-0103E6E21003-command not known
E3-0100E4E31003-0103E7E31003-command not known
E4-0100E5E41003-0103E8E41003-command not known
E5-0100E6E51003-0103E9E51003-command not known
E6-0100E7E61003-0103EAE61003-command not known
E7-0100E8E71003-0103EBE71003-command not known
E8-5AE8020001654100015EBA0001669800016698000000010000000B0E102009008C008C232300
E9-F5E9086F056C087904F1034F000000000060081717FFC500000100
EA-0100EBEA1003-0103EEEA1003-command not known
EB-0100ECEB1003-0103EFEB1003-command not known
EC-0100EDEC1003-0103F0EC1003-command not known
ED-0100EEED1003-0103F1ED1003-command not known
EE-0100EFEE1003-0103F2EE1003-command not known
EF-0100F0EF1003-0103F3EF1003-command not known
F0-0100F1F01003-0103F4F01003-command not known
F1-0100F2F11003-0103F5F11003-command not known
F2-C4F20202020002000000606008000100000000
F3-6EF301E2004801C2000060080E8700010001661017
F4-69F40049000000F10000011200F700FA00000201600800640100000000C80091000000F40200$
F5-47F5004900F101010115010100A10201600801000000000012DE
F6-08F600001000010000
F7-13F701E2FDA801010037FDA800F20049011200F40100004F02AF0032011E0120
F8-0100F9F81003-0103FCF81003-command not known
F9-0100FAF91003-0103FDF91003-command not known
FA-FAFA0017FFF9FFF7FFF7FFEFFFEAFFF7FFE2FFE9FFF8FFECFFEEFFEDFFEAFFF9FFF0FFF8FFED
FB-B6FBFDA8004A011300F302AF01E30101FDA800370121600817015E015E02BC00090020001600$
FC-83FC0314013B100B18
FD-F7FD02F7
FE-97FE03B1845A000100055D21000667620402417567203236203230313520
FF-010000FF1003-010303FF1003-command not known
ZitatAm Display sehe ich unter Info - Heizen
outsideTemp: 6.2 x08: 0 returnTemp: 25.1 integralHeat: 0 flowTemp: 25 heatSetTemp: 24.9 heatTemp: 25 seasonMode: winter integralSwitch: 100 opMode: normal roomSetTemp: 20 x60: 0 x64: 0 insideTempRC: 24.1 x72: 51.2 x76: 0 onHysteresisNo: 0 offHysteresisNo: 0 HCBoosterStage: 1
ZitatAußentemperatur 6,3
HK1 soll 24,8
HK1 ist 24,9
HK2 soll 24,2
HK2 ist 27,9
Vorlauf 24,7
Rücklauf 24,9
Druck im Heizkreis 2,19 bar
Durchfluss 19,8 l /min
Zitat
01-02010000000000
02-010003021003-010306021003-command not known
03-010004031003-010307031003-command not known
04-010005041003-010308041003-command not known
05-010006051003-010309051003-command not known
06-010007061003-01030A061003-command not known
07-010008071003-01030B071003-command not known
08-010009081003-01030C081003-command not known
09-3C0901B8000000520000000000000225
0A-140A01B80050
0B-01000C0B1003-0104C90B01B81003-UNKNOWN REQUEST
0C-01000D0C1003-0104CA0C01B81003-UNKNOWN REQUEST
0D-01000E0D1003-0103110D1003-command not known
0E-01000F0E1003-0103120E1003-command not known
0F-010010100F1003-0103130F1003-command not known
10-01001110101003-010314101003-command not known
11-010012111003-010315111003-command not known
12-010013121003-010316121003-command not known
13-010014131003-010317131003-command not known
14-010015141003-010318141003-command not known
15-010016151003-010319151003-command not known
16-7116FDA801DC00FC00000A003C60081717
17-010018171003-01031B171003-command not known
18-010019181003-01031C181003-command not known
19-01001A191003-01031D191003-command not known
1A-01001B1A1003-01031E1A1003-command not known
1B-01001C1B1003-01031F1B1003-command not known
1C-01001D1C1003-0103201C1003-command not known
1D-01001E1D1003-0103211D1003-command not known
1E-01001F1E1003-0103221E1003-command not known
1F-0100201F1003-0103231F1003-command not known
20-010021201003-010324201003-command not known
21-010022211003-010325211003-command not known
22-010023221003-010326221003-command not known
23-010024231003-010327231003-command not known
24-010025241003-010328241003-command not known
25-010026251003-010329251003-command not known
26-010027261003-01032A261003-command not known
27-010028271003-01032B271003-command not known
28-010029281003-01032C281003-command not known
29-01002A291003-01032D291003-command not known
2A-01002B182A1003-01032E2A1003-command not known
2B-01002C2B181003-01032F2B1003-command not known
2C-01002D2C1003-0103302C1003-command not known
2D-01002E2D1003-0103312D1003-command not known
2E-01002F2E1003-0103322E1003-command not known
2F-0100302F1003-0103332F1003-command not known
30-010031301003-010334301003-command not known
31-010032311003-010335311003-command not known
32-010033321003-010336321003-command not known
33-010034331003-010337331003-command not known
34-010035341003-010338341003-command not known
35-010036351003-010339351003-command not known
36-010037361003-01033A361003-command not known
37-010038371003-01033B371003-command not known
38-010039381003-01033C381003-command not known
39-01003A391003-01033D391003-command not known
3A-01003B3A1003-01033E3A1003-command not known
3B-01003C3B1003-01033F3B1003-command not known
3C-01003D3C1003-0103403C1003-command not known
3D-01003E3D1003-0103413D1003-command not known
3E-01003F3E1003-0103423E1003-command not known
3F-0100403F1003-0103433F1003-command not known
40-010041401003-010344401003-command not known
41-010042411003-010345411003-command not known
42-010043421003-010346421003-command not known
43-010044431003-010347431003-command not known
44-010045441003-010348441003-command not known
45-010046451003-010349451003-command not known
46-010047461003-01034A461003-command not known
47-010048471003-01034B471003-command not known
48-010049481003-01034C481003-command not known
49-01004A491003-01034D491003-command not known
4A-01004B4A1003-01034E4A1003-command not known
4B-01004C4B1003-01034F4B1003-command not known
4C-01004D4C1003-0103504C1003-command not known
4D-01004E4D1003-0103514D1003-command not known
4E-01004F4E1003-0103524E1003-command not known
4F-0100504F1003-0103534F1003-command not known
50-010051501003-010354501003-command not known
51-010052511003-010355511003-command not known
52-010053521003-010356521003-command not known
53-010054531003-010357531003-command not known
54-010055541003-010358541003-command not known
55-010056551003-010359551003-command not known
56-010057561003-01035A561003-command not known
57-010058571003-01035B571003-command not known
58-010059581003-01035C581003-command not known
59-01005A591003-01035D591003-command not known
5A-01005B5A1003-01035E5A1003-command not known
5B-01005C5B1003-01035F5B1003-command not known
5C-01005D5C1003-0103605C1003-command not known
5D-01005E5D1003-0103615D1003-command not known
5E-01005F5E1003-0103625E1003-command not known
5F-0100605F1003-0103635F1003-command not known
60-010061601003-010364601003-command not known
61-010062611003-010365611003-command not known
62-010063621003-010366621003-command not known
63-010064631003-010367631003-command not known
64-010065641003-010368641003-command not known
65-010066651003-010369651003-command not known
66-010067661003-01036A661003-command not known
67-010068671003-01036B671003-command not known
68-010069681003-01036C681003-command not known
69-01006A691003-01036D691003-command not known
6A-01006B6A1003-01036E6A1003-command not known
6B-01006C6B1003-01036F6B1003-command not known
6C-01006D6C1003-0103706C1003-command not known
6D-01006E6D1003-0103716D1003-command not known
6E-01006F6E1003-0103726E1003-command not known
6F-0100706F1003-0103736F1003-command not known
70-010071701003-010374701003-command not known
71-010072711003-010375711003-command not known
72-010073721003-010376721003-command not known
73-010074731003-010377731003-command not known
74-010075741003-010378741003-command not known
75-010076751003-010379751003-command not known
76-010077761003-01037A761003-command not known
77-010078771003-01037B771003-command not known
78-010079781003-01037C781003-command not known
79-01007A791003-01037D791003-command not known
7A-01007B7A1003-01037E7A1003-command not known
7B-01007C7B1003-01037F7B1003-command not known
7C-01007D7C1003-0103807C1003-command not known
7D-01007E7D1003-0103817D1003-command not known
7E-01007F7E1003-0103827E1003-command not known
7F-0100807F1003-0103837F1003-command not known
80-010081801003-010384801003-command not known
81-010082811003-010385811003-command not known
82-010083821003-010386821003-command not known
83-010084831003-010387831003-command not known
84-010085841003-010388841003-command not known
85-010086851003-010389851003-command not known
86-010087861003-01038A861003-command not known
87-010088871003-01038B871003-command not known
88-010089881003-01038C881003-command not known
89-01008A891003-01038D891003-command not known
8A-01008B8A1003-01038E8A1003-command not known
8B-01008C8B1003-01038F8B1003-command not known
8C-01008D8C1003-0103908C1003-command not known
8D-01008E8D1003-0103918D1003-command not known
8E-01008F8E1003-0103928E1003-command not known
8F-0100908F1003-0103938F1003-command not known
90-010091901003-010394901003-command not known
91-010092911003-010395911003-command not known
92-010093921003-010396921003-command not known
93-010094931003-010397931003-command not known
94-010095941003-010398941003-command not known
95-010096951003-010399951003-command not known
96-010097961003-01039A961003-command not known
97-010098971003-01039B971003-command not known
98-010099981003-01039C981003-command not known
99-01009A991003-01039D991003-command not known
9A-01009B9A1003-01039E9A1003-command not known
9B-01009C9B1003-01039F9B1003-command not known
9C-01009D9C1003-0103A09C1003-command not known
9D-01009E9D1003-0103A19D1003-command not known
9E-01009F9E1003-0103A29E1003-command not known
9F-0100A09F1003-0103A39F1003-command not known
A0-0100A1A01003-0103A4A01003-command not known
A1-0100A2A11003-0103A5A11003-command not known
A2-0100A3A21003-0103A6A21003-command not known
A3-0100A4A31003-0103A7A31003-command not known
A4-0100A5A41003-0103A8A41003-command not known
A5-0100A6A51003-0103A9A51003-command not known
A6-0100A7A61003-0103AAA61003-command not known
A7-0100A8A71003-0103ABA71003-command not known
A8-0100A9A81003-0103ACA81003-command not known
A9-0100AAA91003-0103ADA91003-command not known
AA-0100ABAA1003-0103AEAA1003-command not known
AB-0100ACAB1003-0103AFAB1003-command not known
AC-0100ADAC1003-0103B0AC1003-command not known
AD-0100AEAD1003-0103B1AD1003-command not known
AE-0100AFAE1003-0103B2AE1003-command not known
AF-0100B0AF1003-0103B3AF1003-command not known
B0-0100B1B01003-0103B4B01003-command not known
B1-0100B2B11003-0103B5B11003-command not known
B2-0100B3B21003-0103B6B21003-command not known
B3-0100B4B31003-0103B7B31003-command not known
B4-0100B5B41003-0103B8B41003-command not known
B5-0100B6B51003-0103B9B51003-command not known
B6-0100B7B61003-0103BAB61003-command not known
B7-0100B8B71003-0103BBB71003-command not known
B8-0100B9B81003-0103BCB81003-command not known
B9-0100BAB91003-0103BDB91003-command not known
BA-0100BBBA1003-0103BEBA1003-command not known
BB-0100BCBB1003-0103BFBB1003-command not known
BC-0100BDBC1003-0103C0BC1003-command not known
BD-0100BEBD1003-0103C1BD1003-command not known
BE-0100BFBE1003-0103C2BE1003-command not known
BF-0100C0BF1003-0103C3BF1003-command not known
C0-0100C1C01003-0103C4C01003-command not known
C1-0100C2C11003-0103C5C11003-command not known
C2-0100C3C21003-0103C6C21003-command not known
C3-0100C4C31003-0103C7C31003-command not known
C4-0100C5C41003-0103C8C41003-command not known
C5-0100C6C51003-0103C9C51003-command not known
C6-0100C7C61003-0103CAC61003-command not known
C7-0100C8C71003-0103CBC71003-command not known
C8-0100C9C81003-0103CCC81003-command not known
C9-0100CAC91003-0103CDC91003-command not known
CA-0100CBCA1003-0103CECA1003-command not known
CB-0100CCCB1003-0103CFCB1003-command not known
CC-0100CDCC1003-0103D0CC1003-command not known
CD-0100CECD1003-0103D1CD1003-command not known
CE-0100CFCE1003-0103D2CE1003-command not known
CF-0100D0CF1003-0103D3CF1003-command not known
D0-D1D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
D1-D2D10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
D2-17D20C38
D3-0100D4D31003-0103D7D31003-command not known
D4-0100D5D41003-0103D8D41003-command not known
D5-0100D6D51003-0103D9D51003-command not known
D6-0100D7D61003-0103DAD61003-command not known
D7-0100D8D71003-0103DBD71003-command not known
D8-0100D9D81003-0103DCD81003-command not known
D9-0100DAD91003-0103DDD91003-command not known
DA-0100DBDA1003-0103DEDA1003-command not known
DB-0100DCDB1003-0103DFDB1003-command not known
DC-0100DDDC1003-0103E0DC1003-command not known
DD-0100DEDD1003-0103E1DD1003-command not known
DE-0100DFDE1003-0103E2DE1003-command not known
DF-0100E0DF1003-0103E3DF1003-command not known
E0-0100E1E01003-0103E4E01003-command not known
E1-0100E2E11003-0103E5E11003-command not known
E2-0100E3E21003-0103E6E21003-command not known
E3-0100E4E31003-0103E7E31003-command not known
E4-0100E5E41003-0103E8E41003-command not known
E5-0100E6E51003-0103E9E51003-command not known
E6-0100E7E61003-0103EAE61003-command not known
E7-0100E8E71003-0103EBE71003-command not known
E8-5BE8020001654100015EBA0001669800016698000000010000000B0E101515008C008C232300
E9-F6E9086F056C087904F1034F000000000061081717FFC500000100
EA-0100EBEA1003-0103EEEA1003-command not known
EB-0100ECEB1003-0103EFEB1003-command not known
EC-0100EDEC1003-0103F0EC1003-command not known
ED-0100EEED1003-0103F1ED1003-command not known
EE-0100EFEE1003-0103F2EE1003-command not known
EF-0100F0EF1003-0103F3EF1003-command not known
F0-0100F1F01003-0103F4F01003-command not known
F1-0100F2F11003-0103F5F11003-command not known
F2-C4F20202010001000000616108000100000000
F3-10F301DE004001C200006108000000010001685017
F4-C2F4003F000000FF000000F800F900FC00000101610800640100000000C80000000000F1020000000017
F5-63F5003F00FE00F6011700F600FD010161080100000000001DA6
F6-08F600001000010000
F7-75F701DFFDA800F700A8FDA800FF004000F900FD00F8010D016C010A00FE0102
F8-0100F9F81003-0103FCF81003-command not known
F9-0100FAF91003-0103FDF91003-command not known
FA-FAFA0017FFF9FFF7FFF7FFEFFFEAFFF7FFE2FFE9FFF8FFECFFEEFFEDFFEAFFF9FFF0FFF8FFED
FB-55FBFDA8003E00F800FA016B01DD00F6FDA800A70101610817015E015E0000001500150000003F019C0000034F0690000000000000000007FA00D30000000000FA0100010B010A00F80000000010DC
FC-77FC04052617100B19
FD-F7FD02F7
FE-97FE03B1845A000100055D21000667620402417567203236203230313520
FF-010000FF1003-010303FF1003-command not known
Zitat
outsideTemp: 8.3 flowTemp: 23.5 returnTemp: 24 hotGasTemp: 40.6 dhwTemp: 47.7 flowTempHC2: 23 evaporatorTemp: 18.1 condenserTemp: 24.3 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 0 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: 0 ovenFireplace: 0 STB: 0 outputVentilatorPower: 35 inputVentilatorPower: 35 mainVentilatorPower: 0 outputVentilatorSpeed: 21 inputVentilatorSpeed: 21 mainVentilatorSpeed: 0 outside_tempFiltered: 8.2 relHumidity: 42.3 dewPoint: 0 P_Nd: 10.96 P_Hd: 13.86 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: -60
ZitatswitchingProg: 1 compressor: 0 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 0 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0Gerade dürfte der Compressor aufgrund der Sperre durch den Netzanbieter nämlich nicht an sein.
"F4hc1" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "hex2int", 10],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" seasonMode: ", 38, 2, "somwinmode", 1], #[" x40: ", 40, 4, "hex2int", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1], [" opMode: ", 48, 2, "opmodehc", 1],
#[" x52: ", 52, 4, "hex2int", 1],
[" roomSetTemp: ", 56, 4, "hex2int", 10], [" x60: ", 60, 4, "hex2int", 10],
[" x64: ", 64, 4, "hex2int", 10], [" insideTempRC: ", 68, 4, "hex2int", 10],
[" x72: ", 72, 4, "hex2int", 10], [" x76: ", 76, 4, "hex2int", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
[" HCBoosterStage: ", 36, 2, "hex", 1]
Zitat von: danillo am 28 November 2016, 08:14:47take your time; post your increments and all your questions.
I will do so, but it will take a while ;)
Zitat von: The Spirit am 01 Januar 2017, 20:14:58
how can i find out the actual fan speed? i mean 0, 1, 2 or 3?
Zitat... outputVentilatorPower: 21 inputVentilatorPower: 24 ...
define thzfanstageif DOIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/4.3] ) (setreading Mythz fanstage 0) \
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/4.3] ) (setreading Mythz fanstage 1) \
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/4.3] ) (setreading Mythz fanstage 2) \
DOELSE (setreading Mythz fanstage 3)
attr thzfanstageif do always
attr devStateIcon cmd_1:vent_ventilation_level_0@red cmd_2:vent_ventilation_level_1@green cmd_3:vent_ventilation_level_2@blue cmd_4:vent_ventilation_level_3@red
Zitat von: willybauss am 02 Januar 2017, 07:15:48my outputVentilatorPower for stage1 is between 28 an an 30 over the year, exept for passive cooling
Do you have any experience what may happen in summer, using passive cooling mode? In this case the set value may be increased (passive cooling mode 1) or set to zero (passive cooling mode 2) , thus reporting a wrong fan stage.
Zitat von: immi am 02 Januar 2017, 11:30:51
just curious: what are your actual values of outputVentilatorPower for stage 1, 2 and 3? and p40 p41 p42?
immi
Zitat von: toggle am 02 Januar 2017, 20:04:50i agree completely, but
Das Verhältnis airflowOutlet / outputVentilatorPower kann nicht linear sein. Wenn ich mich nicht täusche, nimmt der Strömungswiderstand quadratisch mit der Geschwindigkeit zu. Und mit dem Widerstand nimmt auch die aufzuwendende Energie zu.
Zitat von: fernsehjens am 03 Januar 2017, 20:39:04Hi Jens
Immer wenn ich die Mythz-Konfigurationseite aufrufe stürzt FHEM ab: Illegal division by zero at ./FHEM/00_THZ.pm line 1686
Zitat von: fernsehjens am 03 Januar 2017, 21:30:10it is strange, that you cannot read register FD;
when i do 'get Mythz sFirmware', i get: '010301FD1003 msg2 command not known';
Zitat"Illegal division by zero at ./FHEM/00_THZ.pm line 1686"
FHEM runs on Raspberry B+, thz.pm is 0.153.
attr Mythz firmware 2.14
attr Mythz verbose 5
wait 10min
post the fhemlogfile as file
Zitat von: kriforum am 06 Januar 2017, 17:24:49Don't know which plot you're talking about. Is it one of mine, or a self made one?
--- it came to my attention that in the power consumption plot there is only visible the power which goes to the compressor, not the one to the booster - which would be much nicer!
Zitat von: kriforum am 06 Januar 2017, 17:24:49You can do this easily using a userReading.
Looking to the available parameters, there are no daily booster power values (like for the HC), only total ones since commission. So for every refresh/reading a difference (sBoostDHWTotal_old - sBoostDHWTotal_ new) would need to be added to the HC power to show total power.
define Statistik statistics Mythz
attr Statistik deltaReadings sHeatDHWTotal,sHeatHCTotal,sElectrDHWTotal,sElectrHCTotal,sBoostDHWTotal
Zitat von: vinylsolution am 07 Januar 2017, 16:11:32bug-fix uploaded to svn
Now, I noticed a misbehaviour when reading out "sTimedate".
sTimedate returns the wrong weekday -> MONDAY but should be Saturday. All other sTimedate values are OK.
The THZ display shows the correct weekday.
Is this error a known issue?
Zitat von: michaelk68 am 13 Januar 2017, 07:39:18this is how I decode the HC1 and HC2
Hi Immi,
I have a lwz 404 with a second display in the living room. Its assigned to hk2 for dew point monitoring while cooling.
My problem is, that I didn't get relHumidity and insideTempRC temperatures read in fhem, the values are 0 or the room set temp.
When I assign the second display to hk1, all is fine and I can see the values!
Firmware is 5.39.
what can I do?
Michael
sHC1
outsideTemp: -0.6 x08: -56.1 returnTemp: 24.4 integralHeat: -26 flowTemp: 25 heatSetTemp: 26.7 heatTemp: 24.5 seasonMode: winter integralSwitch: 101 opMode: normal roomSetTemp: 22 x60: 0 x64: 563.2 insideTempRC: 23.6 x72: 0 x76: 2.2 onHysteresisNo: 0 offHysteresisNo: 1 HCBoosterStage: 0
sHC2
outsideTemp: 6.1 returnTemp: 24.9 vorlaufTemp: -60 heatSetTemp: 25 heatTemp: 24.9 stellgroesse: -100 seasonMode: winter opMode: setback
Zitat von: TheTrumpeter am 13 Januar 2017, 21:38:53Great job
Hello immi,
I found two more values, working at least with LWZ404SOL and fw5.39:
Set-power of heating circuit pump, 0A02CB, raw-value has to be divided by 10 to get %
set-power of DHW pump, 0A02CC, raw-value has to be divided by 10 to get %
Zitat von: willybauss am 13 Januar 2017, 21:33:47Hi Willy
Hi immi,
our (Michael and me) hope was that you could give him a hint on how to find the right register, containing the required values but for HC2. I don't have the knowledge to teach him. Maybe there's a link to an older contribution where you described it (?).
Zitat von: immi am 14 Januar 2017, 17:17:45Well, in German manual they're called "Pumpendrehzahl Warmwasser" and "Pumpendrehzahl Heizen". As they do not have a P-number, I'd say your suggestions are fine.
I can restrict them to your firmware: how do you want to call them?
pXXPowerHCpump?
pXXPowerDHWpump?
Zitat von: TheTrumpeter am 14 Januar 2017, 21:05:08please test following patch
Well, in German manual they're called "Pumpendrehzahl Warmwasser" and "Pumpendrehzahl Heizen". As they do not have a P-number, I'd say your suggestions are fine.
my %sets539only =(
"p99PumpSpeedHC" => {cmd2=>"0A02CB", argMin => "0", argMax => "100", type =>"5temp", unit =>" %"},
"p99PumpSpeedDHW" => {cmd2=>"0A02CC", argMin => "0", argMax => "100", type =>"5temp", unit =>" %"}
);
elsif ($attrVal eq "5.39") {
THZ_RemoveInternalTimer("THZ_GetRefresh");
%sets=(%sets439, %sets539only);
%gets=(%getsonly539, %sets);
THZ_Refresh_all_gets($hash);
}
Zitat von: TheTrumpeter am 15 Januar 2017, 14:04:42You just have to be more creative: try
Hab' den Rückgabewert trotzdem mal ausgewertet, 0x1003 bzw. 4099d. Wüsste nicht mit welcher Umrechnung ich da auf 1,7bar kommen sollte. :-\
Zitat von: immi am 15 Januar 2017, 16:51:00How to implement that to try if the value "lives" or is constant?
You just have to be more creative: try
1003h -> turn 0310h --> 784d --> 1,784 bar
immi
Zitat von: TheTrumpeter am 15 Januar 2017, 20:04:07No it is not a safety measure. Sometimes they swap the bytes, maybe in your case not, and they divide the value over 2 registers.
You think they swapped lower and upper byte to prevent people from getting the values? Or why do they do that? Does not make sense to me...
Zitat von: immi am 15 Januar 2017, 16:51:00Für mich sieht 0x1003 eher nach dem Ende der Message aus (DLE + ETX).
Hab' den Rückgabewert trotzdem mal ausgewertet, 0x1003 bzw. 4099d. Wüsste nicht mit welcher Umrechnung ich da auf 1,7bar kommen sollte. :-\
You just have to be more creative: try
1003h -> turn 0310h --> 784d --> 1,784 bar
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]},
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]}
related topic in Help-section (while DOIF turned out to be not the root cause meanwhile): https://forum.fhem.de/index.php?topic=65327
setreading Mythz sGlobal outsideTemp: 1.5 flowTemp: 26.4 returnTemp: 24.2 hotGasTemp: 37.7 dhwTemp: 47.1 flowTempHC2: -60 evaporatorTemp: -1.5 condenserTemp: 25.8 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 0 inputVentilatorPower: 0 mainVentilatorPower: 0 outputVentilatorSpeed: 0 inputVentilatorSpeed: 0 mainVentilatorSpeed: 0 outside_tempFiltered: 1.9 relHumidity: 0 dewPoint: 0 P_Nd: 4.87 P_Hd: 11.66 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: 27.6
Zitat von: willybauss am 29 Januar 2017, 22:57:41yes
Is the 0.155 I'm using the latest version?
Zitat:-X
I have the same issue also for readings which are not at all related to the content of this DOIF. That's the reason why I said it's not related. But you're right. Formatting of this DOIF might work like a switch for something completely different - what does not really make the issue more understandable.
Zitatsetreading is completely unrelated to my code (my code is not executed with it).
Modifying sGlobal with setreading leads to the same result: duplicates.
Zitat von: TheTrumpeter am 12 Februar 2017, 16:01:09
Hello immi,
Two more values for FW5.39:
0A0027 is max. flow temp HC1 ("Max. Vorlauftemp. HZ" (Heigrundeinstellungen))
0A0580 is p11DHWsetManualTemp
Both of them use type "5temp".
Zitat von: immi am 14 Februar 2017, 10:41:06I take 0x0226 as value. This is 550d and comes to 55,0°C.
0A0027-5A0A00270226
Zitat von: immi am 15 Februar 2017, 00:42:34Range as per manual is 10-75°C.
0A0027 "5temp"
Zitat von: immi am 15 Februar 2017, 00:42:34Range as per manual is 6-12h
0A0180 "1clean"
Zitat von: TheTrumpeter am 15 Februar 2017, 09:33:12done 0.156 committed
Range as per manual is 10-75°C.
Suggested name: p99HC1maxFlowTempRange as per manual is 6-12h
Suggested name: p36DHWMaxTime
Zitatno problem, take yout time
I'm still looking for some other readings/parameter, so there might be additional ones now and then.
Zitat von: TheTrumpeter am 15 Februar 2017, 21:29:41no
Do you have an overview of all possible addresses/registers?
my @numbers = (1..65535);
....
my $cmd = "0A" . sprintf("%04X", $indice);
Zitat von: immi am 16 Februar 2017, 11:28:05No response means, that some of the registers would be missing in the data.txt?
pay attention that sometimes the heatpump stops reacting (for 1 or 2 seconds) if you you make too many requests too fast
Zitat von: TheTrumpeter am 16 Februar 2017, 13:15:03I do not remember exactly; I remember that I compared 2 runs to be sure.
OK thanks, that's what I already did for 0A when I then found out that line 1489 contains almost all the numbers of the registers that were responding.
Therefore I asked.
No response means, that some of the registers would be missing in the data.txt?
Zitat von: TheTrumpeter am 16 Februar 2017, 15:53:02no.
It seems that the run sometimes restarts itself just after it's already finished. Is that a wanted behaviour?
Zitat von: TheTrumpeter am 06 März 2017, 16:43:19I do not remember, why.
Another point... why is the lower limit for p04-p06 and p11 set to 14°C?
As per installation manual the lower limit is 10°C.
Same is for upper limit; it's set to 50°C although 55°C would be allowed as per manual.
Zitat von: immi am 06 März 2017, 17:22:38Works with both 10°C and 55°C for all 4 parameters.
If it works, I will implement your proposal.
Zitat von: TheTrumpeter am 06 März 2017, 21:03:19committed
Works with both 10°C and 55°C for all 4 parameters.
THZ_Get: Try to get 'pOpMode'
2017.03.20 20:13:02 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.03.20 20:13:02 5: SW: 02
2017.03.20 20:13:02 5: Mythz start Funktion THZ_ReadAnswer
2017.03.20 20:13:02 5: THZ_ReadAnswer: uc unpack: '10'
2017.03.20 20:13:02 5: SW: 01001E0A01121003
2017.03.20 20:13:02 5: Mythz start Funktion THZ_ReadAnswer
2017.03.20 20:13:02 5: THZ_ReadAnswer: uc unpack: '1002'
2017.03.20 20:13:02 5: SW: 10
2017.03.20 20:13:02 5: Mythz start Funktion THZ_ReadAnswer
2017.03.20 20:13:02 5: THZ_ReadAnswer: uc unpack: '0100290A01120B001003'
2017.03.20 20:13:02 5: SW: 10
Zitat von: TheTrumpeter am 17 April 2017, 13:13:24hope I do not forget it.
Hello immi,
p49 is limited to 11°C at the lower end in FHEM, but the heatpump allows 10°C.
Could you fix that sometimes you do another change in the module?
Zitat von: immi am 18 Mai 2017, 22:34:02Of course only at the end; that's what I've initially written, maybe it was not clear enough.
In the middle of HC1 noGO. Too many people are relying on the order of HC1.
I could consider adding at the end, if you find an interpretation for "x40" and "x52", and if many users accepts a small increase in their logfiles size.
Zitat von: immi am 18 Mai 2017, 22:34:02I'm not 100% sure, but I think I've activated it some time ago and did not face any problem with it. I will check the log-files in the evening if it's there.
"x84" of sGlobal:
I remember that I commented it out because some users experienced a crash each time it was read; I didn't check if I was reading outside the register.
Zitat von: TheTrumpeter am 31 Mai 2017, 14:06:23The crash was coming in the case someone had an older tecalor. Register sGlobal is shorter for older tecalor and perl does not like when you look outside the variable.
I still did not answer the point regarding x84 in older logs... I have it there in a log from January, seems that I activated it only for a very short time. Cannot remember any crash due to that.
Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
Zitat von: willybauss am 09 Juni 2017, 19:00:03Hi willy
my logfile shows frquent (3 ... 6 times per day) messages sayingCode AuswählenMythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
This is not a new effect, I know it since years, and everything works fine. But from time to time I wonder if I can do something to avoid it. Is there a user accessible value to e.g. increase wait time?
Zitat von: willybauss am 10 Juni 2017, 14:14:41I have not changed anything in the protocoll since 1 year or more. Look since when do you have problems with CUL.
Hi immi,
I don't think it's increasing. I believe I have these entries since 2 years or so. Normally I don't even check the logfile contents, as long as it stays small in monthly size. But currently I try to find the root cause, why my Homematic CUL stops working frequently; needs a 'reopen' then. I observed an approx. 70 ... 80% match of times tamps between CUL stop and these THZ entries. CUL stop happens approx. 2 ... 3 times per month. So I don't believe that CUL is root cause for THZ issue, but I think its the other way round - THZ issue might be cause for the CUL to stop working.
Zitatnothing
What can I do to have the THZ's answer earlier? Nothing I guess, right?
Zitattimedelay in line 741 is not blocking fhem
For that reason I wonder if increasing wait times may help. Is fhem blocked during these wait times?
Zitat von: immi am 10 Juni 2017, 23:12:21Since I installed the CUL - approx. a year after Mythz.
Look since when do you have problems with CUL.
2017.06.17 18:54:03 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:03 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100320A091E1003
2017.06.17 18:54:04 3: THZ_Get: Error msg2: CRC error in request ---- 0100D10A05C11003
2017.06.17 18:54:25 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:26 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100A00B14801003
2017.06.17 18:54:42 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:42 3: THZ_Get: Error msg3: InterfaceNotRespondig error found at step1 ---- 0100410A092D1003
2017.06.17 18:54:42 3: THZ_Get: Error msg2: new unknown answer ---- 0100980A05881003
2017.06.17 18:54:59 3: THZ_Get: Error msg2: CRC error in request ---- 0100910A05811003
2017.06.17 18:55:15 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:55:15 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100430A17211003
2017.06.17 18:55:23 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:55:23 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 01007A0B05691003
2017.06.17 18:55:23 3: THZ_Get: Error msg2: new unknown answer ---- 0100830A17611003
2017.06.17 18:55:30 3: THZ_Get: Error msg2: CRC error in request ---- 0100630C15411003
2017.06.17 18:55:32 3: Mythz NAK!!
"sCoolHCTotal" => {cmd2=>"0A0648", cmd3=>"0A0649", type =>"1clean", unit =>" kWh"},
Zitat von: immi am 18 Juni 2017, 16:36:57Yesterday's log, filtered for THZ related issues:
Hi Willy
keep on monitoring ...
2017.06.24 00:17:34 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
2017.06.24 00:32:34 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
2017.06.24 02:49:36 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0A0176 ->
2017.06.24 04:44:36 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A0176 ->
2017.06.24 04:44:49 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2017.06.24 06:35:44 3: THZ_Get: Error msg2: decode: new unknown answer -- F4 -> 0101F6F41003
2017.06.24 06:44:36 3: THZ_Get: Error msg2: decode: new unknown answer -- 0A0176 -> 01010C0A1003
2017.06.24 08:25:44 3: THZ_Get: Error msg2: decode: CRC error in request -- F4 -> 0102E7E41003
2017.06.24 08:52:35 1: /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 disconnected, waiting to reappear (Mythz)
2017.06.24 08:52:37 3: Setting Mythz serial parameters to 115200,8,N,1
2017.06.24 08:52:37 1: /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2017.06.24 08:53:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0A092C ->
2017.06.24 08:53:23 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05B8 ->
2017.06.24 08:53:40 3: THZ_Get: Error msg2: decode: new unknown answer -- 0A0581 -> 01010C0A1003
2017.06.24 08:53:49 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A17A2 ->
2017.06.24 09:43:29 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2017.06.24 09:45:14 3: THZ_Get: Error msg2: THZ_Get_Com: error found at step1 NAK!! -- 0A0176 -> 15
2017.06.24 11:18:29 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2017.06.24 12:44:15 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
2017.06.24 15:48:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2017.06.24 16:15:15 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0A0176 ->
2017.06.24 17:54:15 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A0176 ->
2017.06.24 18:07:15 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
2017.06.24 18:35:15 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
2017.06.24 22:40:15 3: THZ_Get: Error msg2: decode: new unknown answer -- 0A0176 -> 01010C0A1003
2017.06.24 23:18:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2017.06.24 23:49:15 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0176 -> 01020D0A1003
my $buf;
my $cnt = 0;
#$buf = DevIo_SimpleReadWithTimeout($hash, 0.25) if(!defined($buf)) ; #added for Karl Antwort msg468515
while (!defined($buf) and ($cnt < 400)) {
$buf = DevIo_SimpleReadWithTimeout($hash, 0.001);
$cnt ++;
}
Log3($hash, 5, "THZ_ReadAnswer: $cnt ms");
Zitat von: andre.k am 26 Juni 2017, 10:30:02Hi Andre
So I can measure the time for the reading process. Usualy the THZ responds in less than 10ms. But sometimes I got timeouts after 400ms.
2017.06.25 13:16:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- F3 ->
2017.06.25 13:16:25 2: myWP/RAW: 02
2
This RAW: 02 comes probably from funktion THZ_Read. These subroutine is never called from the module THZ self. Do you now when and from where the sub THZ_Read is called?Zitat von: andre.k am 27 Juni 2017, 17:37:53Hi Andre
sometimes after timeout I got a log entry like thisCode Auswählen2017.06.25 13:16:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- F3 ->
This RAW: 02 comes probably from funktion THZ_Read. These subroutine is never called from the module THZ self. Do you now when and from where the sub THZ_Read is called?
2017.06.25 13:16:25 2: myWP/RAW: 02
2
ZitatOk.
Second, only for advise :) Could you clean up the old Log calls and replace with the new Log3 calls (see topic https://forum.fhem.de/index.php/topic,14341.0/all.html (https://forum.fhem.de/index.php/topic,14341.0/all.html)). We don't need the old loglevel stuff ($115, GetLogLevel...)
Zitat von: immi am 26 Juni 2017, 13:28:17
Hi Willy
I see 3 cases for you: 0101, 0102 or no answer:
... maybe your should shield your serial data line, make it shorter or change the USB-Serial_Controller
Zitat von: TheTrumpeter am 22 Juni 2017, 20:10:21Hi TheTrumpeter
sets:
0B0287 is "Kühlbetrieb HK1", it's only one bit. If it's 1, then cooling is enabled, 0 is disabled.
0B0582 is "HK Temp. kühlen", it's in °C, divide the raw value by 10, then you get the physical value, ex. 0x00AF is 175d which is 17,5°C.
0B0583 is "Hyst. Vorlauftemp kühlen", it's in K, divide the raw value by 10, then you get the physical value.
0B0584 is "HK1 Raumtemperatur Hysterese", it's in K, divide the raw value by 10, then you get the physical value.
gets:
0B0264 is the "dewpoint of HC1", it's in °C, divide the raw value by 10, then you get the physical value
0A0648, 0A0649, 0B0264 --> UNKNOWN REQUEST
0B0287-950B02870000
0B0582-650B058200D2
0B0583-A30B0583000F
0B0584-A40B0584000F
"sCoolHCTotal" => {cmd2=>"0A0648", cmd3=>"0A0649", type =>"1clean", unit =>" kWh"},
Zitat von: immi am 01 Juli 2017, 21:27:130B0287 : p99CoolingHC1Switch, "on" sets it 0x0001 and "off" sets 0x0000
Please make a proposal
Zitat von: TheTrumpeter am 02 Juli 2017, 20:08:44normally HC2 registers are in 0C0xxx
PS: I feel the same parameters for HC2 are right after 0B0584, but as I have no HC2 I did not elaborate it.
Zitat von: immi am 03 Juli 2017, 20:13:12p99HC1CoolingSetTemp is possible from 10-30°C, you've limited it to 15-27°C. That's not a big issue as I do not feel anybody would use values outside the range allowed by you.
Hi TheTrumpeter
please check the implementation, especially the range in which the register can be changed.
Zitat von: immi am 03 Juli 2017, 20:13:12p99CoolingHC1Switch: enables or disables whether cooling-mode is permitted for HC1 or not.
p.s. A short description of what the register does can be also helpfull for other 5.39 users
Zitat von: immi am 03 Juli 2017, 20:13:12One point I do not understand...
please check the implementation
defmod Mythz.GetDewPoint notify Mythz:sGlobal:.* get Mythz sDewPointHC1
Zitatdefmod FileLog_Mythz FileLog ./log/Mythz-%Y-%m.log Mythz
Zitat von: TheTrumpeter am 05 Juli 2017, 21:21:47As far as I remember notify does not trigger logs ("at" generates logs). Maybe they added a special attribute in the meanwhile for notify
The reading got updated whenever sGlobal got updated, but it was never stored into Mythz.log.
Zitat von: immi am 06 Juli 2017, 09:34:20I already had a look into command-ref and could not find any hint regarding that.
As far as I remember notify does not trigger logs ("at" generates logs). Maybe they added a special attribute in the meanwhile for notify
Not sure.
Zitat von: TheTrumpeter am 05 Juli 2017, 21:21:47Is it a typo ordentlich did your really use defmod instand of define?Code Auswählendefmod Mythz.GetDewPoint notify Mythz:sGlobal:.* get Mythz
Zitat von: willybauss am 06 Juli 2017, 18:23:50I used "define" when defining it. Later I used "raw definition" to copy the definition into this forum.
Is it a typo ordentlich did your really use defmod instand of define?
Zitat von: immi am 28 Juni 2017, 07:49:11
Do not trust 13:16:21 and 13:16:25. I do not think that your tecalor needed 4 seconds to answer.
It is important to find a threshold to differentiate between no answer and slow answer.
Zitat von: andre.k am 07 Juli 2017, 23:12:3710 seconds to reply, your heatbunp is very busy :)
Hi immi,
I'm pretty sure my THZ sometimes takes more than 5 seconds for an answer. (I've traced the serial communication in the ser2net server) Even when I've increased the time in my reading loop to 10 seconds I got timeouts.
Zitatcompletely agree
This is definitly too long, in production I would not go over 500ms.
ZitatA and C are easy.
To solve the timeout problem I see some options:
A) just ignore the timeouts
B) a modification in THZ_Get_Communication to restart the communication (step0: resend STX). I'm already testing.
C) reschedule the THZ_GetRefresh for the timed out Get
Zitat von: immi am 08 Juli 2017, 09:01:41Thats a good question. I have no idea how we can stop a current communication, but we can start a new communication. We can send STX (02) and if the headpump is not yet ready it will send a NAK (15). Then wait and send 02 again until 10 is received.
In both A and B, how can we tell the heatpump that we want to stop the comunication (with ETX or EOT, see ascii table)?
sub THZ_Get_Comunication($$) {
my ($hash, $cmdHex) = @_;
my ($err, $msg) =("", " ");
Log3 $hash->{NAME}, 5, "THZ_Get_Comunication: Check if port is open. State = '($hash->{STATE})'";
if (!(($hash->{STATE}) eq "opened")) { return("closed connection", "");}
#slow down for old firmwares
select(undef, undef, undef, 0.25) if (AttrVal($hash->{NAME}, "firmware" , "4.39") =~ /^2/ );
select(undef, undef, undef, 0.001);
my $cnt = 1;
my $cntmax = 5;
my $success = 0;
do {{
THZ_Write($hash, "02"); # step0 --> STX start of text
($err, $msg) = THZ_ReadAnswer($hash); # read 10
if ($msg ne "10") {
if (!defined($err)) { # no timeout
if ($msg eq "15") { # received NAK?
select(undef, undef, undef, 0.5);
$err = "NAK";
} else {
$err = "UNKNOWN";
}
}
Log3 $hash, 5, "THZ_Get_Com: step0 ($cnt) ($msg):".$err;
next;
}
Log3 $hash, 5, "THZ_Get_Com: step0 ($cnt) ($msg)";
THZ_Write($hash, $cmdHex); # step1 --> send request
($err, $msg) = THZ_ReadAnswer($hash); # read 10
if ($msg ne "10") {
if (!defined($err)) { # no timeout
if ($msg eq "15") { # received NAK?
select(undef, undef, undef, 0.5);
$err = "NAK";
} else {
$err = "UNKNOWN";
}
}
Log3 $hash, 5, "THZ_Get_Com: step1 ($cnt) ($msg):".$err;
next;
}
($err, $msg) = THZ_ReadAnswer($hash); # read 02
$success = 1 if ($msg eq "02");
Log3 $hash, 5, "THZ_Get_Com: step1 ($cnt) ($msg):".$err;
}}
until ($success or ($cnt ++ == $cntmax)); # step1 <-- STX start of text
if ((defined($err))) {
return("THZ_Get_Com: error step1 $err", $msg);
}
THZ_Write($hash, "10"); # step2 --> DLE data link escape // ack datatranfer
($err, $msg) = THZ_ReadAnswer($hash); # receive data from heatpump
THZ_Write($hash, "10"); # --> DLE
if ((defined($err))) {
return("THZ_Get_Com: error step2 $err", $msg);
}
else {
return(THZ_decode($msg)); #clean up and remove footer and header
}
}
Zitat von: andre.k am 09 Juli 2017, 13:42:35I cannot test it because i do not have the problem.
Thats a good question. I have no idea how we can stop a current communication, but we can start a new communication. We can send STX (02) and if the headpump is not yet ready it will send a NAK (15). Then wait and send 02 again until 10 is received.
Zitat von: immi am 09 Juli 2017, 16:26:33Other control chars than 0x02 are not responded from heatpump. So I think there is no way to tell the headpump we want to stop the communication. The only (known) handshake is sending 0x02 and wait for the answer 0x10.
1) the heatpump is not multitasking
2) if the heatpump is so busy, that it answers after 2 seconds, sending a second STX after 0.5 seconds makes only think worse.
can you test your proposed code sending a ETX or EOT after 0.5 seconds?
"0A0176Dis" => [[" switchingProg: ", 11, 1, "bit0", 1], [" compressor: ", 11, 1, "bit1", 1],
[" heatingHC: ", 11, 1, "bit2", 1], [" heatingDHW: ", 10, 1, "bit0", 1],
[" boosterHC: ", 10, 1, "bit1", 1], [" filterBoth: ", 9, 1, "bit0", 1],
[" ventStage: ", 9, 1, "bit1", 1], [" pumpHC: ", 9, 1, "bit2", 1],
[" defrost: ", 9, 1, "bit3", 1], [" filterUp: ", 8, 1, "bit0", 1],
[" filterDown: ", 8, 1, "bit1", 1][color=red][b]
],
attr global sendStatistics manually
fheminfo
fheminfo send
"sLast10errors" => {cmd2=>"D1", type =>"D1last206", unit =>""},
Zitat von: philipp_b am 27 Juli 2017, 13:45:50Hi philipp
ich möchte gerne per (Loxone HTTP Befehle) Web Befehl die Volumenströme meiner LWZ504 ändern, aber ich weiß nicht wie ich das definieren muss in FHEM.
Nach dem Beispiel kann ich die Lüfterstufen ändern, aber ich weiß nicht wie man das abändern muss damit ich die Volumenströme einstellen kann.
Zitat von: philipp_b am 29 Juli 2017, 11:46:59Ist im THZ Modul so vorgegeben.
Da ist mir aufgefallen, dass ich über fhem bei meiner lwz504 die Abluft der Stufe 1 mit minimal 50m3 aber am Geräte Display bis 10m3 einstellen kann. Liegt das am THZ Modul oder kann man das ändern?
Zitat von: philipp_b am 29 Juli 2017, 11:46:59Möchte gerne mir selber eine passivkühlung bauen.Warum verwendest Du nicht die vorhandene Passivkühlungsfunktion?
Zitat von: TheTrumpeter am 02 Juli 2017, 20:08:44immi, would you be so kind and also add the following when you change the module next time?
0B0264 : sDewPointHC1
."interval_sDewPointHC1:0,60,120,180,300 "
Zitat von: philipp_b am 29 Juli 2017, 12:54:38Das ist richtig.
Die passivkühlung ist mir zu unflexibel, soweit ich verstanden habe wird jeden tag neu die Bedingung der Außentemperatur + 3 grad der Rauminnentemperatur - 3 grad abgefragt.
Zitat von: philipp_b am 29 Juli 2017, 12:54:38Gehört zwar nicht hierher, aber: Dann hast Du irgendwas in den Heizparametern gröber falsch eingestellt. Die gefilterte Aussentemperatur fällt bei mir schon den ganzen Sommer über kaum unter 20°C. Da wird nie in den Winterbetrieb geschalten. Kontrollier' mal die Parameter; was Du machst ist ein schlechter Workaround anstatt das Problem wirklich zu lösen.
Da ich aber keinen Fühler an der wp angeschlossen habe muss ich mit HK1 Raumtemperatur arbeiten, die bei mir aber im Sommer bei 14 Grad steht, weil sonst die wp ständig anfängt zu läuft...
Zitat von: philipp_b am 29 Juli 2017, 12:54:38Wenn Du den Parameter Passivkühlung auf "Zulüften" hast, wird die Abluft abgeschaltet und die Zuluft hochgefahren. Diese Einstellung kannst Du aber komplett vergessen, das bringt keinerlei Kühleffekt. Lies dazu meine Untersuchungen mit einem kalibrierten Temperaturfühler an den Lüftungsdüsen.
Zum testen hab ich die Raumtemperatur hochgesetzt, aber bei aktiver passivkühlung wird die Zuluft zu hoch gefahren, so dass sie uns dann zu laut ist.
Zitat von: philipp_b am 29 Juli 2017, 12:54:38Würd' mich interessieren, ob das wirklich funktioniert.
Die Hz Zahl habe ich nicht kontrolliert, aber die 10m3 werden angenommen und stehen dann auch in den Einstellungen.
Zitat von: TheTrumpeter am 29 Juli 2017, 12:43:35done
immi, would you be so kind and also add the following when you change the module next time?Code Auswählen."interval_sDewPointHC1:0,60,120,180,300 "
Zitat von: immi am 27 Juli 2017, 14:45:23Hi immi,
Hi Andre
sorry I forgot your request, I will committ it this night
edit: upload done
immi
."nonblocking:0,1 "
sub THZ_GetRefresh($) {
my ($par)=@_;
my $hash=$par->{hash};
my $command=$par->{command};
my $name =$hash->{NAME};
my $interval = AttrVal($hash->{NAME}, ("interval_".$command), 0);
#my $replyc = ""; do we need this in background?
if (AttrVal($name, "nonblocking" , "0") =~ /1/ ) {
if (!(exists($hash->{helper}{RUNNING_PID}))) {
DevIo_CloseDev($hash); #close device in parent process
$hash->{helper}{RUNNING_PID} =
BlockingCall("THZ_GetNB", $name."|".$command, "THZ_GetNBDone", 30, "THZ_GetNBAbort", $hash);
Log3 $hash, 4, "[$name] THZ_GetRefresh($command) BlockingCall started";
}
else {
Log3 $hash, 3, "[$name] THZ_GetRefresh($command) rescheduled (BlockingCall is still running)";
InternalTimer(gettimeofday() + 1, "THZ_GetRefresh", $par, 1);
return;
}
}
else {
THZ_Get($hash, $hash->{NAME}, $command) if ($hash->{STATE} ne "disconnected");
}
if ($interval) {
$interval = 60 if ($interval < 60); #do not allow intervall <60 sec
InternalTimer(gettimeofday() + $interval, "THZ_GetRefresh", $par, 1) ;
}
if ($command =~ "sFirmware") { # model summary for statistics
my $sFirmwareId = join('', (split(/ |:/, ReadingsVal($name,"sFirmware-Id"," : : : ")))[0..6]);
my $sFirmware= (split(/ /, ReadingsVal($name,"sFirmware"," ")))[1];
$hash->{model}= sprintf("%.5s%s%s", AttrVal($name,"firmware","n.a.")."______", $sFirmware, $sFirmwareId);
}
}
########################################################################################
#
# THZ_GetNB - NonBlocking Get parameter from heatpump
#
# Parameters: "name | command" (single string)
#
########################################################################################
sub THZ_GetNB($){
my ($string) = @_;
my ($name, $cmd) = split("\\|", $string);
my $hash = $defs{$name};
my $ret = DevIo_OpenDev($hash, 0, undef); #open device in child process
if (defined($ret)) {
Log3 $hash, 3, "[$name] THZ_GetNB: open device $hash->{DeviceName} error:$ret";
return ("$name|$cmd|$ret");
}
my $msg = THZ_Get($hash, $name, $cmd);
DevIo_CloseDev($hash); #close device in child process
if ($msg =~ m/\n/m) { #error message from get contains \n
return ("$name|$cmd|[ERROR]");
}
else {
return ("$name|$cmd|$msg");
}
}
########################################################################################
#
# THZ_GetNBDone - Finish Function
#
# Parameters: "name | command | message" (single string)
#
########################################################################################
sub THZ_GetNBDone($){
my ($string) = @_;
my ($name, $cmd, $msg) = split("\\|", $string);
my $hash = $defs{$name};
Log3 $hash, 4, "[$name] THZ_GetNBDone: $cmd - $msg";
if ($msg ne "[ERROR]") {
readingsSingleUpdate($hash, $cmd, $msg, 1);
}
delete($hash->{helper}{RUNNING_PID});
DevIo_OpenDev($hash, 1, undef); #reopen device for parent process
}
########################################################################################
#
# THZ_GetNBAbort - Abort Function
#
# Parameter: hash
#
########################################################################################
sub THZ_GetNBAbort($){
my ($hash) = @_;
delete($hash->{helper}{RUNNING_PID});
DevIo_OpenDev($hash, 1, undef); #reopen device for parent process
Log3 $hash->{NAME}, 3, "BlockingCall for ".$hash->{NAME}." was aborted";
}
my $buf = DevIo_SimpleReadWithTimeout($hash, 0.25);
$buf = DevIo_SimpleReadWithTimeout($hash, 8) if(!defined($buf)) ; #added for Karl Antwort msg468515
foreach my $cmdhash (values %gets) {
if (defined ($cmdhash->{cmd2}) and ($cmdhash->{cmd2} eq $parsingcmd)) #no cmd2 if parent exists in firmware 2.xx
{$msgtype = $cmdhash->{type} ;
last
Zitat von: immi am 04 August 2017, 08:58:51Yes this is not very elegant. Is it realy a problem? You can not simultaneously read from the same device in the parent and child process, at least from tcp devices (I use ser2net). So therefore you need to close an reopen the device every time you start the child process. Maybe you don't need this with serial/USB devieces.
2 problem where holding me back from nonblocking
- continuosly opening and closiing the serial interface (can be an overhead)
Zitat- possible collisionsThis could be prevented by checking the device status in THZ_Get/Set
Zitat von: TheTrumpeter am 29 Juli 2017, 13:47:20
Das ist richtig.
Die Passivkühlung bringt ohnehin sehr wenig. Ich habe meine Experimente damit mittlerweile wieder ad acta gelegt.
Gehört zwar nicht hierher, aber: Dann hast Du irgendwas in den Heizparametern gröber falsch eingestellt. Die gefilterte Aussentemperatur fällt bei mir schon den ganzen Sommer über kaum unter 20°C. Da wird nie in den Winterbetrieb geschalten. Kontrollier' mal die Parameter; was Du machst ist ein schlechter Workaround anstatt das Problem wirklich zu lösen.
Wenn Du den Parameter Passivkühlung auf "Zulüften" hast, wird die Abluft abgeschaltet und die Zuluft hochgefahren. Diese Einstellung kannst Du aber komplett vergessen, das bringt keinerlei Kühleffekt. Lies dazu meine Untersuchungen mit einem kalibrierten Temperaturfühler an den Lüftungsdüsen.
Du musst den Passivkühlungs-Paramter auf "Ablüften" einstellen, dann funktioniert das genau umgekehrt. Durch die geöffneten Fenster in den Zulufträumen saugst Du die kühle Luft ins Haus.
Der Unterschied bzgl. Luftstrom durch die Fenster ist bei geöffneten Fenstern ggü. deaktivierter Passivkühlung durchaus fühlbar. Allzuviel Unterschied in der resultierenden Raumluft macht es aber nicht.
Würd' mich interessieren, ob das wirklich funktioniert.
Was sagt die Bedienungsanleitung zum Mindestvolumenstrom?
120m³ sind bei mir gute 20Hz; viel weniger Drehzahl wird überhaupt keinen Druck und damit keinen Luftstrom mehr erzeugen können, deshalb wohl die untere Beschränkung auf 80m³ bei der 404. Würde mich wundern, wenn das bei der 504er anders wäre. Die Physik dahinter ist doch ähnlich.
Zitat von: philipp_b am 04 August 2017, 18:36:48Klingt so, als ob die Heizkurve einfach viel zu steil wäre...
Ich habe nur die Raumtemperaturen Heizkreis 1 für Tag und Nacht geändert, sowie den Fußpunkt auf 0,5 gestellt, da mit "2" und Raumtemperatur HK1 auf "20°C" das Haus mit 24°C Innentemperatur bei 7°C Außentemperatur einfach zu warm war.
Da musste ich sonst auf Raumtemperatur HK1 auf 16°C stellen um auf ca 20-21°C Innentemperatur zu kommen.
Ansonsten sind alle Werte so wie es der Service Techniker bei der Inbetriebnahme eingestellt hatte, sowie nach dem Platinen Tausch da der aktivierterte "Feuchteschutz", die Lüftung total durcheinander geschmissen hat und sich auch nicht mehr überschreiben/Patchen usw ließ ...
Zitat von: philipp_b am 04 August 2017, 18:36:48Wenn Du einen "dichten Neubau" hast, bringt es gar nichts Zu- und Abluft auf stark unterschiedliche Werte zu stellen ohne mindestens ein Fenster zu öffnen.
Das die Passiv Kühlung mit der Zuluft nicht viel bringt, glaube ich auch so, aber wir haben noch keine Insektenschutzgitter, da möchte ich über Nacht keine Fenster offen lassen.
Zitat von: TheTrumpeter am 04 August 2017, 19:58:40
Klingt so, als ob die Heizkurve einfach viel zu steil wäre...
Es ist auch im Handbuch beschrieben, wie vorzugehen ist, wenn es ständig oder in der Übergangszeit zu warm oder zu kalt ist.
Im einen Fall wird der Fusspunkt, im anderen Fall die Steigung der Heizkurve verändert. Lies' Dir das mal durch - sind nur wenige Zeilen - und gehe danach vor.
Ich kann mir ohnehin keinen aktuellen Neubau mehr vorstellen, in dem man eine 504er von der Heizlast her brauchen würde... aber Du hast bisher ja noch keinerlei Angaben zu den Gegebenheiten gemacht.
Wenn Du einen "dichten Neubau" hast, bringt es gar nichts Zu- und Abluft auf stark unterschiedliche Werte zu stellen ohne mindestens ein Fenster zu öffnen.
Zitat von: philipp_b am 04 August 2017, 20:37:58KFW55 sagt mir nichts, aber die 35kWh/m²/a sind ja eine Aussage.
Fußpunkt 0,5
Steigung 0,3
Ich kann nur sagen, wir haben ein KFW55 Haus, mit 3 Vollgeschosse je ca 89m² und unser Jahres-Primärenergiebedarf liegt bei 35kwh(m²a)
Zitat von: philipp_b am 04 August 2017, 20:37:58Du kannst es über Abluft versuchen, wenn das durch den Kamin funktioniert. Damit saugst Du die Luft durch den Kamin ins Haus.
Das "offene Fenster" realisiere ich mit unserem raumluftunabhängigen Kamin, der im Keller noch offen ist, da merkt man es wies zieht.
Insektenschutzgitter kommt irgendwann ende August, bis dahin wollte ich es über die Zuluft realisieren, aber nach den Raumtemperatur Aufzeichnungen, ists wie du sagst eigentlich sinnlos.
Zitat von: willybauss am 04 August 2017, 21:48:30Deshalb enthält zumindest mein Energieausweis die Berechnung sowohl für den "Referenzstandort" als auch für den tatsächlichen Standort.
Die Werte für kWh/m²a im Energieausweis sind errechnet. Meines Wissens geht in diese Rechnung nicht ein, ob Zuheizung durch Sonneneinstrahlung erfolgt oder erhöhte Abkühlung durch eine Kaltluftschneise. Deshalb sind diese theoretischen Werte in der Praxis kaum vergleichbar. Dasselbe HAus an unterschiedlichen Standorten wird unterschiedlich hohe HEizkosten haben, obwohl der Energieausweis das nicht aussagt.
Zitat von: willybauss am 04 August 2017, 21:48:30Einfach, aber sinnvoll. Du berücksichtigst aber nicht, dass die von Dir genannte Heizleistung nur bei deaktivierter Lüftung gilt. Bei aktivierter Lüftung bringt die Wärmepumpe mehr Leistung. Zumindest ist das lt. Leistungsdiagramm der x04SOL so.
Ich vergleiche lieber anhand der Heizlast. Ich weiß z.B. aus Erfahrung, dass meine THZ303 bis -7°C ohne Heizstab das Haus erwärmen kann. Wenn ich den Bivalenzpunkt tiefer als -7° einstelle wird es an kalten Wintertagen kalt im Haus, obwohl die WP pausenlos läuft. Ein Blick ins Datenblatt sagt mir, dass die THZ 303SOL bei -7°C eine Heizleistung von 3,3KW bringt. Also hat mein Haus bei -7°C eine Heizlast von 3,3kW.
Zitat von: willybauss am 04 August 2017, 21:57:19With FW5.39 it can be set on 404SOL.
immi,
do you see a way to set p75passiveCooling via fhem? Currently it's a read-only parameter.
set Mythz p75passiveCooling 2
ZitatUnknown argument p75passiveCooling, choose one of p01RoomTempDayHC1 p01RoomTempDayHC1SummerMode p01RoomTempDayHC2 p01RoomTempDayHC2SummerMode p02RoomTempNightHC1 p02RoomTempNightHC1SummerMode p02RoomTempNightHC2 p02RoomTempNightHC2SummerMode p03RoomTempStandbyHC1 p03RoomTempStandbyHC1SummerMode p03RoomTempStandbyHC2 p03RoomTempStandbyHC2SummerMode p04DHWsetDayTemp p05DHWsetNightTemp p06DHWsetStandbyTemp p07FanStageDay p08FanStageNight p09FanStageStandby p11DHWsetManualTemp p13GradientHC1 p14LowEndHC1 p15RoomInfluenceHC1 p16GradientHC2 p17LowEndHC2 p18RoomInfluenceHC2 p19FlowProportionHC1 p21Hyst1 p22Hyst2 p23Hyst3 p24Hyst4 p25Hyst5 p29HystAsymmetry p30integralComponent p32HystDHW p33BoosterTimeoutDHW p34BoosterDHWTempAct p35PasteurisationInterval p35PasteurisationTemp p36DHWMaxTime p37Fanstage1AirflowInlet p38Fanstage2AirflowInlet p39Fanstage3AirflowInlet p40Fanstage1AirflowOutlet p41Fanstage2AirflowOutlet p42Fanstage3AirflowOutlet p43UnschedVent3 p44UnschedVent2 p45UnschedVent1 p46UnschedVent0 p49SummerModeTemp p50SummerModeHysteresis p54MinPumpCycles p55MaxPumpCycles p56OutTempMaxPumpCycles p57OutTempMinPumpCycles p76RoomThermCorrection ...
Zitat von: willybauss am 04 August 2017, 21:57:19fixed also for those not having the firmware attribute
immi,
do you see a way to set p75passiveCooling via fhem? Currently it's a read-only parameter.
Zitat von: andre.k am 03 August 2017, 22:34:18HI Andre
4. The timeout in THZ_ReadAnswer can now be set to greater values. In my case 8 sec in the 2nd SimpleReadWithTimeout
...
5. The last modification is in THZ_Parse1 and is not related to nonblocking. I got a lot of perl warnings for non initialized strings in "cmd2"
Zitat von: willybauss am 04 August 2017, 22:53:29Willy
I haveCode AuswählensFirmware version: 04.19
or are you talking about something different?
Zitat von: immi am 07 August 2017, 20:43:43that's difficult to achieve
My strategy is that if you are calling manually a "set" or a "get" you should have priority.
ZitatI am still not very happy with sub THZ_AvoidCollisions.yes it is pretty raugh ;)
Possible collision in myWP was aborted
Second I additionaly commented out the THZ_AvoidCollisions from THZ_Set and everything is fine. It is silly because the THZ_Set is never called in backround. Do you have an idea?Zitat von: andre.k am 14 August 2017, 20:21:37THZ_AvoidCollisions. is always called by THZ_Set and THZ_Get.
I've still a problem with the function THZ_AvoidCollisions. The function is called from time to time, even in the backround.
ZitatTHZ_AvoidCollision should kill everything in the background and priotize the front-end.
Second I additionaly commented out the THZ_AvoidCollisions from THZ_Set and everything is fine. It is silly because the THZ_Set is never called in backround.
ZitatTHZ_AvoidCollision should kill everything in the background and priotize the front-end.Understood, but I never did a SET in the WEBGUI and nevertheless I got entries in the Logfile. Where are the SET calls come from?
Therefore it is also important for SET, because there could be a Get in the background..
ZitatLet us say you want a THZ_Set or a THZ_get from front-end, you check if a child is running by defined{RUNNING_PID} and kill it.There is no issue. The approach is ok. But somehow child processes are killed although I do not set/get in front-end.
Please help me undertanding, where you see an issue.
Zitat von: andre.k am 15 August 2017, 13:53:59I set interactively from webgui and from doif, on a regular basis
Understood, but I never did a SET in the WEBGUI and nevertheless I got entries in the Logfile. Where are the SET calls come from?
ZitatThis cannot and should not happen. I cannot look at it on the short term. Maybe in the next holiday
There is no issue. The approach is ok. But somehow child processes are killed although I do not set/get in front-end.
ZitatThis cannot and should not happen
2017.08.13 23:06:08 3: Possible collision in myWP was aborted
2017.08.16 09:31:00 1: DEBUG>myWP Set: ?
return "Unknown argument $cmd, choose one of $setList";
}
return "\"set $name $cmd\" needs at least one further argument: <value-to-be-modified>" if(!defined($arg));
Debug("$name Set: $cmd $arg");
THZ_AvoidCollisions($hash);
my $cmdHex2 = $cmdhash->{cmd2};
my $argMax = $cmdhash->{argMax};
my $argMin = $cmdhash->{argMin};
#-- check the parameter range
if ($cmdhash->{type} =~ /7prog|8party/) {
($arg, $arg1)=split('--', $arg);
."simpleReadTimeout:0.25,0.5,1,2,3,4,5,6,7,8,9,10 " #standard has been 0.5 since msg468515
Zitat von: andre.k am 16 August 2017, 10:03:09Your hypothesis is correct.
Maybe the Set function is called from the FHEM main loop to check the valid Set commands of the modul. To fix this we can move the THZ_AvoidCollisions function call after the first if-block.
ZitatI wanted to double them in case blocking_call parameter is enabled.
Could you please extend the range of timeout values in your next release.
ZitatWould you be so nice to test it? I cannot untill weekend
ZitatI wanted to double them in case blocking_call parameter is enabled.
I do not want to have 8 seconds in the background with blocking
Zitat von: andre.k am 16 August 2017, 16:34:23good idea
I would implement in the other way round. If blocking attribut is NOT enabled then set the timeout value to a maximum value of 0.5 sec. So even the user selects an higher value, the timeout is set to 0.5 sec.
Zitat von: andre.k am 22 August 2017, 14:04:10
Hallo an alle,
mich würde mal interessieren, wer noch das Nonblocking-Feature nutzen würde und dann seine Erfahrungen mitteilen könnte? Hat außer mir noch jemand eine THZ mit der alten Firmware 2.xx? Ich vermute nur die alten Modelle der THZ haben das Problem mit den sporadisch auftretenden Timeouts beim Warten auf Antwort. Vielleicht liegt es auch an der alten Hardware (serielles Inteface mit 9600 bps). Wie auch immer. Über Feedback wäre ich dankbar.
Andre
Zitat von: willybauss am 22 August 2017, 22:01:20Hi Willy
Ich verfolge das jetzt schon ne Weile, bin aber grade nicht in der Lage, mich da reinzudenken. Deshalb:
Was macht es?
Wie erkenne ich, ob ich es brauche?
Welchen Vorteil habe ich davon?
Welche Nachteile?
Wie aufwändig ist es zu implementieren?
Zitat von: willybauss am 22 August 2017, 22:01:20
Ich verfolge das jetzt schon ne Weile, bin aber grade nicht in der Lage, mich da reinzudenken. Deshalb:
...
ZitatWas macht es?1. FHEM arbeitet normalerweise nicht Multi-Tasking, d.h. alle FHEM-Module laufen in einzigen Prozess des Betriebssystems. Die einzelnen Module (bzw. die Funktionen z.B. Get oder Set) werden durch die FHEM-Hauptschleife aufgerufen. Das erfordert, dass sich jedes Modul kooperativ verhält und die Modulfunktionen so wenig wie möglich Zeit verbrauchen und so schnell wie möglich die Kontrolle wieder an die Hauptschleife zurückgeben. Eine einzelne Modulfunktion darf das Gesamtsystem nicht blockieren, z.B. indem sie auf eine Antwort von einem externen Gerät (in unserem Beispiel die THZ) wartet. Wenn nun aber, wie in meinem Fall das Gerät (THZ) doch länger benötigt, um seine Daten bereitzustellen, kann man das Warten/Lesen in einen eigenen Prozess auslagern. Dazu stellt FHEM ein Modul Blocking.pm zur Verfügung. Das haben wir jetzt im THZ-Modul integriert. Damit ist es möglich den Read-Timout auf höhere Werte (bis 10 sec) einzustellen, ohne dass FHEM blockiert wird.
ZitatWie erkenne ich, ob ich es brauche?Wenn man viele Timeout-Meldungen
"THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow"
ZitatWelchen Vorteil habe ich davon?Der Vorteil ist, dass beim Refresh der Readings im Hintergrund keine Werte mehr verlorengehen.
ZitatWelche Nachteile?Es gibt aktuell keinen Nachteil aus Anwendersicht. Das Feature ist allerdings noch nicht so umfassend getestet und einige Dinge sind intern noch nicht optimal gelöst.
ZitatWie aufwändig ist es zu implementieren?
Zitat von: willybauss am 09 Juni 2017, 19:00:03
Hi immi,
my logfile shows frquent (3 ... 6 times per day) messages sayingCode AuswählenMythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
This is not a new effect, I know it since years, and everything works fine. But from time to time I wonder if I can do something to avoid it. Is there a user accessible value to e.g. increase wait time?
Zitat von: willybauss am 10 Juni 2017, 14:14:41
Hi immi,
I don't think it's increasing. I believe I have these entries since 2 years or so. Normally I don't even check the logfile contents, as long as it stays small in monthly size. But currently I try to find the root cause, why my Homematic CUL stops working frequently; needs a 'reopen' then. I observed an approx. 70 ... 80% match of times tamps between CUL stop and these THZ entries. CUL stop happens approx. 2 ... 3 times per month. So I don't believe that CUL is root cause for THZ issue, but I think its the other way round - THZ issue might be cause for the CUL to stop working.
For that reason I wonder if increasing wait times may help. Is fhem blocked during these wait times? If yes, the CUL issue wouldn't be healed by increasing wait times further. I need to try it out. How long may these wait times be - few seconds?
As I understand, the message tells me that Mythz sends a request to the THZ, and the answer doesn't come in expected time frame, right? What can I do to have the THZ's answer earlier? Nothing I guess, right? I have a serial connection with approx. 4 - 5m cable. The cable ends in a serial-USB converter. The converter is plugged into an USB hub, directly connected to RaspberryPi's USB port.
Since the CUL issue happens very rarely we shouldn't expect an answer within weeks. We need to think in months though. I'll let you know as soon as I have any answers.
Thanks so far. Have a nice weekend.
Willy
ZitatKönnte das eine Erklärung sein für das Problem, das ich vor einiger Zeit beschrieben hatte?:
Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
Zitat von: andre.k am 22 August 2017, 14:04:10
Hallo an alle,
mich würde mal interessieren, wer noch das Nonblocking-Feature nutzen würde und dann seine Erfahrungen mitteilen könnte? Hat außer mir noch jemand eine THZ mit der alten Firmware 2.xx? Ich vermute nur die alten Modelle der THZ haben das Problem mit den sporadisch auftretenden Timeouts beim Warten auf Antwort. Vielleicht liegt es auch an der alten Hardware (serielles Inteface mit 9600 bps). Wie auch immer. Über Feedback wäre ich dankbar.
Andre
THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found
grep InterfaceNotRespondig /opt/fhem/log/fhem-2017-08.log |uniq -c -w10
Zitat von: andre.k am 28 August 2017, 10:49:02
Hallo Peter,
interessant wäre die Anzahl der folgenden Fehlermeldungen pro Tag einmal mit und einmal ohne nonblocking:Code AuswählenTHZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found
Die Anzahl gleicher Logeinträge pro Tag kannst du z.B. so ermitteln:Code Auswählengrep InterfaceNotRespondig /opt/fhem/log/fhem-2017-08.log |uniq -c -w10
welchen Timout (Attribut simpleReadTimeout ) hast Du bei dir gesetzt?
Andre
Zitat von: peter456 am 28 August 2017, 20:30:14Hi peter
Timout habe ich wie du auf 8 eingestellt.
Kann man irgendwie die Anzahl der LOG-Eintrage reduzieren oder komplett abschalten?
sub THZ_Get_Comunication($$) {
my ($hash, $cmdHex) = @_;
my ($err, $msg) =("", " ");
Log3 $hash->{NAME}, 5, "THZ_Get_Comunication: Check if port is open. State = '($hash->{STATE})'";
if (!(($hash->{STATE}) eq "opened")) { return("closed connection", "");}
my $cnt = 0;
my $cntmax = 5;
my $success = 0;
while (!$success and ($cnt ++ < $cntmax)) {
Log3 $hash->{NAME}, 4, "THZ_Get_Comunication: loop $cnt";
#select(undef, undef, undef, 0.001);
THZ_Write($hash, "02"); # step0 --> STX start of text
($err, $msg) = THZ_ReadAnswer($hash);
#Expectedanswer1 is "10" DLE data link escape
if ($msg ne "10") {$err .= " THZ_Get_Com: error found at step0 $msg"; $err .=" NAK!!" if ($msg eq "15"); select(undef, undef, undef, 0.1); return($err, $msg) ;}
else {
THZ_Write($hash, $cmdHex); # step1 --> send request SOH start of heading -- Null -- ?? -- DLE data link escape -- EOT End of Text
($err, $msg) = THZ_ReadAnswer($hash);
}
if ((defined($err))) { $err .= " THZ_Get_Com: error found at step1 "; next ;}
# Expectedanswer2 is "1002", DLE data link escape -- STX start of text
if ($msg eq "10") { ($err, $msg) = THZ_ReadAnswer($hash);}
elsif ($msg eq "15") { $err .= " THZ_Get_Com: error found at step1 NAK!! "; select(undef, undef, undef, 0.1); return($err, $msg) ;}
if ($msg eq "1002" || $msg eq "02") {
THZ_Write($hash, "10"); # step2 --> DLE data link escape // ack datatranfer
($err, $msg) = THZ_ReadAnswer($hash); # Expectedanswer3 // read from the heatpump
THZ_Write($hash, "10");
}
if (defined($err)) { $err .= " THZ_Get_Com: error found at step2"; next;}
else {$success = 1;}
}
($err, $msg) = THZ_decode($msg) if (!defined($err)); #clean up and remove footer and header
return($err, $msg) ;
}
ZitatMost of the people do not need it;Are you shure? A retry handling in case of communication errors could help everyone. Not only in my case.
ZitatI almost never get an error, but just in case I lose a reading, I get it 60 seconds later.But could also be the next day (interval is allowed to set up to 86400 sec)
ZitatIf you have lots of errors, it means the heatpump is busy; it makes no sense to push the heatpump even more.That is not completely right. A "timeout rrror" in ReadAnwer only means that no response was received from the THZ. This can also have other causes (packet lost, no sync). In these cases, a repetition of the communication is useful after a certain waiting period has elapsed. My tests showed that after 10 sec a retry was always successful.
ZitatIf your childrens are crying, let them calm down and repeat the order later :Dagree :)
ZitatI would prefer a different strategy:Good idea for the nonblocking part.
only in case of nonblocking we provide a repeat functionality, 5 seconds later.
In function THZ_GetNBDone we already check ($msg ne "[ERROR]").
In case of an error we execute the followings 4 lines.
$timedelay=5;
my %par = ( hash => $hash, command => $cmdhash );
RemoveInternalTimer(\%par);
InternalTimer(gettimeofday() + ($timedelay) , "THZ_GetRefresh", \%par, 0);
The code in red should delete existing timers for the given register; it has to be careully checked.
What do you think?
Zitat von: andre.k am 08 September 2017, 11:48:54Hi Andre
Besides, I'm no longer convinced that Blocking.pm is the best solution. I have no idea how to prevent the continuous open / close of the IO device. I had already after some days in nonblocking mode a memory problem (maybe memory leak). I could not fork any subprocesses.
ZitatThis approach was my starting point with thz some years ago; but never got it running.. OK It was my fisrt perl script, I am sure I can do better now :)
In my opinion, it would certainly be the better approach to organize reading operations through the FHEM main loop.
Zitat von: andre.k am 13 September 2017, 17:19:36Hi Andre
For me runs currently 1) with known drawbacks and 3) without any problems.
Zitat von: immi am 15 September 2017, 12:43:47Hi immi,
Have you already implemented and tested 3) ?
#THZ_Get($hash, $hash->{NAME}, $command) if ($hash->{STATE} ne "disconnected");
THZ_AddWriteQueue($hash, $command) if ($hash->{STATE} ne "disconnected");
########################################################################################
# sub THZ_Read($)
# called from the global loop, when the select for hash reports data
########################################################################################
sub THZ_Read($) {
my ($hash) = @_;
my $buf = DevIo_SimpleRead($hash);
return "" if(!defined($buf));
my $name = $hash->{NAME};
my $state = $hash->{helper}{COMSTAT};
my $data = $hash->{PARTIAL} . uc(unpack('H*', $buf));
Log3 $name, 5, "[$name] read ($state): $data";
if ($state eq "start") {
# start of communication "02" sent; wait for acknowledge "10"
if ($data eq "10") {
$hash->{helper}{COMSTAT} = "command";
THZ_HandleWriteQueue($hash);
}
elsif ($data eq "15") {
# THZ is busy
Log3 $hash, 3, "[$name] NAK received at state: $state";
# wait still for "02"
$hash->{helper}{COMSTAT} = "confirm";
}
}
elsif ($state eq "command") {
# THZ_command sent; wait for ACK
if ($data eq "10") {
$hash->{helper}{COMSTAT} = "confirm";
}
elsif ($data eq "1002") {
$hash->{helper}{COMSTAT} = "confirm";
THZ_HandleWriteQueue($hash);
}
elsif ($data eq "15") {
# THZ is busy; never seen at this state
Log3 $hash, 3, "[$name] NAK received at state: $state";
}
}
elsif ($state eq "confirm") {
# wait for STX
if ($data eq "02") {
THZ_HandleWriteQueue($hash);
}
}
elsif ($state eq "response") {
# wait for response
if ($data =~ m/1003$/) {
# valid response packet received, write acknowledge
THZ_HandleWriteQueue($hash);
RemoveInternalTimer($hash, "THZ_TimeoutCommunication");
# parse response, update readings, shift queue and start next command
THZ_HandleResponse($hash, $data);
}
else {
# save the partial data
$hash->{PARTIAL} = $data;
}
}
}
########################################################################################
# sub THZ_HandleResponse($$)
# decode and parse response message and update reading
# error handling
########################################################################################
sub THZ_HandleResponse($$) {
my ($hash, $msg) = @_;
my $name = $hash->{NAME};
my ($err, $dmsg) = THZ_decode($msg);
if (defined($err)) {
Log3 $hash, 3, "[$name] THZ_HandleResponse: $err";
THZ_RetryCommunication($hash);
}
else{
my $rval = THZ_Parse1($hash, $dmsg);
my $rname = $hash->{helper}{QUEUE}[0];
Log3 $hash, 5, "[$name] THZ_HandleResponse: $rname - $rval";
readingsSingleUpdate($hash, $rname, $rval, 1);
THZ_ResetCommunication($hash);
}
}
########################################################################################
# sub THZ_HandleWriteQueue($)
# handle the write queue depending from communication status
# the queue is an array of THZ commands (get or set)
########################################################################################
sub THZ_HandleWriteQueue($) {
my ($hash) = @_;
my $arr = $hash->{helper}{QUEUE};
my $name = $hash->{NAME};
my $state = $hash->{helper}{COMSTAT};
return if ($hash->{STATE} ne "opened");
if(defined($arr) && @{$arr} > 0) {
my $cmd = $arr->[0];
my $cmdhash = $gets{$cmd};
# TODO: handling of double commands cmd2/cmd3
while (!defined ($cmdhash->{cmd2}) or defined ($cmdhash->{cmd3})) {
# skip commands with parent but without cmd2
if (THZ_ShiftWriteQueue($hash) == 0) {
delete($hash->{helper}{COMSTAT});
return;
}
$cmd = $arr->[0];
$cmdhash = $gets{$cmd};
}
Log3 $hash, 5, "[$name] write queue ($state) for command: $cmd";
if ($state eq "start") {
# start communication
DevIo_SimpleWrite($hash, "02", 1);
# start timer
my $to = (AttrVal($name, "simpleReadTimeout", "10"));
InternalTimer(gettimeofday() + $to, "THZ_TimeoutCommunication", $hash);
}
elsif ($state eq "command") {
# write command
# TODO: set commands
DevIo_SimpleWrite($hash, THZ_encodecommand($cmdhash->{cmd2},"get"), 1);
}
elsif ($state eq "confirm") {
DevIo_SimpleWrite($hash, "10", 1);
$hash->{helper}{COMSTAT} = "response";
}
elsif ($state eq "response") {
DevIo_SimpleWrite($hash, "10", 1);
$hash->{helper}{COMSTAT} = "start";
}
}
}
########################################################################################
# sub THZ_AddWriteQueue($$)
# add a THZ command to the queue
########################################################################################
sub THZ_AddWriteQueue($$) {
my ($hash, $cmd) = @_;
my $name = $hash->{NAME};
my $arr = $hash->{helper}{QUEUE};
Log3 $hash, 5, "[$name] add command to write queue: $cmd";
if(!$arr || 0 == scalar(@{$arr})) {
# create queue
$hash->{helper}{QUEUE} = [ $cmd ];
}
else {
# append command to queue
push(@{$arr}, $cmd);
}
if (!defined($hash->{helper}{COMSTAT})) {
#start communication
$hash->{helper}{COMSTAT} = "start";
$hash->{helper}{RETRY} = 1;
THZ_HandleWriteQueue($hash);
}
}
########################################################################################
# sub THZ_ShiftWriteQueue($)
# shift write queue
# returns the queue length
########################################################################################
sub THZ_ShiftWriteQueue($) {
my ($hash) = @_;
my $name = $hash->{NAME};
my $arr = $hash->{helper}{QUEUE};
if(defined($arr) && @{$arr} > 0) {
# shift queue
shift(@{$arr});
my $cmd = defined($arr->[0]) ? $arr->[0] : "(empty)";
Log3 $hash, 5, "[$name] shift write queue next command: $cmd";
# delete empty queue
delete($hash->{helper}{QUEUE}) if(@{$arr} == 0);
return @{$arr};
}
return 0;
}
########################################################################################
# sub THZ_TimeoutCommunication($)
# handle communication timeout
########################################################################################
sub THZ_TimeoutCommunication($) {
my ($hash) = @_;
my $name = $hash->{NAME};
Log3 $hash, 4, "[$name] communication timeout ($hash->{helper}{COMSTAT})";
THZ_RetryCommunication($hash);
}
########################################################################################
# sub THZ_RetryCommunication($)
# error handling and retry THZ communication
########################################################################################
sub THZ_RetryCommunication($) {
my ($hash) = @_;
my $name = $hash->{NAME};
my $arr = $hash->{helper}{QUEUE};
my $retry = $hash->{helper}{RETRY};
if ($retry < 5) {
Log3 $hash, 4, "[$name] communication retry $retry command: $arr->[0] ($hash->{helper}{COMSTAT})";
$hash->{helper}{COMSTAT} = "start";
$hash->{PARTIAL} = "";
$hash->{helper}{RETRY} += 1;
THZ_HandleWriteQueue($hash);
}
else {
Log3 $hash, 3, "[$name] communication retry exceeded command: $arr->[0] ($hash->{helper}{COMSTAT})";
THZ_ResetCommunication($hash);
}
}
########################################################################################
# sub THZ_ResetCommunication($)
# start next THZ command
########################################################################################
sub THZ_ResetCommunication($) {
my ($hash) = @_;
my $name = $hash->{NAME};
Log3 $hash, 5, "[$name] restart communication";
# reset communication state
$hash->{PARTIAL} = "";
$hash->{helper}{RETRY} = 1;
delete($hash->{helper}{COMSTAT});
# shift write queue
if (THZ_ShiftWriteQueue($hash) > 0) {
# start next command
$hash->{helper}{COMSTAT} = "start";
THZ_HandleWriteQueue($hash) ;
}
}
--- 00_THZ.pm 2017-10-05 13:09:56.282148137 +0200
+++ 00_THZ.170.pm 2017-10-06 10:13:55.942628726 +0200
@@ -137,7 +137,7 @@
[" p03RoomTempStandby: ", 12, 4, "hex", 10], [" p04DHWsetTempDay: ", 16, 4, "hex", 10],
[" p05DHWsetTempNight: ", 20, 4, "hex", 10], [" p06DHWsetTempStandby: ", 24, 4, "hex", 10],
[" p07FanStageDay: ", 28, 2, "hex", 1], [" p08FanStageNight: ", 30, 2, "hex", 1],
- [" p09FanStageStandby: ", 32, 2, "hex", 1], [" p10RoomTempManual: ", 34, 4, "hex", 10],
+ [" p09FanStageStandby: ", 32, 2, "hex", 1], [" p10HCTempManual: ", 34, 4, "hex", 10],
[" p11DHWsetTempManual: ", 38, 4, "hex", 10], [" p12FanStageManual: ", 42, 2, "hex", 1],
],
"D1last" => [["number_of_faults: ", 4, 2, "hex", 1],
@@ -193,7 +193,8 @@
[" heatTemp: ", 20, 4, "hex2int", 10], [" stellgroesse: ", 24, 4, "hex2int", 10],
[" seasonMode: ", 30, 2, "somwinmode",1], [" opMode: ", 36, 2, "opmodehc", 1]
],
- "F6sys206" => [["LüfterstufeManuell: ", 30, 2, "hex", 1], [" RestlaufzeitLüfter: ", 36, 4, "hex", 1]
+ "F6sys206" => [["UserSetFanStage: ", 30, 2, "hex", 1], [" UserSetFanRemainingTime: ", 36, 4, "hex", 1],
+ [" LastErrors: ", 4, 8, "hex2error", 1],
],
"FBglob" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
[" returnTemp: ", 16, 4, "hex2int", 10], [" hotGasTemp: ", 20, 4, "hex2int", 10],
@@ -528,7 +529,7 @@
"p07FanStageDay" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p08FanStageNight" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
- "p10RoomTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
+ "p10HCTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
"p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
"p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
"p80EnableSolar" => {parent=>"pSolar", argMin => "0", argMax => "1", unit =>""},
@@ -539,7 +540,9 @@
"pClockMinutes" => {parent=>"sTimedate", argMin => "0", argMax => "59", unit =>""}
);
-
+my %setsonly214 = (
+ "ResetErrors" => {cmd2=>"F8", argMin => "0", argMax => "0", type =>"0clean", unit =>""}
+);
########################################################################################
#
@@ -636,6 +639,7 @@
my %OpModeHC = ("1" =>"normal", "2" => "setback", "3" =>"standby", "4" =>"restart", "5" =>"restart");
my %SomWinMode = ( "01" =>"winter", "02" => "summer");
my %weekday = ( "0" =>"Monday", "1" => "Tuesday", "2" =>"Wednesday", "3" => "Thursday", "4" => "Friday", "5" =>"Saturday", "6" => "Sunday" );
+my %weekdaymap = ( "1" =>"Mon", "2" => "Tue", "3" =>"Wed", "4" => "Thu", "5" => "Fri", "6" =>"Sat", "7" => "Sun" );
my %faultmap = ( "0" =>"n.a.", "1" => "F01_AnodeFault", "2" => "F02_SafetyTempDelimiterEngaged", "3" => "F03_HighPreasureGuardFault", "4" => "F04_LowPreasureGuardFault", "5" => "F05_OutletFanFault", "6" => "F06_InletFanFault", "7" => "F07_MainOutputFanFault", "11" => "F11_LowPreasureSensorFault", "12"=> "F12_HighPreasureSensorFault", "15" => "F15_DHW_TemperatureFault", "17" => "F17_DefrostingDurationExceeded", "20" => "F20_SolarSensorFault", "21" => "F21_OutsideTemperatureSensorFault", "22" => "F22_HotGasTemperatureFault", "23" => "F23_CondenserTemperatureSensorFault", "24" => "F24_EvaporatorTemperatureSensorFault", "26" => "F26_ReturnTemperatureSensorFault", "28" => "F28_FlowTemperatureSensorFault", "29" => "F29_DHW_TemperatureSensorFault", "30" => "F30_SoftwareVersionFault", "31" => "F31_RAMfault", "32" => "F32_EEPromFault", "33" => "F33_ExtractAirHumiditySensor", "34" => "F34_FlowSensor", "35" => "F35_minFlowCooling", "36" => "F36_MinFlowRate", "37" => "F37_MinWaterPressure", "40" => "F40_FloatSwitch", "50" => "F50_SensorHeatPumpReturn", "51" => "F51_SensorHeatPumpFlow", "52" => "F52_SensorCondenserOutlet" );
my $firstLoadAll = 0;
my $noanswerreceived = 0;
@@ -1041,7 +1223,12 @@
if (defined($err)) { Log3 $hash->{NAME}, 3, "THZ_Set: Error msg: $err -- $cmdHex2 -> $msg"; return($cmdHex2 . "-". $msg ."--" . $err);}
else {
select(undef, undef, undef, 0.25);
- $msg=THZ_Get($hash, $name, $cmd);
+ if defined($gets{$cmd}) {
+ $msg=THZ_Get($hash, $name, $cmd);
+ }
+ else {
+ $msg=$cmd.": OK";
+ }
#take care of program of the week
if ($a[1] =~ /Mo-So/){
select(undef, undef, undef, 0.05);
@@ -1419,6 +1614,24 @@
return ($num);
}
+####################################
+#
+# bitmap2string - convert from bitmap to concatenated string
+#
+# parameter: bitmap representing yes/no, hashref to stringmapping
+# returns: concatenated string
+#
+########################################################################################
+sub bitmap2string($$) {
+ my($bitmap, $href) = @_;
+ my $idx = 1;
+ my $res = "";
+ foreach my $bit (split //, $bitmap) {
+ $res .= $href->{$idx} if ($bit);
+ $idx++;
+ }
+ return $res;
+}
####################################
#
@@ -1611,7 +1841,8 @@
elsif ($Type eq "opmodehc") {$value= $OpModeHC{hex($value)};}
elsif ($Type eq "esp_mant") {$value= sprintf("%.3f", unpack('f', pack( 'L', reverse(hex($value)))));}
elsif ($Type eq "somwinmode") {$value= $SomWinMode{($value)};}
- elsif ($Type eq "hex2wday") {$value= unpack('b7', pack('H*',$value));}
+ elsif ($Type eq "hex2wday") {$value= bitmap2string(unpack('b7', pack('H*',$value)), \%weekdaymap);}
+ elsif ($Type eq "hex2error") {$value= bitmap2string(unpack('b32', pack('H*',$value)), \%faultmap);}
elsif ($Type eq "weekday") {$value= $weekday{($value)};}
elsif ($Type eq "faultmap") {$value= $faultmap{(hex($value))};}
elsif ($Type eq "quater") {$value= quaters2time($value);}
@@ -1716,8 +1943,8 @@
}
elsif ($attrVal eq "2.14") {
THZ_RemoveInternalTimer("THZ_GetRefresh");
- %sets = %sets206;
- %gets = (%getsonly2xx, %getsonly214, %sets);
+ %sets = (%sets206, %setsonly214);
+ %gets = (%getsonly2xx, %getsonly214, %sets206);
THZ_Refresh_all_gets($hash);
}
elsif ($attrVal eq "5.39") {
elsif ($Type eq "hex2wday") {$value= $weekday{((hex($value) & 0b0007) / 0b0007)};}
or like this
elsif ($Type eq "hex2wday") {$value= unpack('b7', pack('H*',$value)); $value= $weekday{($value)};}
Zitat1)For hex2wday why do you need an additional function?
Zitathow did you come to the idea to write to F8 and exactly what value?
if defined($gets{$cmd}) {
if (defined($gets{$cmd})) {
Zitat von: Blixman am 24 Oktober 2017, 08:38:39Hi Blixman
Today i tried to display the integralHeat value from sHC1 but its always zero. Maybe the value is stored in another register? Is there anything i can do to help implementing this?
2017.10.24 20:06:21 5: THZ_Get: Try to get 'sHC1'
2017.10.24 20:06:21 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.10.24 20:06:21 5: Mythz sending 02
2017.10.24 20:06:21 5: SW: 02
2017.10.24 20:06:21 5: Mythz start Function THZ_ReadAnswer
2017.10.24 20:06:21 5: THZ_ReadAnswer: uc unpack: '10'
2017.10.24 20:06:21 5: Mythz sending 0100F5F41003
2017.10.24 20:06:21 5: SW: 0100F5F41003
2017.10.24 20:06:21 5: Mythz start Function THZ_ReadAnswer
2017.10.24 20:06:21 5: THZ_ReadAnswer: uc unpack: '1002'
2017.10.24 20:06:21 5: Mythz sending 10
2017.10.24 20:06:21 5: SW: 10
2017.10.24 20:06:21 5: Mythz start Function THZ_ReadAnswer
2017.10.24 20:06:21 5: THZ_ReadAnswer: uc unpack: '010064F40088FF6700FA000500FA00FE00F900010001000000650100000000E10000160000E500013616001003'
2017.10.24 20:06:21 5: Mythz sending 10
2017.10.24 20:06:21 5: SW: 10
2017.10.24 20:06:21 5: Parse message: 64F40088FF6700FA000500FA00FE00F900010001000000650100000000E10000160000E50001361600
2017.10.24 20:06:21 5: Message length: 82
2.06_02.06
2.06_02.15
4.39t04.39HW74SW2.08
5.39_05.19HW113SW3.16
5.39_05.39HW113SW3.16
n.a._04.09HW72SW2.08
n.a._04.19HW73SW2.08
n.a._04.39HW74SW2.06
n.a._04.39HW74SW2.08
n.a._04.39HW74SW2.11
n.a._05.09HW113SW3.16
n.a._05.19HW113SW3.12
n.a._07.19HW242SW7.01
2017.10.25 06:32:03 5: THZ_Get: Try to get 'sHC1'
2017.10.25 06:32:03 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.10.25 06:32:03 5: THZ504 sending 02
2017.10.25 06:32:03 5: SW: 02
2017.10.25 06:32:03 5: THZ504 start Function THZ_ReadAnswer
2017.10.25 06:32:03 5: THZ_ReadAnswer: uc unpack: '10'
2017.10.25 06:32:03 5: THZ504 sending 0100F5F41003
2017.10.25 06:32:03 5: SW: 0100F5F41003
2017.10.25 06:32:03 5: THZ504 start Function THZ_ReadAnswer
2017.10.25 06:32:03 5: THZ_ReadAnswer: uc unpack: '10'
2017.10.25 06:32:03 5: THZ504 start Function THZ_ReadAnswer
2017.10.25 06:32:03 5: THZ_ReadAnswer: uc unpack: '02'
2017.10.25 06:32:03 5: THZ504 sending 10
2017.10.25 06:32:03 5: SW: 10
2017.10.25 06:32:03 5: THZ504 start Function THZ_ReadAnswer
2017.10.25 06:32:03 5: THZ_ReadAnswer: uc unpack: '0100ACF400A20000012A000001440064013100000002101008006402000000009600FB000000E70000000000171003'
2017.10.25 06:32:03 5: THZ504 sending 10
2017.10.25 06:32:03 5: SW: 10
2017.10.25 06:32:03 5: Parse message: ACF400A20000012A0000014400640131000000021008006402000000009600FB000000E7000000000017
2017.10.25 06:32:03 5: Message length: 84
outsideTemp: 16.2 x08: 0 returnTemp: 29.8 integralHeat: 0 flowTemp: 32.4 heatSetTemp: 10 heatTemp: 30.5 seasonMode: summer integralSwitch: 100 opMode: setback roomSetTemp: 15 x60: 25.1 x64: 0 insideTempRC: 23.1 x72: 0 x76: 0 onHysteresisNo: 0 offHysteresisNo: 0 HCBoosterStage: 0
ACF4
outsideTemp: 00A2
x08: 0000
returnTemp: 012A
integralHeat: 0000
flowTemp: 0144
heatSetTemp: 0064
heatTemp: 0131
onHysteresisNo: 00
offHysteresisNo: 00
HCBoosterstage: 00
seasonMode: 02
x40: 1008
integralSwitch: 0064
opMode: 02
x50: 00
x52: 0000
roomSetTemp: 0096
x60: 00FB
x64: 0000
insideTempRC: 00E7
x72: 0000
x76: 0000
x80: 0017
Zitat von: Blixman am 25 Oktober 2017, 06:58:08If it's there in HC1, it should be rather easy to find:
Any suggestions for finding the integralHeat value?
Zitat von: Blixman am 25 Oktober 2017, 06:58:08Hi Blixman
The first thing that is different is the message length, mine is 84, yours is 82. The value for integralHeat is always '0000'. Maybe x80: 0017 (23) is the value i'm looking for?
Zitat von: Blixman am 26 Oktober 2017, 08:42:22look at code in sub THZ_debugread($)
@immi: I'd like to read register F7, is there a command to read a register which is not yet implemented in 00_THZ.pm? Otherwise i can read it with a terminal program or temporarily change F4 to F7 when getting sHC1.
--- 00_THZ.pm 2017-11-13 22:46:22.958567457 +0100
+++ 00_THZ.171.pm 2017-11-25 17:33:35.547658427 +0100
@@ -1,8 +1,8 @@
-##############################################
+##############################################
# 00_THZ
# $Id: 00_THZ.pm 15219 2017-10-09 19:01:39Z immi $
# by immi 10/2017
-my $thzversion = "0.171";
+my $thzversion = "0.171a";
# this code is based on the hard work of Robert; I just tried to port it
# http://robert.penz.name/heat-pump-lwz/
########################################################################################
@@ -75,7 +75,7 @@
[" p46UnschedVent0: ", 28, 4, "hex", 1], [" p75PassiveCooling: ", 32, 2, "hex", 1]
],
"03pxx206" => [["UpTempLimitDefrostEvaporatorEnd: ", 4, 4, "hex", 10], [" MaxTimeDefrostEvaporator: ", 8, 4, "hex", 1], [" LimitTempCondenserElectBoost: ", 12, 4, "hex", 10],
- [" LimitTempCondenserDefrostTerm: ", 16, 4, "hex", 10], [" CompressorRestartDelay: ", 20, 2, "hex", 1], [" MainFanSpeed: ", 22, 2, "hex", 1]
+ [" LimitTempCondenserDefrostTerm: ", 16, 4, "hex", 10], [" p47CompressorRestartDelay: ", 20, 2, "hex", 1], [" p48MainFanSpeed: ", 22, 2, "hex", 1]
],
"04pxx206" => [["MaxDefrostDurationAAExchenger: ", 4, 2, "hex", 1], [" DefrostStartThreshold: ", 6, 4, "hex", 10], [" VolumeFlowFilterReplacement: ", 10, 4, "hex", 1]
],
@@ -88,11 +88,11 @@
[" p24Hyst4: ", 10, 2, "hex", 10], [" p25Hyst5: ", 12, 2, "hex", 10], [" p26Hyst6: ", 14, 2, "hex", 10],
[" p27Hyst7: ", 16, 2, "hex", 10], [" p28Hyst8: ", 18, 2, "hex", 10], [" p29HystAsymmetry: ", 20, 2, "hex", 1],
[" p30integralComponent: ", 22, 4, "hex", 1], [" p31MaxBoostStages: ", 26, 2, "hex", 1], [" MaxHeatFlowTemp: ", 28, 4, "hex", 10],
- [" p49SummerModeTemp: ", 32, 4, "hex", 10], [" p50SummerModeHysteresis: ", 36, 4, "hex", 10], [" p77OutTempAdjust: ", 40, 4, "hex", 1],
- [" p78DualModePoint: ", 44, 4, "hex2int", 10], [" p79ReHeatingDelay: ", 48, 2, "hex", 1]
+ [" p49SummerModeTemp: ", 32, 4, "hex", 10], [" p50SummerModeHysteresis: ", 36, 4, "hex", 10], [" p77OutTempFilterTime: ", 40, 4, "hex", 1],
+ [" p78DualModePoint: ", 44, 4, "hex2int", 10], [" p79BoosterTimeoutHC: ", 48, 2, "hex", 1]
],
"07pxx206" => [["p32HystDHW: ", 4, 2, "hex", 10], [" p33BoosterTimeoutDHW: ", 6, 2, "hex", 1], [" p34TempLimitBoostDHW: ", 8, 4, "hex2int", 10], [" p35PasteurisationInterval: ", 12, 2, "hex", 1],
- [" p36MaxDurationDHWLoad: ", 14, 2, "hex", 1], [" PasteurisationTemp: ", 16, 4, "hex", 10], [" MaxBoostStagesDHW: ", 20, 2, "hex", 1],
+ [" p36MaxDurationDHWLoad: ", 14, 2, "hex", 1], [" pasteurisationTemp: ", 16, 4, "hex", 10], [" maxBoostStagesDHW: ", 20, 2, "hex", 1],
[" p84EnableDHWBuffer: ", 22, 2, "hex", 1]
],
"08pxx206" => [["p80EnableSolar: ", 4, 2, "hex", 1], [" p81DiffTempSolarLoading: ", 6, 4, "hex", 10], [" p82DelayCompStartSolar: ", 10, 2, "hex", 1],
@@ -109,16 +109,33 @@
"0Apxx206" => [["p54MinPumpCycles: ", 4, 2, "hex", 1], [" p55MaxPumpCycles: ", 6, 4, "hex", 1], [" p56OutTempMaxPumpCycles: ", 10, 4, "hex", 10],
[" p57OutTempMinPumpCycles: ", 14, 4, "hex", 10], [" p58SuppressTempCaptPumpStart: ", 18, 4, "hex", 1]
],
- "0Bpxx206" => [["pHTG1StartTime: ", 4, 4, "hex2time", 1], [" pHTG1EndTime: ", 8, 4, "hex2time", 1], [" pHTG1Weekdays: ", 12, 2, "hex2wday", 1],
- [" pHTG1Enable: ", 14, 2, "hex", 1], [" pHTG2StartTime: ", 16, 4, "hex2time", 1], [" pHTG2EndTime: ", 20, 4, "hex2time", 1],
- [" pHTG2Weekdays: ", 24, 2, "hex2wday", 1], [" pHTG2Enable: ", 26, 2, "hex", 1]
+ "0Bpxx206" => [["progHC1StartTime: ", 4, 4, "hex2time", 1], [" progHC1EndTime: ", 8, 4, "hex2time", 1],
+ [" progHC1Monday: ", 13, 1, "bit0", 1], [" progHC1Tuesday: ", 13, 1, "bit1", 1],
+ [" progHC1Wednesday: ", 13, 1, "bit2", 1], [" progHC1Thursday: ", 13, 1, "bit3", 1],
+ [" progHC1Friday: ", 12, 1, "bit0", 1], [" progHC1Saturday: ", 12, 1, "bit1", 1],
+ [" progHC1Sunday: ", 12, 1, "bit2", 1], [" progHC1Enable: ", 14, 2, "hex", 1],
+ [" progHC2StartTime: ", 16, 4, "hex2time", 1], [" progHC2EndTime: ", 20, 4, "hex2time", 1],
+ [" progHC2Monday: ", 25, 1, "bit0", 1], [" progHC2Tuesday: ", 25, 1, "bit1", 1],
+ [" progHC2Wednesday: ", 25, 1, "bit2", 1], [" progHC2Thursday: ", 25, 1, "bit3", 1],
+ [" progHC2Friday: ", 24, 1, "bit0", 1], [" progHC2Saturday: ", 24, 1, "bit1", 1],
+ [" progHC2Sunday: ", 24, 1, "bit2", 1], [" progHC2Enable: ", 26, 2, "hex", 1]
+ ],
+ "0Cpxx206" => [["progDHWStartTime: ", 4, 4, "hex2time", 1], [" progDHWEndTime: ", 8, 4, "hex2time", 1],
+ [" progDHWMonday: ", 13, 1, "bit0", 1], [" progDHWTuesday: ", 13, 1, "bit1", 1],
+ [" progDHWWednesday: ", 13, 1, "bit2", 1], [" progDHWThursday: ", 13, 1, "bit3", 1],
+ [" progDHWFriday: ", 12, 1, "bit0", 1], [" progDHWSaturday: ", 12, 1, "bit1", 1],
+ [" progDHWSunday: ", 12, 1, "bit2", 1], [" progDHWEnable: ", 14, 2, "hex", 1],
],
- "0Cpxx206" => [["pDHWStartTime: ", 4, 4, "hex2time", 1], [" pDHWEndTime: ", 8, 4, "hex2time", 1], [" pDHWWeekdays: ", 12, 2, "hex2wday", 1],
- [" pDHWEnable: ", 14, 2, "hex", 1],
- ],
- "0Dpxx206" => [["pFAN1StartTime: ", 4, 4, "hex2time", 1], [" pFAN1EndTime: ", 8, 4, "hex2time", 1], [" pFAN1Weekdays: ", 12, 2, "hex2wday", 1],
- [" pFAN1Enable: ", 14, 2, "hex", 1], [" pFAN2StartTime: ", 16, 4, "hex2time", 1], [" pFAN2EndTime: ", 20, 4, "hex2time", 1],
- [" pFAN2Weekdays: ", 24, 2, "hex2wday", 1], [" pFAN2Enable: ", 26, 2, "hex", 1]
+ "0Dpxx206" => [["progFAN1StartTime: ", 4, 4, "hex2time", 1], [" progFAN1EndTime: ", 8, 4, "hex2time", 1],
+ [" progFAN1Monday: ", 13, 1, "bit0", 1], [" progFAN1Tuesday: ", 13, 1, "bit1", 1],
+ [" progFAN1Wednesday: ", 13, 1, "bit2", 1], [" progFAN1Thursday: ", 13, 1, "bit3", 1],
+ [" progFAN1Friday: ", 12, 1, "bit0", 1], [" progFAN1Saturday: ", 12, 1, "bit1", 1],
+ [" progFAN1Sunday: ", 12, 1, "bit2", 1], [" progFAN1Enable: ", 14, 2, "hex", 1],
+ [" progFAN2StartTime: ", 16, 4, "hex2time", 1], [" progFAN2EndTime: ", 20, 4, "hex2time", 1],
+ [" progFAN2Monday: ", 25, 1, "bit0", 1], [" progFAN2Tuesday: ", 25, 1, "bit1", 1],
+ [" progFAN2Wednesday: ", 25, 1, "bit2", 1], [" progFAN2Thursday: ", 25, 1, "bit3", 1],
+ [" progFAN2Friday: ", 24, 1, "bit0", 1], [" progFAN2Saturday: ", 24, 1, "bit1", 1],
+ [" progFAN2Sunday: ", 24, 1, "bit2", 1], [" progFAN2Enable: ", 26, 2, "hex", 1]
],
"0Epxx206" => [["p59RestartBeforeSetbackEnd: ", 4, 4, "hex", 1]
],
@@ -127,10 +144,9 @@
"10pxx206" => [["p70StartDryHeat: ", 4, 2, "hex", 1], [" p71BaseTemp: ", 6, 4, "hex", 10], [" p72PeakTemp: ", 10, 4, "hex", 10],
[" p73TempDuration: ", 14, 4, "hex", 1], [" p74TempIncrease: ", 18, 4, "hex", 10]
],
- "16sol" => [["collector_temp: ", 4, 4, "hex2int", 10], [" dhw_temp: ", 8, 4, "hex2int", 10],
- [" flow_temp: ", 12, 4, "hex2int", 10], [" ed_sol_pump_temp: ", 16, 4, "hex2int", 10],
- [" x20: ", 20, 4, "hex2int", 1], [" x24: ", 24, 4, "hex2int", 1],
- [" x28: ", 28, 4, "hex2int", 1], [" x32: ", 32, 2, "hex2int", 1]
+ "16sol" => [["collectorTemp: ", 4, 4, "hex2int", 10], [" dhwTemp: ", 8, 4, "hex2int", 10],
+ [" flowTemp: ", 12, 4, "hex2int", 10], [" edSolPump: ", 16, 2, "hex2int", 1],
+ [" out: ", 26, 4, "raw", 1], [" status: ", 30, 2, "raw", 1]
],
"17pxx206" => [["p01RoomTempDay: ", 4, 4, "hex", 10], [" p02RoomTempNight: ", 8, 4, "hex", 10],
[" p03RoomTempStandby: ", 12, 4, "hex", 10], [" p04DHWsetTempDay: ", 16, 4, "hex", 10],
@@ -151,49 +167,48 @@
[" fault2CODE: ", 32, 4, "faultmap", 1], [" fault2TIME: ", 36, 4, "hex2time", 1], [" fault2DATE: ", 40, 4, "hexdate", 1],
[" fault3CODE: ", 44, 4, "faultmap", 1], [" fault3TIME: ", 48, 4, "hex2time", 1], [" fault3DATE: ", 52, 4, "hexdate", 1]
],
- "EEprg206" => [["OpMode: ", 4, 2, "hex", 1], [" ProgStateHC: ", 10, 2, "opmodehc", 1], [" ProgStateDHW: ", 12, 2, "opmodehc", 1],
+ "EEprg206" => [["opMode: ", 4, 2, "opmode2", 1], [" ProgStateHC: ", 10, 2, "opmodehc", 1], [" ProgStateDHW: ", 12, 2, "opmodehc", 1],
[" ProgStateFAN: ", 14, 2, "opmodehc", 1], [" BaseTimeAP0: ", 16, 8, "hex", 1], [" StatusAP0: ", 24, 2, "hex", 1],
[" StartTimeAP0: ", 26, 8, "hex", 1], [" EndTimeAP0: ", 34, 8, "hex", 1]
],
- "F3dhw" => [["dhw_temp: ", 4, 4, "hex2int", 10], [" outside_temp: ", 8, 4, "hex2int", 10],
- [" dhw_set_temp: ", 12, 4, "hex2int", 10], [" comp_block_time: ", 16, 4, "hex2int", 1],
- [" x20: ", 20, 4, "hex2int", 1], [" heat_block_time: ", 24, 4, "hex2int", 1],
- [" BoosterStage: ", 28, 2, "hex", 1], [" x30: ", 30, 4, "hex", 1],
- [" opMode: ", 34, 2, "opmodehc", 1], [" x36: ", 36, 4, "hex", 1]
+ "F3dhw" => [["dhwTemp: ", 4, 4, "hex2int", 10], [" outsideTemp: ", 8, 4, "hex2int", 10],
+ [" dhwSetTemp: ", 12, 4, "hex2int", 10], [" compBlockTime: ", 16, 4, "hex2int", 1],
+ [" out: ", 20, 4, "raw", 1], [" heatBlockTime: ", 24, 4, "hex2int", 1],
+ [" dhwBoosterStage: ", 28, 2, "hex", 1], [" pasteurisationMode: ", 32, 2, "hex", 1],
+ [" dhwOpMode: ", 34, 2, "opmodehc", 1], [" x36: ", 36, 4, "raw", 1]
],
"F4hc1" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "hex2int", 10],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" seasonMode: ", 38, 2, "somwinmode", 1], #[" x40: ", 40, 4, "hex2int", 1],
- [" integralSwitch: ", 44, 4, "hex2int", 1], [" opMode: ", 48, 2, "opmodehc", 1],
+ [" integralSwitch: ", 44, 4, "hex2int", 1], [" hcOpMode: ", 48, 2, "opmodehc", 1],
#[" x52: ", 52, 4, "hex2int", 1],
[" roomSetTemp: ", 56, 4, "hex2int", 10], [" x60: ", 60, 4, "hex2int", 10],
[" x64: ", 64, 4, "hex2int", 10], [" insideTempRC: ", 68, 4, "hex2int", 10],
[" x72: ", 72, 4, "hex2int", 10], [" x76: ", 76, 4, "hex2int", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
- [" HCBoosterStage: ", 36, 2, "hex", 1]
+ [" hcBoosterStage: ", 36, 2, "hex", 1]
],
- "F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "hex2int", 10],
+ "F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "raw", 1],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
- [" seasonMode: ", 38, 2, "somwinmode", 1], #[" x40: ", 40, 4, "hex2int", 1],
- [" integralSwitch: ", 44, 4, "hex2int", 1], [" opMode: ", 48, 2, "opmodehc", 1],
- #[" x52: ", 52, 4, "hex2int", 1],
+ [" seasonMode: ", 38, 2, "somwinmode", 1],
+ [" integralSwitch: ", 44, 4, "hex2int", 1], [" hcOpMode: ", 48, 2, "opmodehc", 1],
[" roomSetTemp: ", 62, 4, "hex2int", 10], [" x60: ", 60, 4, "hex2int", 10],
- [" x64: ", 64, 4, "hex2int", 10], [" insideTempRC: ", 68, 4, "hex2int", 10],
- [" x72: ", 72, 4, "hex2int", 10], [" x76: ", 76, 4, "hex2int", 10],
+ [" x64: ", 64, 4, "raw", 1], [" insideTempRC: ", 68, 4, "hex2int", 10],
+ [" x72: ", 72, 4, "raw", 1], [" x76: ", 76, 4, "raw", 1],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
- [" HCBoosterStage: ", 36, 2, "hex", 1]
+ [" hcBoosterStage: ", 36, 2, "hex", 1]
],
"F5hc2" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" returnTemp: ", 8, 4, "hex2int", 10],
[" vorlaufTemp: ", 12, 4, "hex2int", 10], [" heatSetTemp: ", 16, 4, "hex2int", 10],
[" heatTemp: ", 20, 4, "hex2int", 10], [" stellgroesse: ", 24, 4, "hex2int", 10],
- [" seasonMode: ", 30, 2, "somwinmode",1], [" opMode: ", 36, 2, "opmodehc", 1]
+ [" seasonMode: ", 30, 2, "somwinmode",1], [" hcOpMode: ", 36, 2, "opmodehc", 1]
],
- "F6sys206" => [["UserSetFanStage: ", 30, 2, "hex", 1], [" UserSetFanRemainingTime: ", 36, 4, "hex", 1],
- [" LastErrors: ", 4, 8, "hex2error", 1],
+ "F6sys206" => [["userSetFanStage: ", 30, 2, "hex", 1], [" userSetFanRemainingTime: ", 36, 4, "hex", 1],
+ [" lastErrors: ", 4, 8, "hex2error", 1],
],
"FBglob" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
[" returnTemp: ", 16, 4, "hex2int", 10], [" hotGasTemp: ", 20, 4, "hex2int", 10],
@@ -214,7 +229,7 @@
[" dewPoint: ", 82, 4, "hex2int", 10],
[" P_Nd: ", 86, 4, "hex2int", 100], [" P_Hd: ", 90, 4, "hex2int", 100],
[" actualPower_Qc: ", 94, 8, "esp_mant", 1], [" actualPower_Pel: ", 102, 8, "esp_mant", 1],
- [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10] #, [" x84: ", 84, 4, "donottouch", 1]
+ [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10]
],
"FBglob206" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
[" returnTemp: ", 16, 4, "hex2int", 10], [" hotGasTemp: ", 20, 4, "hex2int", 10],
@@ -225,17 +240,17 @@
[" dhwPump: ", 45, 1, "bit1", 1], [" heatingCircuitPump: ", 45, 1, "bit0", 1],
[" solarPump: ", 44, 1, "bit2", 1], [" compressor: ", 44, 1, "bit0", 1],
[" boosterStage3: ", 44, 1, "bit3", 1], [" boosterStage2: ", 44, 1, "n.a.", 1],
- [" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 49, 1, "n.a.", 1],
- [" lowPressureSensor: ", 49, 1, "n.a.", 1], [" evaporatorIceMonitor: ", 49, 1, "n.a.", 1],
- [" signalAnode: ", 49, 1, "n.a.", 1], [" evuRelease: ", 48, 1, "n.a.", 1],
- [" ovenFireplace: ", 48, 1, "n.a.", 1], [" STB: ", 48, 1, "n.a.", 1],
- [" outputVentilatorPower: ",48, 2, "hex", 1], [" inputVentilatorPower: ", 50, 2, "hex", 1], [" mainVentilatorPower: ", 52, 2, "hex", 1],
+ [" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 1],
+ [" lowPressureSensor: ", 54, 1, "bit2", 1], [" evaporatorIceMonitor: ", 55, 1, "bit3", 1],
+ [" signalAnode: ", 54, 1, "bit1", 1], [" evuRelease: ", 48, 1, "n.a.", 1],
+ [" ovenFireplace: ", 54, 1, "bit0", 1], [" STB: ", 48, 1, "n.a.", 1],
+ [" outputVentilatorPower: ",48, 2, "hex", 1], [" inputVentilatorPower: ", 50, 2, "hex", 1], [" mainVentilatorPower: ", 52, 2, "hex", 255/100],
[" outputVentilatorSpeed: ",56, 2, "hex", 1], [" inputVentilatorSpeed: ", 58, 2, "hex", 1], [" mainVentilatorSpeed: ", 60, 2, "hex", 1],
- [" outside_tempFiltered: ",64, 4, "hex2int", 10], [" relHumidity: ", 70, 4, "n.a.", 1],
+ [" outsideTempFiltered: ",64, 4, "hex2int", 10], [" relHumidity: ", 70, 4, "n.a.", 1],
[" dewPoint: ", 5, 4, "n.a.", 1],
[" P_Nd: ", 5, 4, "n.a.", 1], [" P_Hd: ", 5, 4, "n.a.", 1],
[" actualPower_Qc: ", 5, 8, "n.a.", 1], [" actualPower_Pel: ", 5, 8, "n.a.", 1],
- [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10] #, [" x84: ", 84, 4, "donottouch", 1]
+ [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10]
],
"FCtime" => [["Weekday: ", 5, 1, "weekday", 1], [" Hour: ", 6, 2, "hex", 1],
[" Min: ", 8, 2, "hex", 1], [" Sec: ", 10, 2, "hex", 1],
@@ -519,25 +534,118 @@
my %sets206 = (
- "p01RoomTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
- "p02RoomTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
- "p03RoomTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
- "p04DHWsetTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
- "p05DHWsetTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
- "p06DHWsetTempStandby"=> {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
- "p07FanStageDay" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
- "p08FanStageNight" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
- "p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
- "p10HCTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
- "p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
- "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
- "p80EnableSolar" => {parent=>"pSolar", argMin => "0", argMax => "1", unit =>""},
- "pClockDay" => {parent=>"sTimedate", argMin => "1", argMax => "31", unit =>""},
- "pClockMonth" => {parent=>"sTimedate", argMin => "1", argMax => "12", unit =>""},
- "pClockYear" => {parent=>"sTimedate", argMin => "12", argMax => "20", unit =>""},
- "pClockHour" => {parent=>"sTimedate", argMin => "0", argMax => "23", unit =>""},
- "pClockMinutes" => {parent=>"sTimedate", argMin => "0", argMax => "59", unit =>""}
- );
+ "p01RoomTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
+ "p02RoomTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
+ "p03RoomTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "30", unit =>" °C"},
+ "p04DHWsetTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p05DHWsetTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p06DHWsetTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "55", unit =>" °C"},
+ "p07FanStageDay" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
+ "p08FanStageNight" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
+ "p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
+ "p10HCTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
+ "p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", unit =>" °C"},
+ "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", unit =>""},
+ "p13GradientHC1" => {parent=>"pHeat1", argMin => "0", argMax => "5", unit =>""},
+ "p14LowEndHC1" => {parent=>"pHeat1", argMin => "0", argMax => "20", unit =>" K"},
+ "p15RoomInfluenceHC1" => {parent=>"pHeat1", argMin => "0", argMax => "10", unit =>""},
+ "p16GradientHC2" => {parent=>"pHeat1", argMin => "0", argMax => "5", unit =>""},
+ "p17LowEndHC2" => {parent=>"pHeat1", argMin => "0", argMax => "10", unit =>" K"},
+ "p18RoomInfluenceHC2" => {parent=>"pHeat1", argMin => "0", argMax => "10", unit =>""},
+ "p19FlowProportionHC1" => {parent=>"pHeat1", argMin => "0", argMax => "100", unit =>" %"},
+ "p20FlowProportionHC2" => {parent=>"pHeat1", argMin => "0", argMax => "100", unit =>" %"},
+ "p21Hyst1" => {parent=>"pHeat2", argMin => "0", argMax => "10", unit =>" K"},
+ "p22Hyst2" => {parent=>"pHeat2", argMin => "0", argMax => "10", unit =>" K"},
+ "p23Hyst3" => {parent=>"pHeat2", argMin => "0", argMax => "5", unit =>" K"},
+ "p24Hyst4" => {parent=>"pHeat2", argMin => "0", argMax => "5", unit =>" K"},
+ "p25Hyst5" => {parent=>"pHeat2", argMin => "0", argMax => "5", unit =>" K"},
+ "p29HystAsymmetry" => {parent=>"pHeat2", argMin => "1", argMax => "5", unit =>""},
+ "p30integralComponent" => {parent=>"pHeat2", argMin => "10", argMax => "999", unit =>" Kmin"},
+ "p32HystDHW" => {parent=>"pDHW", argMin => "2", argMax => "10", unit =>" K"},
+ "p33BoosterTimeoutDHW" => {parent=>"pDHW", argMin => "0", argMax => "240", unit =>" min"},
+ "p34TempLimitBoostDHW" => {parent=>"pDHW", argMin => "-10", argMax => "10", unit =>" °C"},
+ "p35PasteurisationInterval" => {parent=>"pDHW", argMin => "3", argMax => "30", unit =>" Tage"},
+ "p36MaxDurationDHWLoad" => {parent=>"pDHW", argMin => "6", argMax => "12", unit =>" h"},
+ "p37Fanstage1AirflowInlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p38Fanstage2AirflowInlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p39Fanstage3AirflowInlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p40Fanstage1AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p41Fanstage2AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p42Fanstage3AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", unit =>" m3/h"},
+ "p43UnschedVent3" => {parent=>"pFan", argMin => "0", argMax => "1000", unit =>" min"},
+ "p44UnschedVent2" => {parent=>"pFan", argMin => "0", argMax => "1000", unit =>" min"},
+ "p45UnschedVent1" => {parent=>"pFan", argMin => "0", argMax => "1000", unit =>" min"},
+ "p46UnschedVent0" => {parent=>"pFan", argMin => "0", argMax => "1000", unit =>" min"},
+ "p47CompressorRestartDelay" => {parent=>"pDefrostEva", argMin => "0", argMax => "20", unit =>" min"},
+ "p48MainFanSpeed" => {parent=>"pDefrostEva", argMin => "0", argMax => "100", unit =>" %"},
+ "p49SummerModeTemp" => {parent=>"pHeat2", argMin => "10", argMax => "24", unit =>" °C"},
+ "p50SummerModeHysteresis" => {parent=>"pHeat2", argMin => "1", argMax => "5", unit =>" K"},
+ "p54MinPumpCycles" => {parent=>"pCircPump", argMin => "1", argMax => "24", unit =>" /Tag"},
+ "p55MaxPumpCycles" => {parent=>"pCircPump", argMin => "25", argMax => "288", unit =>" /Tag"},
+ "p56OutTempMaxPumpCycles" => {parent=>"pCircPump", argMin => "0", argMax => "20", unit =>" °C"},
+ "p57OutTempMinPumpCycles" => {parent=>"pCircPump", argMin => "0", argMax => "25", unit =>" °C"},
+ "p58SuppressTempCaptPumpStart"=> {parent=>"pCircPump", argMin => "0", argMax => "120", unit =>" s"},
+ "p75PassiveCooling" => {parent=>"pFan", argMin => "0", argMax => "1", unit =>""},
+ "p77OutTempFilterTime" => {parent=>"pHeat2", argMin => "0", argMax => "24", unit =>" h"},
+ "p78DualModePoint" => {parent=>"pHeat2", argMin => "-10", argMax => "20", unit =>" °C"},
+ "p79BoosterTimeoutHC" => {parent=>"pHeat2", argMin => "0", argMax => "60", unit =>" min"},
+ "p80EnableSolar" => {parent=>"pSolar", argMin => "0", argMax => "1", unit =>""},
+ "pClockDay" => {parent=>"sTimedate", argMin => "1", argMax => "31", unit =>""},
+ "pClockMonth" => {parent=>"sTimedate", argMin => "1", argMax => "12", unit =>""},
+ "pClockYear" => {parent=>"sTimedate", argMin => "12", argMax => "20", unit =>""},
+ "pClockHour" => {parent=>"sTimedate", argMin => "0", argMax => "23", unit =>""},
+ "pClockMinutes" => {parent=>"sTimedate", argMin => "0", argMax => "59", unit =>""},
+ "progDHWStartTime" => {parent=>"pDHWProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progDHWEndTime" => {parent=>"pDHWProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progDHWEnable" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWMonday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWTuesday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWWednesday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWThursday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWFriday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWSaturday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progDHWSunday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1StartTime" => {parent=>"pHeatProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progHC1EndTime" => {parent=>"pHeatProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progHC1Enable" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Monday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Tuesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Wednesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Thursday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Friday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Saturday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC1Sunday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2StartTime" => {parent=>"pHeatProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progHC2EndTime" => {parent=>"pHeatProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progHC2Enable" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Monday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Tuesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Wednesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Thursday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Friday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Saturday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progHC2Sunday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1StartTime" => {parent=>"pFanProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progFAN1EndTime" => {parent=>"pFanProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progFAN1Enable" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Monday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Tuesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Wednesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Thursday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Friday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Saturday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN1Sunday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2StartTime" => {parent=>"pFanProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progFAN2EndTime" => {parent=>"pFanProg", argMin => "00:00", argMax => "23:59", unit =>""},
+ "progFAN2Enable" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Monday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Tuesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Wednesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Thursday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Friday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Saturday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""},
+ "progFAN2Sunday" => {parent=>"pFanProg", argMin => "0", argMax => "1", unit =>""}
+);
my %setsonly214 = (
"ResetErrors" => {cmd2=>"F8", argMin => "0", argMax => "0", type =>"0clean", unit =>""}
@@ -594,7 +702,6 @@
%getsonly539=(%getsonly539, %getsonly439);
my %getsonly2xx = (
- "pExpert" => {cmd2=>"02", type =>"02pxx206", unit =>""},
"pDefrostEva" => {cmd2=>"03", type =>"03pxx206", unit =>""},
"pDefrostAA" => {cmd2=>"04", type =>"04pxx206", unit =>""},
"pHeat1" => {cmd2=>"05", type =>"05pxx206", unit =>""},
@@ -615,9 +722,15 @@
"sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""},
"sSystem" => {cmd2=>"F6", type =>"F6sys206", unit =>""},
"sHistory" => {cmd2=>"09", type =>"09his206", unit =>""},
- # "sLast10errors" => {cmd2=>"D1", type =>"D1last206", unit =>""}, removed after andres hint; 33211.msg658108
- "sGlobal" => {cmd2=>"FB", type =>"FBglob206", unit =>""}, #allFB
+ "sGlobal" => {cmd2=>"FB", type =>"FBglob206", unit =>""},
"sTimedate" => {cmd2=>"FC", type =>"FCtime206", unit =>""},
+ "inputVentilatorSpeed"=> {parent=>"sGlobal", unit =>" %"},
+ "outputVentilatorSpeed"=> {parent=>"sGlobal", unit =>" %"},
+ "mainVentilatorSpeed" => {parent=>"sGlobal", unit =>" %"},
+ "inputVentilatorPower"=> {parent=>"sGlobal", unit =>" %"},
+ "outputVentilatorPower"=> {parent=>"sGlobal", unit =>" %"},
+ "mainVentilatorPower" => {parent=>"sGlobal", unit =>" %"},
+
);
my %getsonly206 = (
"sHC1" => {cmd2=>"F4", type =>"F4hc1", unit =>""},
@@ -628,18 +741,25 @@
);
my %getsonly214 = (
"pFan" => {cmd2=>"01", type =>"01pxx214", unit =>""},
+ "pExpert" => {cmd2=>"02", type =>"02pxx206", unit =>""},
+ "sControl" => {cmd2=>"F2", type =>"F2type", unit =>""},
"sHC1" => {cmd2=>"F4", type =>"F4hc1214", unit =>""},
+ "sLVR" => {cmd2=>"E8", type =>"E8tyype", unit =>""},
+ "sF0" => {cmd2=>"F0", type =>"F0type", unit =>""},
+ "sF1" => {cmd2=>"F1", type =>"F1type", unit =>""},
+ "sEF" => {cmd2=>"EF", type =>"EFtype", unit =>""},
);
my %sets=(%sets439539common, %sets439only);
my %gets=(%getsonly439, %sets);
my %OpMode = ("1" =>"standby", "11" => "automatic", "3" =>"DAYmode", "4" =>"setback", "5" =>"DHWmode", "14" =>"manual", "0" =>"emergency");
+my %opMode2 = ("0" =>"manual", "1" => "automatic");
my %Rev_OpMode = reverse %OpMode;
my %OpModeHC = ("1" =>"normal", "2" => "setback", "3" =>"standby", "4" =>"restart", "5" =>"restart");
my %SomWinMode = ( "01" =>"winter", "02" => "summer");
my %weekday = ( "0" =>"Monday", "1" => "Tuesday", "2" =>"Wednesday", "3" => "Thursday", "4" => "Friday", "5" =>"Saturday", "6" => "Sunday" );
-my %weekdaymap = ( "1" =>"Mon", "2" => "Tue", "3" =>"Wed", "4" => "Thu", "5" => "Fri", "6" =>"Sat", "7" => "Sun" );
+#my %weekdaymap = ( "1" =>"Mon", "2" => "Tue", "3" =>"Wed", "4" => "Thu", "5" => "Fri", "6" =>"Sat", "7" => "Sun" );
my %faultmap = ( "0" =>"n.a.", "1" => "F01_AnodeFault", "2" => "F02_SafetyTempDelimiterEngaged", "3" => "F03_HighPreasureGuardFault", "4" => "F04_LowPreasureGuardFault", "5" => "F05_OutletFanFault", "6" => "F06_InletFanFault", "7" => "F07_MainOutputFanFault", "11" => "F11_LowPreasureSensorFault", "12"=> "F12_HighPreasureSensorFault", "15" => "F15_DHW_TemperatureFault", "17" => "F17_DefrostingDurationExceeded", "20" => "F20_SolarSensorFault", "21" => "F21_OutsideTemperatureSensorFault", "22" => "F22_HotGasTemperatureFault", "23" => "F23_CondenserTemperatureSensorFault", "24" => "F24_EvaporatorTemperatureSensorFault", "26" => "F26_ReturnTemperatureSensorFault", "28" => "F28_FlowTemperatureSensorFault", "29" => "F29_DHW_TemperatureSensorFault", "30" => "F30_SoftwareVersionFault", "31" => "F31_RAMfault", "32" => "F32_EEPromFault", "33" => "F33_ExtractAirHumiditySensor", "34" => "F34_FlowSensor", "35" => "F35_minFlowCooling", "36" => "F36_MinFlowRate", "37" => "F37_MinWaterPressure", "40" => "F40_FloatSwitch", "50" => "F50_SensorHeatPumpReturn", "51" => "F51_SensorHeatPumpFlow", "52" => "F52_SensorCondenserOutlet" );
my $firstLoadAll = 0;
my $noanswerreceived = 0;
@@ -1029,7 +1372,18 @@
$arg *= $dec if ($dec != 1);
$arg = time2quaters($arg) if ($parsingtype eq "quater");
- $arg = substr((sprintf(("%0".$len."X"), $arg)), (-1*$len)); #04X converts to hex and fills up 0s; for negative, it must be trunckated.
+ if ($parsingtype eq "hex2time"){ # only in firmware 2.x
+ my ($hour, $min) = split(':', $arg);
+ $arg = $hour * 100 + $min;
+ }
+ if ($parsingtype =~ /bit(\d)/) { # only in firmware 2.x
+ my $bits = unpack('b4', pack('h1', substr($msg, $pos, 1))); #convert nibble to bit string for example '1111'
+ substr($bits, $1, 1, $arg); #set or unset bit
+ $arg = uc(unpack('h1', pack('b4', $bits))); #convert to nibble
+ }
+ else {
+ $arg = substr((sprintf(("%0".$len."X"), $arg)), (-1*$len)); #04X converts to hex and fills up 0s; for negative, it must be trunckated.
+ }
substr($msg, $pos, $len, $arg);
if (defined($arg1)) { #only in case of "8party" or "7prog"
@@ -1381,7 +1741,7 @@
return (sprintf("%02X", ($checksum %256)));
}
-#####################################
+############### ######################
#
# hex2int - convert from hex to int with sign 16bit
#
@@ -1643,10 +2003,12 @@
elsif ($Type eq "swver") {$value= sprintf("%01u.%02u", hex(substr($value, 0,2)), hex(substr($value, 2,2)));}
elsif ($Type eq "hex2ascii") {$value= uc(pack('H*', $value));}
elsif ($Type eq "opmode") {$value= $OpMode{hex($value)};}
+ elsif ($Type eq "opmode2") {$value= $opMode2{hex($value)};}
elsif ($Type eq "opmodehc") {$value= $OpModeHC{hex($value)};}
elsif ($Type eq "esp_mant") {$value= sprintf("%.3f", unpack('f', pack( 'L', reverse(hex($value)))));}
elsif ($Type eq "somwinmode") {$value= $SomWinMode{($value)};}
- elsif ($Type eq "hex2wday") {$value= bitmap2string(unpack('b7', pack('H*',$value)), \%weekdaymap);}
+# elsif ($Type eq "hex2wday") {$value= bitmap2string(unpack('b7', pack('H*',$value)), \%weekdaymap);}
+ elsif ($Type eq "raw") {;}
elsif ($Type eq "hex2error") {$value= bitmap2string(unpack('b32', pack('H*',$value)), \%faultmap);}
elsif ($Type eq "weekday") {$value= $weekday{($value)};}
elsif ($Type eq "faultmap") {$value= $faultmap{(hex($value))};}
2017.11.26 16:49:09 5: searching for parent; parenthash= HASH(0x1a16b20), parent = pHeatProg, cmdHex2 = 0B
2017.11.26 16:49:09 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:49:09 5: myWP sending 02
2017.11.26 16:49:09 5: SW: 02
2017.11.26 16:49:09 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:09 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:09 5: myWP sending 01000C0B1003
2017.11.26 16:49:09 5: SW: 01000C0B1003
2017.11.26 16:49:09 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:09 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:09 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:09 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:49:09 5: myWP sending 10
2017.11.26 16:49:09 5: SW: 10
2017.11.26 16:49:09 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:09 5: double read 1 activated 0100A30B07D00258
2017.11.26 16:49:09 5: double read 1 result with buf1 0100A30B07D002587F010393044C00001003
2017.11.26 16:49:09 5: THZ_ReadAnswer: uc unpack: '0100A30B07D002587F010393044C00001003'
2017.11.26 16:49:09 5: myWP sending 10
2017.11.26 16:49:09 5: SW: 10
2017.11.26 16:49:09 5: read before write from THZ: 0B07D002587F010393044C0000
2017.11.26 16:49:10 5: write command (parsed element/pos/len/dec/parsingtype): 12 / 23 / 1 / 1 / bit0
2017.11.26 16:49:10 5: THZ_Set: 'progHC2Monday 1 0B07D002587F010393044C0100' ... Check if port is open. State = '(opened)'
2017.11.26 16:49:10 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:49:10 4: THZ_Get_Comunication: loop 1
2017.11.26 16:49:10 5: myWP sending 02
2017.11.26 16:49:10 5: SW: 02
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:10 5: myWP sending 0180240B07D002587F010393044C01001003
2017.11.26 16:49:10 5: SW: 0180240B07D002587F010393044C01001003
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:49:10 5: myWP sending 10
2017.11.26 16:49:10 5: SW: 10
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '01808C0B1003'
2017.11.26 16:49:10 5: myWP sending 10
2017.11.26 16:49:10 5: SW: 10
2017.11.26 16:49:10 5: THZ_Get: Try to get 'progHC2Monday'
2017.11.26 16:49:10 5: THZ_Get: Try to get 'pHeatProg'
2017.11.26 16:49:10 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:49:10 5: myWP sending 02
2017.11.26 16:49:10 5: SW: 02
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:10 5: myWP sending 01000C0B1003
2017.11.26 16:49:10 5: SW: 01000C0B1003
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:49:10 5: myWP sending 10
2017.11.26 16:49:10 5: SW: 10
2017.11.26 16:49:10 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:49:10 5: double read 1 activated 0100A40B07D00258
2017.11.26 16:49:10 5: double read 1 result with buf1 0100A40B07D002587F010393044C01001003
2017.11.26 16:49:10 5: THZ_ReadAnswer: uc unpack: '0100A40B07D002587F010393044C01001003'
2017.11.26 16:49:10 5: myWP sending 10
2017.11.26 16:49:10 5: SW: 10
2017.11.26 16:49:10 5: Parse message: A40B07D002587F010393044C0100
2017.11.26 16:49:10 5: Message length: 28
2017.11.26 16:49:10 5: THZ_split: 1 --- progHC1StartTime: 20:00 progHC1EndTime: 06:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 1 progHC1Sunday: 1 progHC1Enable: 1 progHC2StartTime: 09:15 progHC2EndTime: 11:00 progHC2Monday: 1 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 0 progHC2Sunday: 0 progHC2Enable: 0
2017.11.26 16:46:39 5: searching for parent; parenthash= HASH(0x1a16b20), parent = pHeatProg, cmdHex2 = 0B
2017.11.26 16:46:39 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:46:39 4: THZ_Get_Comunication: loop 1
2017.11.26 16:46:39 5: myWP sending 02
2017.11.26 16:46:39 5: SW: 02
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:39 5: myWP sending 01000C0B1003
2017.11.26 16:46:39 5: SW: 01000C0B1003
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:46:39 5: myWP sending 10
2017.11.26 16:46:39 5: SW: 10
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: double read 1 activated 0100F80B07D00258
2017.11.26 16:46:39 5: double read 1 result with buf1 0100F80B07D002587F0103E8044C00001003
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '0100F80B07D002587F0103E8044C00001003'
2017.11.26 16:46:39 5: myWP sending 10
2017.11.26 16:46:39 5: SW: 10
2017.11.26 16:46:39 5: read before write from THZ: 0B07D002587F0103E8044C0000
2017.11.26 16:46:39 5: write command (parsed element/pos/len/dec/parsingtype): 10 / 14 / 4 / 1 / hex2time
2017.11.26 16:46:39 5: THZ_Set: 'progHC2StartTime 0393 0B07D002587F010393044C0000' ... Check if port is open. State = '(opened)'
2017.11.26 16:46:39 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:46:39 4: THZ_Get_Comunication: loop 1
2017.11.26 16:46:39 5: myWP sending 02
2017.11.26 16:46:39 5: SW: 02
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:39 5: myWP sending 0180230B07D002587F010393044C00001003
2017.11.26 16:46:39 5: SW: 0180230B07D002587F010393044C00001003
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:39 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:39 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:46:40 5: myWP sending 10
2017.11.26 16:46:40 5: SW: 10
2017.11.26 16:46:40 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '01808C0B1003'
2017.11.26 16:46:40 5: myWP sending 10
2017.11.26 16:46:40 5: SW: 10
2017.11.26 16:46:40 5: THZ_Get: Try to get 'progHC2StartTime'
2017.11.26 16:46:40 5: THZ_Get: Try to get 'pHeatProg'
2017.11.26 16:46:40 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2017.11.26 16:46:40 4: THZ_Get_Comunication: loop 1
2017.11.26 16:46:40 5: myWP sending 02
2017.11.26 16:46:40 5: SW: 02
2017.11.26 16:46:40 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:40 5: myWP sending 01000C0B1003
2017.11.26 16:46:40 5: SW: 01000C0B1003
2017.11.26 16:46:40 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '10'
2017.11.26 16:46:40 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '02'
2017.11.26 16:46:40 5: myWP sending 10
2017.11.26 16:46:40 5: SW: 10
2017.11.26 16:46:40 5: myWP start Function THZ_ReadAnswer
2017.11.26 16:46:40 5: double read 1 activated 0100A30B07D002587F
2017.11.26 16:46:40 5: double read 1 result with buf1 0100A30B07D002587F010393044C00001003
2017.11.26 16:46:40 5: THZ_ReadAnswer: uc unpack: '0100A30B07D002587F010393044C00001003'
2017.11.26 16:46:40 5: myWP sending 10
2017.11.26 16:46:40 5: SW: 10
2017.11.26 16:46:40 5: Parse message: A30B07D002587F010393044C0000
2017.11.26 16:46:40 5: Message length: 28
2017.11.26 16:46:40 5: THZ_split: 09:15 --- progHC1StartTime: 20:00 progHC1EndTime: 06:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 1 progHC1Sunday: 1 progHC1Enable: 1 progHC2StartTime: 09:15 progHC2EndTime: 11:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 0 progHC2Sunday: 0 progHC2Enable: 0
$arg = time2quaters($arg) if ($parsingtype eq "quater");
$arg= join('', (split(':', $arg))) if ($parsingtype eq "hex2time"); # only in firmware 2.x
#$arg= eval(join('*100+', (split(':', $arg)))) if ($parsingtype eq "hex2time"); #just in case the above does not work
$arg=(hex(substr($msg, $pos, 1)) & (15-2**$1)) | (2**$1*$arg) if ($parsingtype =~ /bit(\d)/);
$arg = substr((sprintf(("%0".$len."X"), $arg)), (-1*$len)); #04X converts to hex and fills up 0s; for negative, it must be trunckated.
substr($msg, $pos, $len, $arg);
ZitatI implemented the 2 functions in a different way
my $cmdcode = $cmdhash->{cmd2};
my $cmdtype = $cmdhash->{type};
my $msgtype = $cmdhash->{type};
my $argMax = $cmdhash->{argMax};
my $argMin = $cmdhash->{argMin};
my $parent = $cmdhash->{parent};
my $i = 0;
my $parsingrule = $parsinghash{$msgtype} if(defined($msgtype));
if (defined($parent)) {
Log3 $hash->{NAME}, 5, "[$name] THZ_Set searching for parent: $parent";
my $parenthash = $gets{$parent};
$parsingrule = $parsinghash{$parenthash->{type}};
# get the element index in parsingsrule for 2.xx firmware
for (@$parsingrule) {
last if ((@$parsingrule[$i]->[0]) =~ m/$cmd/);
$i++;
}
#overwrite with the parent values
$cmdcode = $parsinghash{$parenthash->{cmd2}};
$cmdtype = @$parsingrule[$i]->[3];
}
#-- check the parameter range
if (defined($parent) and ($cmdtype eq "hex2time")) {
# special validations for 2.xx firmware
my ($hour, $min) = split(':', $arg);
return "Argument does not contain a valid hour from 00 to 23 " if(($hour > 23) or ($hour < 0));
return "Argument does not contain a valid minute from 00 to 59 " if(($min > 59) or ($min < 0));
$arg = $hour * 100 + $min;
}
elsif ($cmdtype =~ /7prog|8party/) {
($arg, $arg1) = split('--', $arg);
return "Argument does not match the allowed inerval Min $argMin ...... Max $argMax " if (($arg ne "n.a.") and ($arg1 ne "n.a.") and (($arg1 gt $argMax) or ($arg1 lt $argMin) or ($arg gt $argMax) or ($arg lt $argMin)) ) ;
}
elsif ($cmdtype eq "2opmode") {
$arg = $Rev_OpMode{$arg};
return "Unknown argument $arg1: $cmd supports " . join(" ", sort values %OpMode) if(!defined($arg));
}
else {
#in all other cases assume numeric type
return "Argument does not match the allowed inerval Min $argMin ...... Max $argMax " if(($arg > $argMax) or ($arg < $argMin));
}
if ($parsingtype eq "quater") {
$arg = time2quaters($arg);
}
elsif ($parsingtype =~ /bit(\d)/) { # only in firmware 2.x
$arg = (hex(substr($msg, $pos, 1)) & ~(1<<$1)) | ((1<<$1)*$arg);
}
$arg ="10:09";
$arg= join('', (split(':', $arg)));
print $arg;
prints "1009"
command if x>y;
command2 if ...;
command2 if ...;
Zitatit is a string in which you remove a ":" ... no problemOK, but if the user enters a string "20:8" on the command line, we set a wrong time.
Zitatcommand if x>y;This is definitly not best practice. Why should we check 3 conditions if the first condition matches and only one condition can be true? Here is the if/elsif/else the better way (if you don't like the switch statement).
command2 if ...;
command2 if ...;
ZitatI committed a version without full syntax check; now you have the same check as for 7prog|8partyNot really, because the sets with "parent" don't have a "type". That's why I suggested to get the argument type from the parenthash before the validation of arguments starts. Or we give all sets with parents an additional "type" just for parameter checking.
my $b = -14 * $p13GradientHC1 / $roomSetTemp;
"sControl" => {cmd2=>"F2", type =>"F2ctrl", unit =>""},
"sFan" => {cmd2=>"E8", type =>"E8fan", unit =>""},
"E8fan" => [["statusAFC: ", 4, 4, "hex", 1], # 0=init air flow calibration (16:00) 4=normal fan operation
[" supplyFanSpeedCAL: ", 8, 4, "hex", 60], # calibration speed
[" exhaustFanSpeedCAL: ", 12, 4, "hex", 60],
[" supplyFanAirflowCAL: ", 16, 4, "hex", 100], # calibration air flow volume
[" exhaustFanAirflowCAL: ", 20, 4, "hex", 100],
[" supplyFanSpeed: ", 24, 4, "hex", 1], # actual fan speed in 1/s
[" exhaustFanSpeed: ", 28, 4, "hex", 1],
[" supplyFanAirflowSet: ", 32, 4, "hex", 1], # actual air flow volume setting in m3/h
[" exhaustFanAirflowSet: ", 36, 4, "hex", 1],
[" supplyFanSpeedTarget: ", 40, 4, "hex", 1], # target fan speed in %
[" exhaustFanSpeedTarget: ", 44, 4, "hex", 1],
[" supplyFanSpeed0: ", 48, 4, "hex", 10],
[" exhaustFanSpeed0: ", 52, 4, "hex", 10],
[" supplyFanSpeed200: ", 56, 4, "hex", 10],
[" exhaustFanSpeed200: ", 60, 4, "hex", 10],
[" airflowTolerance: ", 64, 2, "hex", 1],
[" airflowCalibrationInterval: ", 66, 2, "hex", 1], # calibration interval
[" timeToCalibration: ", 68, 2, "hex", 1] # days to next calibration
],
"F2ctrl" => [["heatRequest: ", 4, 2, "hex", 1], # 0=DHW 2=heat 5=off 6=defrostEva
[" heatRequest2: ", 6, 2, "hex", 1], # same as heatRequest
[" hcStage: ", 8, 2, "hex", 1], # 0=off 1=solar 2=heatPump 3=boost1 4=boost2 5=boost3
[" dhwStage: ", 10, 2, "hex", 1], # 0=off, 1=solar, 2=heatPump 3=boostMax
[" heatStageControlModul: ", 12, 2, "hex", 1], # either hcStage or dhwStage depending from heatRequest
[" compBlockTime: ", 14, 4, "hex2int", 1], # remaining compressor block time
[" pasteurisationMode: ", 18, 2, "hex", 1], # 0=off 1=on
[" defrostEvaporator: ", 20, 2, "raw", 1], # 10=off 30=defrostEva
[" boosterStage2: ", 22, 1, "bit3", 1], # booster 2
[" solarPump: ", 22, 1, "bit2", 1], # solar pump
[" boosterStage1: ", 22, 1, "bit1", 1], # booster 1
[" compressor: ", 22, 1, "bit0", 1], # compressor
[" heatPipeValve: ", 23, 1, "bit3", 1], # heat pipe valve
[" diverterValve: ", 23, 1, "bit2", 1], # diverter valve
[" dhwPump: ", 23, 1, "bit1", 1], # dhw pump
[" heatingCircuitPump: ", 23, 1, "bit0", 1], # hc pump
[" mixerOpen: ", 25, 1, "bit1", 1], # mixer open
[" mixerClosed: ", 25, 1, "bit0", 1], # mixer closed
[" sensorBits1: ", 26, 2, "raw", 1], # sensor condenser temperature ??
[" sensorBits2: ", 28, 2, "raw", 1], # sensor low pressure ??
[" boostBlockTimeAfterPumpStart: ", 30, 4, "hex2int", 1], # after each pump start (dhw or heat circuit)
[" boostBlockTimeAfterHD: ", 34, 4, "hex2int", 1] # ??
],
FanStage:sFan.* {if (ReadingsVal("myWP","supplyFanAirflowSet",0) eq ReadingsVal("myWP","p37Fanstage1AirflowInlet",0)) {return 1}\
elsif (ReadingsVal("myWP","supplyFanAirflowSet",0) eq ReadingsVal("myWP","p38Fanstage2AirflowInlet",0)) {return 2}\
elsif (ReadingsVal("myWP","supplyFanAirflowSet",0) eq ReadingsVal("myWP","p39Fanstage3AirflowInlet",0)) {return 3} else {return 0}
Zitat von: willybauss am 20 Januar 2018, 23:58:36Rätsel gelöst: Der Januar 2017 hatte viele sehr kalte Nächte mit bis zu -15°C. Da sprang öfter der Heizstab an, und der Verdichter lief pausenlos. Das macht locker 400 kWh aus.
Ich fürchte, ich komme da grade nicht dazu. Aus irgendeinem Grund hat meine THZ in 2017 ca. 15% mehr Strom verbraucht als 2016. Dem muss ich erst auf den Grund gehen.
Unknown argument sControl, choose one of p01RoomTempDayHC1:noArg p01R ...
2018-01-24_13:03:48 Mythz return_temp: 22.5
2018-01-24_13:03:48 Mythz outside_temp: 10.1
2018-01-24_13:03:48 Mythz dhw_temp: 46.8
2018-01-24_13:03:56 Mythz sGlobal: outsideTemp: 10.1 flowTemp: 25.1 returnTemp: 22.5 hotGasTemp: 27.4 dhwTemp: 46.8 flowTempHC2: -60 evapor$
2018-01-24_13:03:56 Mythz Rel_humidity: 37.4
2018-01-24_13:03:56 Mythz flow_temp: 25.1
2018-01-24_13:03:56 Mythz return_temp: 22.5
2018-01-24_13:03:56 Mythz outside_temp: 10.1
2018-01-24_13:03:56 Mythz dhw_temp: 46.8
2018-01-24_13:04:10 Mythz sGlobal: outsideTemp: 10.2 flowTemp: 25.1 returnTemp: 22.5 hotGasTemp: 27.6 dhwTemp: 46.9 flowTempHC2: -60 evapor$
2018-01-24_13:04:10 Mythz Rel_humidity: 37.4
2018-01-24_13:04:10 Mythz flow_temp: 25.1
2018-01-24_13:04:10 Mythz return_temp: 22.5
2018-01-24_13:04:10 Mythz outside_temp: 10.2
2018-01-24_13:04:10 Mythz dhw_temp: 46.9
2018-01-24_13:04:11 Mythz sHC1: outsideTemp: 10.1 x08: -13.6 returnTemp: 22.5 integralHeat: -19 flowTemp: 25.1 heatSetTemp: 24.7 heatTemp: $
2018-01-24_13:04:11 Mythz inside_temp: 23.4
2018-01-24_13:04:32 Mythz sHC1: outsideTemp: 10.2 x08: -13.6 returnTemp: 22.5 integralHeat: -19 flowTemp: 25.1 heatSetTemp: 24.7 heatTemp: $
2018-01-24_13:04:32 Mythz inside_temp: 23.4
2018-01-24_13:04:41 Mythz sGlobal: outsideTemp: 10.1 flowTemp: 25 returnTemp: 22.5 hotGasTemp: 27.6 dhwTemp: 46.9 flowTempHC2: -60 evaporat$
2018-01-24_13:04:41 Mythz Rel_humidity: 37.4
2018-01-24_13:04:41 Mythz flow_temp: 25
2018-01-24_13:04:41 Mythz return_temp: 22.5
2018-01-24_13:04:41 Mythz outside_temp: 10.1
2018-01-24_13:04:41 Mythz dhw_temp: 46.9
2018-01-24_13:04:41 Mythz sHC1: outsideTemp: 10.1 x08: -13.6 returnTemp: 22.5 integralHeat: -19 flowTemp: 25 heatSetTemp: 24.7 heatTemp: 23$
2018-01-24_13:04:41 Mythz inside_temp: 23.4
2018-01-24_13:04:44 Mythz sHC1: outsideTemp: 10.1 x08: -13.6 returnTemp: 22.4 integralHeat: -19 flowTemp: 25 heatSetTemp: 24.7 heatTemp: 23$
2018-01-24_13:04:44 Mythz inside_temp: 23.4
2018-01-24_13:05:03 Mythz sLast10errors: number_of_f...
Zitat von: willybauss am 24 Januar 2018, 13:17:01Have you made a full fhem update as I asked you?
@immi:
You still owe us an answer to this topic:
https://forum.fhem.de/index.php/topic,33452.msg739789.html#msg739789 (https://forum.fhem.de/index.php/topic,33452.msg739789.html#msg739789)
Last weekend I updated to 0.175, and now the log file increases dramatically, e.g.:
Zitat von: andre.k am 20 Januar 2018, 00:07:05
Ich habe mal etwas intensiver an zwei Registern geforscht, eins liefert diverse Statuswerte, die zum Teil auch schon in sGlobal enthalten sind das andere liefert Werte aus der Lüftungssteuerung. Ich weiss nicht inwiefern die Register auch in den neueren Anlagen bzw. Firmware<>2.14 vorhanden sind. Vieleicht könnte das mal jemand testen. Die zugehörigen Get-Kommandos sind wie folgt definiert:---
heatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 00 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 00 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
statusAFC: 512 supplyFanSpeedCAL: 5.16666666666667 exhaustFanSpeedCAL: 302.933333333333 supplyFanAirflowCAL: 2.9 exhaustFanAirflowCAL: 504.32 supplyFanSpeed: 316 exhaustFanSpeed: 26624 supplyFanAirflowSet: 344 exhaustFanAirflowSet: 34560 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 1.4 supplyFanSpeed200: 411.9 exhaustFanSpeed200: 614.4 airflowTolerance: 160 airflowCalibrationInterval: 0 timeToCalibration: 160
Zitat von: friesenjung am 25 Januar 2018, 09:38:41
Scheint bei mir ohne Probleme zu laufen: THZ304SOL, FW 5.19 (in FHEM verwende ich attr firmware=5.39)
Ergebnis:
sControl:Code AuswählenheatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 00 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 00 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
sFanCode AuswählenstatusAFC: 512 supplyFanSpeedCAL: 5.16666666666667 exhaustFanSpeedCAL: 302.933333333333 supplyFanAirflowCAL: 2.9 exhaustFanAirflowCAL: 504.32 supplyFanSpeed: 316 exhaustFanSpeed: 26624 supplyFanAirflowSet: 344 exhaustFanAirflowSet: 34560 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 1.4 supplyFanSpeed200: 411.9 exhaustFanSpeed200: 614.4 airflowTolerance: 160 airflowCalibrationInterval: 0 timeToCalibration: 160
VG...
Zitat von: friesenjung am 25 Januar 2018, 09:54:15This is what I highlighted as open point last week.
Aber die Werte an sich scheinen nicht zu passen. Bei supplyFanAirflowSet bspw. steht 344, mein p37 steht aber auf 140!?
VG...
2018.01.27 15:04:21 3: Mythz/RAW: 00000000001003
2018.01.27 15:05:38 3: THZ_Parsing: offset(86) + length(4) is longer then message : '0FFB0000005D01210116014D01CC00000000006A0121011C272700CC2B1A0000005A000000000000000000'
2018.01.27 15:05:38 3: THZ_Parsing: offset(90) + length(4) is longer then message : '0FFB0000005D01210116014D01CC00000000006A0121011C272700CC2B1A0000005A0000000000000000000000'
2018.01.27 15:05:38 3: THZ_Parsing: offset(94) + length(8) is longer then message : '0FFB0000005D01210116014D01CC00000000006A0121011C272700CC2B1A0000005A00000000000000000000000000'
2018.01.27 15:05:38 3: THZ_Parsing: offset(102) + length(8) is longer then message : '0FFB0000005D01210116014D01CC00000000006A0121011C272700CC2B1A0000005A0000000000000000000000000000000000'
2018.01.27 15:06:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2018.01.27 15:06:22 3: Mythz/RAW: 00000000001003
2018.01.27 15:08:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2018.01.27 15:08:22 3: Mythz/RAW: 00000000001003
2018.01.27 15:10:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Readings
inputVentilatorPower
39 %
2018-01-27 18:45:22
inputVentilatorSpeed
28 %
2018-01-27 18:45:11
mainVentilatorPower
69.8039215686275 %
2018-01-27 18:45:42
mainVentilatorSpeed
20 %
2018-01-27 18:44:07
outputVentilatorPower
39 %
2018-01-27 18:45:38
outputVentilatorSpeed
32 %
2018-01-27 18:45:21
p01-p12
p01RoomTempDay: 22.5 p02RoomTempNight: 21 p03RoomTempStandby: 10 p04DHWsetTempDay: 45 p05DHWsetTempNight: 45 p06DHWsetTempStandby: 10 p07FanStageDay: 1 p08FanStageNight: 1 p09FanStageStandby: 0 p10HCTempManual: 35 p11DHWsetTempManual: 45 p12FanStageManual: 2
2018-01-27 18:47:21
p01RoomTempDay
22.5 °C
2018-01-27 18:44:17
p01RoomTempDayHC1
390B089802587F0003E806A41F00 °C
2018-01-27 18:15:12
p01RoomTempDayHC1SummerMode
390B089802587F0003E806A41F00 °C
2018-01-27 18:17:20
p01RoomTempDayHC2
210C089801F47F00 °C
2018-01-27 18:15:56
p01RoomTempDayHC2SummerMode
210C089801F47F00 °C
2018-01-27 18:16:18
p02RoomTempNight
21 °C
2018-01-27 18:44:58
p02RoomTempNightHC1
390B089802587F0003E806A41F00 °C
2018-01-27 17:51:42
p02RoomTempNightHC1SummerMode
390B089802587F0003E806A41F00 °C
2018-01-27 17:50:01
p02RoomTempNightHC2
210C089801F47F00 °C
2018-01-27 18:16:48
p02RoomTempNightHC2SummerMode
210C089801F47F00 °C
2018-01-27 18:16:02
p03RoomTempStandby
10 °C
2018-01-27 18:46:20
p03RoomTempStandbyHC1
390B089802587F0003E806A41F00 °C
2018-01-27 17:51:45
p03RoomTempStandbyHC1SummerMode
390B089802587F0003E806A41F00 °C
2018-01-27 18:15:00
p03RoomTempStandbyHC2
210C089801F47F00 °C
2018-01-27 18:17:00
p03RoomTempStandbyHC2SummerMode
210C089801F47F00 °C
2018-01-27 18:16:07
p04DHWsetDayTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:14:16
p04DHWsetTempDay
45 °C
2018-01-27 18:45:03
p05DHWsetNightTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:17:01
p05DHWsetTempNight
45 °C
2018-01-27 18:46:57
p06DHWsetStandbyTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:16:37
p06DHWsetTempStandby
10 °C
2018-01-27 18:44:42
p07FanStageDay
1
2018-01-27 18:47:29
p08FanStageNight
1
2018-01-27 18:44:46
p09FanStageStandby
0
2018-01-27 18:47:21
p10HCTempManual
35 °C
2018-01-27 18:46:52
p11DHWsetManualTemp
EF0A01012000BE00C8003C °C
2018-01-27 17:50:26
p11DHWsetTempManual
45 °C
2018-01-27 18:45:54
p12FanStageManual
2
2018-01-27 18:43:53
p13GradientHC1
0.5
2018-01-27 18:46:12
p14LowEndHC1
0 K
2018-01-27 18:45:27
p15RoomInfluenceHC1
in
2018-01-27 18:45:24
p16GradientHC2
0.6
2018-01-27 18:47:30
p17LowEndHC2
0 K
2018-01-27 18:46:58
p18RoomInfluenceHC2
0
2018-01-27 18:43:48
p19FlowProportionHC1
30 %
2018-01-27 18:46:22
p20FlowProportionHC2
100 %
2018-01-27 18:43:43
p21Hyst1
4 K
2018-01-27 18:44:18
p22Hyst2
3 K
2018-01-27 18:44:44
p23Hyst3
2 K
2018-01-27 18:47:26
p24Hyst4
2 K
2018-01-27 18:47:18
p25Hyst5
1 K
2018-01-27 18:46:42
p29HystAsymmetry
1
2018-01-27 18:46:17
p30integralComponent
100 Kmin
2018-01-27 18:46:15
p32HystDHW
2 K
2018-01-27 18:47:22
p33BoosterTimeoutDHW
90 min
2018-01-27 18:46:36
p34BoosterDHWTempAct
EF0A01012000BE00C8003C °C
2018-01-27 17:50:01
p34TempLimitBoostDHW
-10 °C
2018-01-27 18:43:58
p35PasteurisationInterval
30 Tage
2018-01-27 18:44:28
p35PasteurisationTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:16:36
p36DHWMaxTime
EF0A01012000BE00C8003C
2018-01-27 18:16:39
p36MaxDurationDHWLoad
12 h
2018-01-27 18:43:56
p37Fanstage1AirflowInlet
115 m3/h
2018-01-27 18:47:15
p38Fanstage2AirflowInlet
173 m3/h
2018-01-27 18:45:50
p39Fanstage3AirflowInlet
230 m3/h
2018-01-27 18:46:47
p40Fanstage1AirflowOutlet
115 m3/h
2018-01-27 18:47:05
p41Fanstage2AirflowOutlet
173 m3/h
2018-01-27 18:44:52
p42Fanstage3AirflowOutlet
230 m3/h
2018-01-27 18:45:40
p43UnschedVent3
60 min
2018-01-27 18:43:45
p44UnschedVent2
60 min
2018-01-27 18:45:32
p45UnschedVent1
60 min
2018-01-27 18:45:48
p46UnschedVent0
60 min
2018-01-27 18:46:23
p47CompressorRestartDelay
20 min
2018-01-27 18:45:58
p48MainFanSpeed
70 %
2018-01-27 18:46:54
p49SummerModeTemp
18 °C
2018-01-27 18:44:06
p50SummerModeHysteresis
1 K
2018-01-27 18:46:09
p54MinPumpCycles
1 /Tag
2018-01-27 18:43:54
p55MaxPumpCycles
288 /Tag
2018-01-27 18:46:25
p56OutTempMaxPumpCycles
19 °C
2018-01-27 18:45:13
p57OutTempMinPumpCycles
error °C
2018-01-27 18:43:43
p58SuppressTempCaptPumpStart
60 s
2018-01-27 18:44:20
p75PassiveCooling
256
2018-01-27 18:46:30
p75passiveCooling
EF0A01012000BE00C8003C
2018-01-27 18:13:54
p76RoomThermCorrection
EF0A01012000BE00C8003C K
2018-01-27 18:16:08
p77OutTempFilterTime
1 h
2018-01-27 18:44:39
p77OutThermFilterTime
EF0A01012000BE00C8003C h
2018-01-27 18:17:19
p78DualModePoint
-3 °C
2018-01-27 18:45:14
p79BoosterTimeoutHC
60 min
2018-01-27 18:45:19
p80EnableSolar
8
2018-01-27 18:44:57
p83DHWsetSolarTemp
EF0A01012000BE00C8003C °C
2018-01-27 17:51:17
p89DHWeco
EF0A01012000BE00C8003C
2018-01-27 18:16:04
p99DHWmaxFlowTemp
EF0A01012000BE00C8003C °C
2018-01-27 17:51:38
p99FanStageParty
EF0A01012000BE00C8003C
2018-01-27 17:50:02
p99FrostProtectionBoost
EF0A01012000BE00C8003C °C
2018-01-27 17:50:11
p99FrostProtectionCancel
EF0A01012000BE00C8003C °C
2018-01-27 18:15:57
p99HC1maxFlowTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:16:05
p99startUnschedVent
EF0A01012000BE00C8003C
2018-01-27 18:13:41
pAbsence
pA0DurationUntilAbsenceStart: 0 pA0AbsenceDuration: 0 pA0EnableAbsenceProg: 0
2018-01-27 18:47:08
pCircPump
p54MinPumpCycles: 1 p55MaxPumpCycles: 288 p56OutTempMaxPumpCycles: 19 p57OutTempMinPumpCycles: 20 p58SuppressTempCaptPumpStart: 60
2018-01-27 18:46:25
pClockDay
3
2018-01-27 18:47:16
pClockHour
19
2018-01-27 18:45:35
pClockMinutes
56
2018-01-27 18:46:02
pClockMonth
1
2018-01-27 18:45:53
pClockYear
18
2018-01-27 18:46:07
pDHW
p32HystDHW: 2 p33BoosterTimeoutDHW: 90 p34TempLimitBoostDHW: -10 p35PasteurisationInterval: 30 p36MaxDurationDHWLoad: 12 pasteurisationTemp: 10 maxBoostStagesDHW: 3 p84EnableDHWBuffer: 2
2018-01-27 18:47:22
pDHWProg
progDHWStartTime: 22:00 progDHWEndTime: 05:00 progDHWMonday: 1 progDHWTuesday: 1 progDHWWednesday: 1 progDHWThursday: 1 progDHWFriday: 1 progDHWSaturday: 1 progDHWSunday: 1 progDHWEnable: 0
2018-01-27 18:47:13
pDefrostAA
MaxDefrostDurationAAExchenger: 60 DefrostStartThreshold: 10 VolumeFlowFilterReplacement: 20
2018-01-27 18:44:02
pDefrostEva
UpTempLimitDefrostEvaporatorEnd: 15 MaxTimeDefrostEvaporator: 10 LimitTempCondenserElectBoost: 15 LimitTempCondenserDefrostTerm: 10 p47CompressorRestartDelay: 20 p48MainFanSpeed: 70
2018-01-27 18:46:54
pDryHeat
p70StartDryHeat: 0 p71BaseTemp: 30 p72PeakTemp: 45 p73TempDuration: 5 p74TempIncrease: 3
2018-01-27 18:44:31
pFan
p37Fanstage1AirflowInlet: 115 p38Fanstage2AirflowInlet: 173 p39Fanstage3AirflowInlet: 230 p40Fanstage1AirflowOutlet: 115 p41Fanstage2AirflowOutlet: 173 p42Fanstage3AirflowOutlet: 230 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 256
2018-01-27 18:47:15
pFanProg
progFAN1StartTime: 22:00 progFAN1EndTime: 06:00 progFAN1Monday: 1 progFAN1Tuesday: 1 progFAN1Wednesday: 1 progFAN1Thursday: 1 progFAN1Friday: 1 progFAN1Saturday: 1 progFAN1Sunday: 1 progFAN1Enable: 0 progFAN2StartTime: 10:00 progFAN2EndTime: 17:00 progFAN2Monday: 1 progFAN2Tuesday: 1 progFAN2Wednesday: 1 progFAN2Thursday: 1 progFAN2Friday: 1 progFAN2Saturday: 0 progFAN2Sunday: 0 progFAN2Enable: 0
2018-01-27 18:47:19
pHeat1
p13GradientHC1: 0.5 p14LowEndHC1: 0 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
2018-01-27 18:47:30
pHeat2
p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 2 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 0 p27Hyst7: 0 p28Hyst8: 0 p29HystAsymmetry: 1 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 18 p50SummerModeHysteresis: 1 p77OutTempFilterTime: 1 p78DualModePoint: -3 p79BoosterTimeoutHC: 60
2018-01-27 18:47:18
pHeatProg
progHC1StartTime: 22:00 progHC1EndTime: 06:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 1 progHC1Sunday: 1 progHC1Enable: 0 progHC2StartTime: 10:00 progHC2EndTime: 17:00 progHC2Monday: 1 progHC2Tuesday: 1 progHC2Wednesday: 1 progHC2Thursday: 1 progHC2Friday: 1 progHC2Saturday: 0 progHC2Sunday: 0 progHC2Enable: 0
2018-01-27 18:47:03
pHolidayBeginDay
EF0A01012000BE00C8003C
2018-01-27 17:14:27
pHolidayBeginMonth
EF0A01012000BE00C8003C
2018-01-27 18:15:11
pHolidayBeginTime
EF0A01012000BE00C8003C
2018-01-27 17:50:56
pHolidayBeginYear
EF0A01012000BE00C8003C
2018-01-27 18:14:50
pHolidayEndDay
EF0A01012000BE00C8003C
2018-01-27 18:15:25
pHolidayEndMonth
EF0A01012000BE00C8003C
2018-01-27 17:12:32
pHolidayEndTime
EF0A01012000BE00C8003C
2018-01-27 17:50:58
pHolidayEndYear
EF0A01012000BE00C8003C
2018-01-27 18:13:49
pOpMode
EF0A01012000BE00C8003C
2018-01-27 17:51:36
pRestart
p59RestartBeforeSetbackEnd: 120
2018-01-27 18:46:31
pSolar
p80EnableSolar: 8 p81DiffTempSolarLoading: 3891.4 p82DelayCompStartSolar: 88 p84DHWTempSolarMode: 3251.2 HystDiffTempSolar: 100 CollectLimitTempSolar: 170
2018-01-27 18:44:57
party-time
EF0A01012000BE00C8003C
2018-01-27 17:50:07
progDHWEnable
0
2018-01-27 18:47:13
progDHWEndTime
05:00
2018-01-27 18:45:10
progDHWFriday
1
2018-01-27 18:44:47
progDHWMonday
1
2018-01-27 18:46:39
progDHWSaturday
1
2018-01-27 18:44:15
progDHWStartTime
22:00
2018-01-27 18:46:06
progDHWSunday
1
2018-01-27 18:44:01
progDHWThursday
1
2018-01-27 18:43:59
progDHWTuesday
1
2018-01-27 18:43:40
progDHWWednesday
1
2018-01-27 18:44:34
progFAN1Enable
0
2018-01-27 18:47:10
progFAN1EndTime
06:00
2018-01-27 18:45:00
progFAN1Friday
1
2018-01-27 18:47:19
progFAN1Monday
1
2018-01-27 18:46:34
progFAN1Saturday
1
2018-01-27 18:43:38
progFAN1StartTime
22:00
2018-01-27 18:45:16
progFAN1Sunday
1
2018-01-27 18:46:38
progFAN1Thursday
1
2018-01-27 18:45:43
progFAN1Tuesday
1
2018-01-27 18:44:26
progFAN1Wednesday
1
2018-01-27 18:45:51
progFAN2Enable
0
2018-01-27 18:45:06
progFAN2EndTime
17:00
2018-01-27 18:47:11
progFAN2Friday
2018-01-27 18:44:51
progFAN2Monday
1
2018-01-27 18:46:46
progFAN2Saturday
0
2018-01-27 18:44:38
progFAN2StartTime
10:00
2018-01-27 18:44:23
progFAN2Sunday
0
2018-01-27 18:46:49
progFAN2Thursday
1
2018-01-27 18:45:08
progFAN2Tuesday
1
2018-01-27 18:45:56
progFAN2Wednesday
1
2018-01-27 18:46:55
progHC1Enable
0
2018-01-27 18:44:30
progHC1EndTime
06:00
2018-01-27 18:44:55
progHC1Friday
1
2018-01-27 18:47:06
progHC1Monday
1
2018-01-27 18:44:14
progHC1Saturday
1
2018-01-27 18:46:28
progHC1StartTime
22:00
2018-01-27 18:44:54
progHC1Sunday
1
2018-01-27 18:45:37
progHC1Thursday
1
2018-01-27 18:45:02
progHC1Tuesday
1
2018-01-27 18:44:22
progHC1Wednesday
1
2018-01-27 18:44:12
progHC2Enable
0
2018-01-27 18:46:10
progHC2EndTime
17:00
2018-01-27 18:47:00
progHC2Friday
1
2018-01-27 18:44:10
progHC2Monday
1
2018-01-27 18:46:01
progHC2Saturday
0
2018-01-27 18:45:18
progHC2StartTime
10:00
2018-01-27 18:46:44
progHC2Sunday
0
2018-01-27 18:44:49
progHC2Thursday
1
2018-01-27 18:44:04
progHC2Tuesday
1
2018-01-27 18:46:18
progHC2Wednesday
1
2018-01-27 18:46:41
programDHW_Fr_0
EF0A01012000BE00C8003C
2018-01-27 18:15:08
programDHW_Fr_1
EF0A01012000BE00C8003C
2018-01-27 17:50:39
programDHW_Fr_2
EF0A01012000BE00C8003C
2018-01-27 18:14:04
programDHW_Mo-Fr_0
EF0A01012000BE00C8003C
2018-01-27 17:51:27
programDHW_Mo-Fr_1
EF0A01012000BE00C8003C
2018-01-27 17:51:22
programDHW_Mo-Fr_2
EF0A01012000BE00C8003C
2018-01-27 18:13:30
programDHW_Mo-So_0
EF0A01012000BE00C8003C
2018-01-27 18:14:52
programDHW_Mo-So_1
EF0A01012000BE00C8003C
2018-01-27 18:16:13
programDHW_Mo-So_2
EF0A01012000BE00C8003C
2018-01-27 18:16:50
programDHW_Mo_0
EF0A01012000BE00C8003C
2018-01-27 17:51:52
programDHW_Mo_1
EF0A01012000BE00C8003C
2018-01-27 18:14:55
programDHW_Mo_2
EF0A01012000BE00C8003C
2018-01-27 18:17:09
programDHW_Sa-So_0
EF0A01012000BE00C8003C
2018-01-27 18:16:42
programDHW_Sa-So_1
EF0A01012000BE00C8003C
2018-01-27 18:14:00
programDHW_Sa-So_2
EF0A01012000BE00C8003C
2018-01-27 18:16:45
programDHW_Sa_0
EF0A01012000BE00C8003C
2018-01-27 17:52:01
programDHW_Sa_1
EF0A01012000BE00C8003C
2018-01-27 17:50:15
programDHW_Sa_2
EF0A01012000BE00C8003C
2018-01-27 18:13:48
programDHW_So_0
EF0A01012000BE00C8003C
2018-01-27 17:51:18
programDHW_So_1
EF0A01012000BE00C8003C
2018-01-27 18:16:23
programDHW_So_2
EF0A01012000BE00C8003C
2018-01-27 18:16:44
programDHW_Th_0
EF0A01012000BE00C8003C
2018-01-27 18:14:21
programDHW_Th_1
EF0A01012000BE00C8003C
2018-01-27 18:14:44
programDHW_Th_2
EF0A01012000BE00C8003C
2018-01-27 18:14:53
programDHW_Tu_0
EF0A01012000BE00C8003C
2018-01-27 18:17:06
programDHW_Tu_1
EF0A01012000BE00C8003C
2018-01-27 17:50:22
programDHW_Tu_2
EF0A01012000BE00C8003C
2018-01-27 18:13:46
programDHW_We_0
EF0A01012000BE00C8003C
2018-01-27 18:14:05
programDHW_We_1
EF0A01012000BE00C8003C
2018-01-27 18:13:22
programDHW_We_2
EF0A01012000BE00C8003C
2018-01-27 17:51:09
programFan_Fr_0
EF0A01012000BE00C8003C
2018-01-27 18:13:24
programFan_Fr_1
EF0A01012000BE00C8003C
2018-01-27 17:50:57
programFan_Fr_2
EF0A01012000BE00C8003C
2018-01-27 18:17:12
programFan_Mo-Fr_0
EF0A01012000BE00C8003C
2018-01-27 18:15:04
programFan_Mo-Fr_1
EF0A01012000BE00C8003C
2018-01-27 18:16:32
programFan_Mo-Fr_2
EF0A01012000BE00C8003C
2018-01-27 17:49:56
programFan_Mo-So_0
EF0A01012000BE00C8003C
2018-01-27 18:15:59
programFan_Mo-So_1
EF0A01012000BE00C8003C
2018-01-27 17:51:29
programFan_Mo-So_2
EF0A01012000BE00C8003C
2018-01-27 18:15:03
programFan_Mo_0
EF0A01012000BE00C8003C
2018-01-27 18:14:28
programFan_Mo_1
EF0A01012000BE00C8003C
2018-01-27 18:14:24
programFan_Mo_2
EF0A01012000BE00C8003C
2018-01-27 18:16:20
programFan_Sa-So_0
EF0A01012000BE00C8003C
2018-01-27 17:49:54
programFan_Sa-So_1
EF0A01012000BE00C8003C
2018-01-27 18:16:00
programFan_Sa-So_2
EF0A01012000BE00C8003C
2018-01-27 18:17:03
programFan_Sa_0
EF0A01012000BE00C8003C
2018-01-27 18:14:29
programFan_Sa_1
EF0A01012000BE00C8003C
2018-01-27 17:52:02
programFan_Sa_2
EF0A01012000BE00C8003C
2018-01-27 18:15:17
programFan_So_0
EF0A01012000BE00C8003C
2018-01-27 18:15:43
programFan_So_1
EF0A01012000BE00C8003C
2018-01-27 18:14:47
programFan_So_2
EF0A01012000BE00C8003C
2018-01-27 17:52:05
programFan_Th_0
EF0A01012000BE00C8003C
2018-01-27 18:14:08
programFan_Th_1
EF0A01012000BE00C8003C
2018-01-27 17:12:57
programFan_Th_2
EF0A01012000BE00C8003C
2018-01-27 18:17:17
programFan_Tu_0
EF0A01012000BE00C8003C
2018-01-27 18:15:27
programFan_Tu_1
EF0A01012000BE00C8003C
2018-01-27 17:51:12
programFan_Tu_2
EF0A01012000BE00C8003C
2018-01-27 18:14:10
programFan_We_0
EF0A01012000BE00C8003C
2018-01-27 17:50:35
programFan_We_1
EF0A01012000BE00C8003C
2018-01-27 17:51:14
programFan_We_2
EF0A01012000BE00C8003C
2018-01-27 17:51:26
programHC1_Fr_0
390B089802587F0003E806A41F00
2018-01-27 18:13:59
programHC1_Fr_1
390B089802587F0003E806A41F00
2018-01-27 17:51:10
programHC1_Fr_2
390B089802587F0003E806A41F00
2018-01-27 17:13:07
programHC1_Mo-Fr_0
390B089802587F0003E806A41F00
2018-01-27 17:51:06
programHC1_Mo-Fr_1
390B089802587F0003E806A41F00
2018-01-27 18:15:44
programHC1_Mo-Fr_2
390B089802587F0003E806A41F00
2018-01-27 17:13:20
programHC1_Mo-So_0
390B089802587F0003E806A41F00
2018-01-27 18:13:36
programHC1_Mo-So_1
390B089802587F0003E806A41F00
2018-01-27 17:50:48
programHC1_Mo-So_2
390B089802587F0003E806A41F00
2018-01-27 18:14:42
programHC1_Mo_0
390B089802587F0003E806A41F00
2018-01-27 18:15:22
programHC1_Mo_1
390B089802587F0003E806A41F00
2018-01-27 18:15:40
programHC1_Mo_2
390B089802587F0003E806A41F00
2018-01-27 18:14:23
programHC1_Sa-So_0
390B089802587F0003E806A41F00
2018-01-27 18:15:36
programHC1_Sa-So_1
390B089802587F0003E806A41F00
2018-01-27 17:50:38
programHC1_Sa-So_2
390B089802587F0003E806A41F00
2018-01-27 18:17:24
programHC1_Sa_0
390B089802587F0003E806A41F00
2018-01-27 18:14:48
programHC1_Sa_1
390B089802587F0003E806A41F00
2018-01-27 18:13:44
programHC1_Sa_2
390B089802587F0003E806A41F00
2018-01-27 18:14:31
programHC1_So_0
390B089802587F0003E806A41F00
2018-01-27 18:14:07
programHC1_So_1
390B089802587F0003E806A41F00
2018-01-27 18:16:29
programHC1_So_2
390B089802587F0003E806A41F00
2018-01-27 17:51:22
programHC1_Th_0
390B089802587F0003E806A41F00
2018-01-27 17:50:52
programHC1_Th_1
390B089802587F0003E806A41F00
2018-01-27 18:15:06
programHC1_Th_2
390B089802587F0003E806A41F00
2018-01-27 18:14:20
programHC1_Tu_0
390B089802587F0003E806A41F00
2018-01-27 18:16:47
programHC1_Tu_1
390B089802587F0003E806A41F00
2018-01-27 18:16:15
programHC1_Tu_2
390B089802587F0003E806A41F00
2018-01-27 18:16:31
programHC1_We_0
390B089802587F0003E806A41F00
2018-01-27 18:15:48
programHC1_We_1
390B089802587F0003E806A41F00
2018-01-27 18:14:37
programHC1_We_2
390B089802587F0003E806A41F00
2018-01-27 18:15:01
programHC2_Fr_0
210C089801F47F00
2018-01-27 17:50:48
programHC2_Fr_1
210C089801F47F00
2018-01-27 18:14:32
programHC2_Fr_2
210C089801F47F00
2018-01-27 18:17:22
programHC2_Mo-Fr_0
210C089801F47F00
2018-01-27 18:13:56
programHC2_Mo-Fr_1
210C089801F47F00
2018-01-27 17:51:45
programHC2_Mo-Fr_2
210C089801F47F00
2018-01-27 18:15:35
programHC2_Mo-So_0
210C089801F47F00
2018-01-27 17:51:24
programHC2_Mo-So_1
210C089801F47F00
2018-01-27 17:50:19
programHC2_Mo-So_2
210C089801F47F00
2018-01-27 18:16:53
programHC2_Mo_0
210C089801F47F00
2018-01-27 18:16:10
programHC2_Mo_1
210C089801F47F00
2018-01-27 18:16:58
programHC2_Mo_2
210C089801F47F00
2018-01-27 18:15:41
programHC2_Sa-So_0
210C089801F47F00
2018-01-27 18:14:40
programHC2_Sa-So_1
210C089801F47F00
2018-01-27 18:13:40
programHC2_Sa-So_2
210C089801F47F00
2018-01-27 18:13:35
programHC2_Sa_0
210C089801F47F00
2018-01-27 17:51:23
programHC2_Sa_1
210C089801F47F00
2018-01-27 18:13:52
programHC2_Sa_2
210C089801F47F00
2018-01-27 17:14:08
programHC2_So_0
210C089801F47F00
2018-01-27 17:51:12
programHC2_So_1
210C089801F47F00
2018-01-27 18:17:14
programHC2_So_2
210C089801F47F00
2018-01-27 18:13:43
programHC2_Th_0
210C089801F47F00
2018-01-27 18:13:32
programHC2_Th_1
210C089801F47F00
2018-01-27 17:51:56
programHC2_Th_2
210C089801F47F00
2018-01-27 17:51:00
programHC2_Tu_0
210C089801F47F00
2018-01-27 18:13:25
programHC2_Tu_1
210C089801F47F00
2018-01-27 18:15:52
programHC2_Tu_2
210C089801F47F00
2018-01-27 17:50:37
programHC2_We_0
210C089801F47F00
2018-01-27 17:50:32
programHC2_We_1
210C089801F47F00
2018-01-27 18:16:40
programHC2_We_2
210C089801F47F00
2018-01-27 18:16:16
sBoostDHWTotal
0 kWh
2018-01-27 18:13:20
sBoostHCTotal
0 kWh
2018-01-27 18:14:56
sControl
heatRequest: 0 heatRequest2: 0 hcStage: 1 dhwStage: 1 heatStageControlModul: 1 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 1 heatPipeValve: 0 diverterValve: 0 dhwPump: 1 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
2018-01-27 18:42:37
sDHW
dhwTemp: 33.8 outsideTemp: 6.5 dhwSetTemp: 45 compBlockTime: 0 out: 1218 heatBlockTime: 2129 dhwBoosterStage: 1 pasteurisationMode: 0 dhwOpMode: normal x36: DAE1
2018-01-27 18:42:02
sDisplay
EF0A01012000BE00C8003C
2018-01-27 18:14:36
sElectrDHWDay
0 Wh
2018-01-27 18:15:14
sElectrDHWTotal
0 kWh
2018-01-27 18:15:30
sElectrHCDay
0 Wh
2018-01-27 18:14:34
sElectrHCTotal
0 kWh
2018-01-27 18:14:45
sFan
statusAFC: 0 supplyFanSpeedCAL: 0 exhaustFanSpeedCAL: 0 supplyFanAirflowCAL: 0 exhaustFanAirflowCAL: 0 supplyFanSpeed: 0 exhaustFanSpeed: 0 supplyFanAirflowSet: 0 exhaustFanAirflowSet: 0 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 0 supplyFanSpeed200: 2.7 exhaustFanSpeed200: 768 airflowTolerance: 115 airflowCalibrationInterval: 0 timeToCalibration: 115
2018-01-27 18:44:09
sFirmware
version: 02.06
2018-01-27 18:45:29
sGlobal
outsideTemp: 6.4 flowTemp: 28.9 returnTemp: 28.1 hotGasTemp: 44.7 dhwTemp: 48 flowTempHC2: 0 evaporatorTemp: 5.8 condenserTemp: 29.2 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: n.a. boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 39 inputVentilatorPower: 39 mainVentilatorPower: 0 outputVentilatorSpeed: 42 inputVentilatorSpeed: 26 mainVentilatorSpeed: 0 outsideTempFiltered: 6.5 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 0 insideTemp: 0
2018-01-27 20:30:37
sHC1
outsideTemp: 7 x08: 35.7 returnTemp: 38.4 integralHeat: -3 flowTemp: 42 heatSetTemp: 30.3 heatTemp: 39.4 seasonMode: winter integralSwitch: 100 hcOpMode: normal roomSetTemp: 22.5 x60: 0 x64: 0 insideTempRC: 0 x72: 51.2 x76: 0 onHysteresisNo: 1 offHysteresisNo: 0 hcBoosterStage: 1
2018-01-27 18:45:05
sHC2
outsideTemp: 6.7 returnTemp: 37.8 vorlaufTemp: 0 heatSetTemp: 31.9 heatTemp: 37.8 stellgroesse: -100 seasonMode: winter hcOpMode: normal
2018-01-27 18:43:50
sHeatDHWDay
0 Wh
2018-01-27 17:14:21
sHeatDHWTotal
0 kWh
2018-01-27 18:16:26
sHeatHCDay
0 Wh
2018-01-27 18:14:58
sHeatHCTotal
0 kWh
2018-01-27 18:14:02
sHeatRecoveredDay
0 Wh
2018-01-27 17:51:15
sHeatRecoveredTotal
0 kWh
2018-01-27 18:14:12
sHistory
operatingHours1: 214 operatingHours2: 213 heatingHours: 12012 DHWhours: 4518 coolingHours: 0
2018-01-27 18:44:36
sProgram
opMode: automatic ProgStateHC: normal ProgStateDHW: normal ProgStateFAN: normal BaseTimeAP0: 12838 StatusAP0: 0 StartTimeAP0: 0 EndTimeAP0: 0
2018-01-27 18:47:27
sSystem
userSetFanStage: 0 userSetFanRemainingTime: 0 lastErrors:
2018-01-27 18:41:35
sTimedate
Weekday: Saturday pClockHour: 19 pClockMinutes: 57 Sec: 36 pClockYear: 18 pClockMonth: 1 pClockDay: 3
2018-01-27 18:47:24
state
opened
2018-01-27 18:38:59
Zitat von: börni am 28 Januar 2018, 10:39:30
Hallo Andre,
doch das habe ich bereits gemacht, den Hinweis hatte ich schon in den unzähligen Beiträgen gefunden :)
Seit dem steht auch unter Mythz bei model "2.06_02.06" davor stand da nur ich glaube NA _ 2.06
Vielen Dank & viele Grüße
Fabian
Zitat von: immi am 25 Januar 2018, 16:10:50
This is what I highlighted as open point last week.
Andre took care about the interpretation of the registers (F2 and E8) for very old firmwares.
Now it has to be done for newer firmwares.
I remember you that if you want to see the registers before interpretation you have to set the verbose to 5
immi
2018.01.25 23:14:32 5: THZ_Get: Try to get 'sGlobal'
2018.01.25 23:14:32 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2018.01.25 23:14:32 5: Mythz sending 02
2018.01.25 23:14:32 5: SW: 02
2018.01.25 23:14:32 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:32 5: THZ_ReadAnswer: uc unpack: '10'
2018.01.25 23:14:32 5: Mythz sending 0100FCFB1003
2018.01.25 23:14:32 5: SW: 0100FCFB1003
2018.01.25 23:14:32 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:32 5: THZ_ReadAnswer: uc unpack: '10'
2018.01.25 23:14:32 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:32 5: THZ_ReadAnswer: uc unpack: '02'
2018.01.25 23:14:32 5: Mythz sending 10
2018.01.25 23:14:32 5: SW: 10
2018.01.25 23:14:32 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:32 5: double read 1 activated 01008BFBFDA80056010C
2018.01.25 23:14:32 5: double read 1 result with buf1 01008BFBFDA80056010C0100012A0203FDA8FDA8010A01020000
2018.01.25 23:14:32 5: double read 2 activated 01008BFBFDA80056010C0100012A0203FDA8FDA8010A01020000
2018.01.25 23:14:32 5: double read 2 result with buf1 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E0000001600150000005800
2018.01.25 23:14:32 5: double read 3 activated 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E0000001600150000005800
2018.01.25 23:14:32 5: double read 3 result with buf1 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B7047200000000000000000000
2018.01.25 23:14:32 5: double read 4 activated 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B7047200000000000000000000
2018.01.25 23:14:32 5: double read 4 result with buf1 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B704720000000000000000000000710000000001050101010D00E800EF
2018.01.25 23:14:32 5: double read 5 activated 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B704720000000000000000000000710000000001050101010D00E800EF
2018.01.25 23:14:32 5: double read 5 result with buf1 01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B704720000000000000000000000710000000001050101010D00E800EF0000000010101F1003
2018.01.25 23:14:32 5: THZ_ReadAnswer: uc unpack: '01008BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B704720000000000000000000000710000000001050101010D00E800EF0000000010101F1003'
2018.01.25 23:14:32 5: Mythz sending 10
2018.01.25 23:14:32 5: SW: 10
2018.01.25 23:14:32 5: Parse message: 8BFBFDA80056010C0100012A0203FDA8FDA8010A0102000001015E015E000000160015000000580000000002B704720000000000000000000000710000000001050101010D00E800EF00000000101F
2018.01.25 23:14:32 5: Message length: 158
2018.01.25 23:14:34 5: THZ_Get: Try to get 'sFan'
2018.01.25 23:14:34 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2018.01.25 23:14:34 5: Mythz sending 02
2018.01.25 23:14:34 5: SW: 02
2018.01.25 23:14:34 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:34 5: THZ_ReadAnswer: uc unpack: '10'
2018.01.25 23:14:34 5: Mythz sending 0100E9E81003
2018.01.25 23:14:34 5: SW: 0100E9E81003
2018.01.25 23:14:34 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:34 5: THZ_ReadAnswer: uc unpack: '10'
2018.01.25 23:14:34 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:34 5: THZ_ReadAnswer: uc unpack: '02'
2018.01.25 23:14:34 5: Mythz sending 10
2018.01.25 23:14:34 5: SW: 10
2018.01.25 23:14:34 5: Mythz start Function THZ_ReadAnswer
2018.01.25 23:14:34 5: double read 1 activated 0100D7E80200013647000122C50001
2018.01.25 23:14:34 5: double read 1 result with buf1 0100D7E80200013647000122C500013C68000152E800000000000000000E10
2018.01.25 23:14:34 5: double read 2 activated 0100D7E80200013647000122C500013C68000152E800000000000000000E10
2018.01.25 23:14:34 5: double read 2 result with buf1 0100D7E80200013647000122C500013C68000152E800000000000000000E10101416008C008C2323001003
2018.01.25 23:14:34 5: THZ_ReadAnswer: uc unpack: '0100D7E80200013647000122C500013C68000152E800000000000000000E10101416008C008C2323001003'
2018.01.25 23:14:34 5: Mythz sending 10
2018.01.25 23:14:34 5: SW: 10
2018.01.25 23:14:34 5: Parse message: D7E80200013647000122C500013C68000152E800000000000000000E101416008C008C232300
2018.01.25 23:14:34 5: Message length: 76
2018.01.25 23:14:34 5: Parse message: D7E80200013647000122C500013C68000152E800000000000000000E101416008C008C232300
p05DHWsetNightTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:17:01
p05DHWsetTempNight
45 °C
2018-01-28 10:38:30
p06DHWsetStandbyTemp
EF0A01012000BE00C8003C °C
2018-01-27 18:16:37
p06DHWsetTempStandby
10 °C
deletereading Mythz p.*
2018.01.29 20:55:32 0: Server started with 9 defined entities (fhem.pl:16017/2018-01-27 perl:5.020002 os:linux user:loxberry pid:2072)
2018.01.29 20:57:38 3: Opening Mythz device /dev/ttyUSB0
2018.01.29 20:57:38 3: Setting Mythz serial parameters to 9600,8,N,1
2018.01.29 20:57:38 3: Mythz device opened
2018.01.29 20:58:17 1: PERL WARNING: Argument "EF0A01012000BE00C8003C" isn't numeric in multiplication (*) at ./FHEM/00_THZ.pm line 1449.
2018.01.29 20:58:17 1: PERL WARNING: Argument "EF0A01012000BE00C8003C" isn't numeric in addition (+) at ./FHEM/00_THZ.pm line 1449.
2018.01.29 20:58:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A1772 ->
2018.01.29 20:59:05 3: THZ_Get: Error msg2: decode: CRC error in request -- 0A0576 -> 01020F0C1003
2018.01.29 20:59:30 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_THZ.pm line 1118.
2018.01.29 20:59:30 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_THZ.pm line 1125.
2018.01.29 20:59:46 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0B ->
2018.01.29 20:59:46 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1426.
2018.01.29 20:59:50 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- FB ->
2018.01.29 20:59:53 3: THZ_Get: Error msg2: THZ_Get_Com: error found at step0 15 NAK!! -- 17 -> 15
2018.01.29 20:59:53 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/00_THZ.pm line 1016.
2018.01.29 20:59:53 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 1016.
2018.01.29 20:59:53 3: Mythz/RAW: 02 - -
2018.01.29 21:00:45 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2018.01.29 21:00:45 3: Mythz/RAW: 02000000001003 - -
2018.01.29 21:00:53 3: THZ_Get: Error msg2: decode: command not known -- FE -> 010302FE1003
2018.01.29 21:01:46 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0C ->
2018.01.29 21:01:49 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0F ->
2018.01.29 21:02:46 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2018.01.29 21:02:46 3: Mythz/RAW: 0200000000100300000000001003 - -
2018.01.29 21:02:52 3: THZ_Get: Error msg2: decode: command not known -- 16 -> 01031A161003
2018.01.29 21:03:07 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 17 ->
2018.01.29 21:03:09 3: THZ_Parsing: offset(20) + length(4) is longer then message : '58080000160D1412000105'
2018.01.29 21:03:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 10 ->
2018.01.29 21:04:46 3: THZ_Get: Error msg2: THZ_ReadAnswer: Interface max repeat limited to 60 THZ_Get_Com: error found at step2 -- D1 -> 010009D101010017072D05E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2018.01.29 21:04:46 3: Mythz/RAW: 020000000010030000000000100300000000001003 - -
THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0
2018.01.29 21:00:53 3: THZ_Get: Error msg2: decode: command not known -- FE -> 010302FE1003
...
2018.01.29 21:02:52 3: THZ_Get: Error msg2: decode: command not known -- 16 -> 01031A161003
Zitat von: andre.k am 31 Januar 2018, 20:17:33
Hallo Fabian,
die beiden LogeinträgeCode Auswählen2018.01.29 21:00:53 3: THZ_Get: Error msg2: decode: command not known -- FE -> 010302FE1003
...
2018.01.29 21:02:52 3: THZ_Get: Error msg2: decode: command not known -- 16 -> 01031A161003
sagen, dass die beiden Register FE und 16 offensichtlich bei deiner Anlage nicht implementiert sind.
Register 16 ist sSol, welches bestimmt nur bei Anlagen mit Solar existiert. Das würde auch zu Deiner FW 2.06 passen, diese ist m.E. nicht für Solar vorgesehen. Die Lösung wäre im sSol im Perl-Code von %getsonly2xx nach %getsonly214 zu verschieben. Oder du ignorierst den Fehler einfach. Du brauchst das Register ja nicht regelmäßig abfragen.
Das Register EF (sFirmware-Id) ist wahrscheinlich erst ab höheren FW-Versionen >2.x implementiert. Bei meiner FW 2.14 existiert auch kein Register EF. Mich wundert nur, dass das bisher noch niemendem außer Dir aufgefallen ist. Es gibt ja noch andere User mit FW 2.06. Vielleicht kann das mal jemand mit FW 2.06 überprüfen. Wenn sich mein Verdacht bestätigt, könnte immi sFirmware-Id aus der %getsonly206 entfernen.
Andre
2018.02.03 18:53:47 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_THZ.pm line 1118.
2018.02.03 18:53:47 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_THZ.pm line 1125.
if (defined($value->{type}) and ($value->{type} eq "0clean" or $value->{type} eq "1clean")) {
elsif (defined($value->{type}) and ($value->{type} eq "2opmode")){
2018.02.03 21:06:58 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/00_THZ.pm line 1164.
2018.02.03 21:06:58 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_THZ.pm line 1168.
0101F4F21003 msg2 decode: timing issue
heatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 00 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 00 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
statusAFC: 512 supplyFanSpeedCAL: 9.18333333333333 exhaustFanSpeedCAL: 524.8 supplyFanAirflowCAL: 5.79 exhaustFanAirflowCAL: 89.6 supplyFanSpeed: 544 exhaustFanSpeed: 56320 supplyFanAirflowSet: 572 exhaustFanAirflowSet: 34304 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 1.4 supplyFanSpeed200: 412.1 exhaustFanSpeed200: 640 airflowTolerance: 50 airflowCalibrationInterval: 0 timeToCalibration: 63
Zitat von: willybauss am 08 Februar 2018, 08:13:27
I didn't try to understand what the answers may tell me, don't have enough time currently, sorry.
s:23:37:27 e:23:37:28 f:1.23 d:CUL_HM_procQs(CUL_HM_procQs) THZ_GetRefresh(N/A) SYSMON_Update(sysmon)
1 - s:08:05:59 e:08:06:01 f:2.579 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:17:07 e:08:17:08 f:1.005 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:18:07 e:08:18:08 f:1.114 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:28:10 e:08:28:11 f:1.219 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:42:14 e:08:42:15 f:1.022 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:48:16 e:08:48:17 f:1.021 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:08:52:17 e:08:52:18 f:1.136 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:09:11:23 e:09:11:24 f:1.017 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:09:15:24 e:09:15:25 f:1.182 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:09:32:29 e:09:32:30 f:1.061 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:09:36:30 e:09:36:31 f:1.033 d:CUL_HM_procQs(CUL_HM_procQs)
1 - s:09:40:50 e:09:40:51 f:1.376 d:CUL_HM_procQs(CUL_HM_procQs)
2018.02.08 09:32:27 3 : [Mythz] THZ_GetRefresh(sDisplay) BlockingCall started
2018.02.08 09:32:29 3 : Setting Mythz serial parameters to 115200,8,N,1
2018.02.08 09:32:29 1 : /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2018.02.08 09:32:30 1 : FreezeMon: myFreezemon possible freeze starting at 09:32:29, delay is 1.061 possibly caused by CUL_HM_procQs(CUL_HM_procQs)
2018.02.08 09:33:27 3 : opened||||||
2018.02.08 09:33:27 3 : [Mythz] THZ_GetRefresh(sDisplay) BlockingCall started
2018.02.08 09:33:30 3 : Setting Mythz serial parameters to 115200,8,N,1
2018.02.08 09:33:30 1 : /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2018.02.08 09:33:45 3 : opened||||||
2018.02.08 09:33:45 3 : [Mythz] THZ_GetRefresh(sHC1) BlockingCall started
2018.02.08 09:33:46 3 : Setting Mythz serial parameters to 115200,8,N,1
2018.02.08 09:33:46 1 : /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2018.02.08 09:34:27 3 : opened||||||
2018.02.08 09:34:28 3 : [Mythz] THZ_GetRefresh(sDisplay) BlockingCall started
2018.02.08 09:34:30 3 : Setting Mythz serial parameters to 115200,8,N,1
2018.02.08 09:34:30 1 : /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2018.02.08 09:35:28 3 : opened||||||
2018.02.08 09:35:28 3 : [Mythz] THZ_GetRefresh(sDisplay) BlockingCall started
2018.02.08 09:35:30 3 : Setting Mythz serial parameters to 115200,8,N,1
2018.02.08 09:35:30 1 : /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 reappeared (Mythz)
2018.02.08 09:36:28 3 : opened||||||
Zitat von: andre.k am 20 Januar 2018, 00:07:05
...
Ich weiss nicht inwiefern die Register auch in den neueren Anlagen bzw. Firmware<>2.14 vorhanden sind. Vieleicht könnte das mal jemand testen. Die zugehörigen Get-Kommandos sind wie folgt
...
Zitat von: immi am 08 Februar 2018, 12:15:15My THZ works with 115.2kbit/s. But frequently opening/closing the adapter might have different drawbacks, I guess. So I let it as it is currently.
For newer tecalor with higher serial-baud it is negligible.
Zitat von: immi am 04 Februar 2018, 16:52:46
Hi Andre
i implemented and committed the following
- all %soll have a type
- validation of time inputs in set
please xcheck
Hi Fabian
please wait for Andre confirmation before upgrading
immi
[" x48: ", 48, 4, "hex", 1],
[" x52: ", 52, 4, "hex", 1],
[" x56: ", 56, 4, "hex", 1],
[" inputFanSpeed: ", 58, 2, "hex", 1], #like in sGlobal? actual measured speed
[" outputFanSpeed: ", 60, 2, "hex", 1], #like in sGlobal? actual measured speed
[" pFanstageXAirflowInlet: ", 62, 4, "hex", 1], #m3/h like p37Fanstage1AirflowInlet or p38Fanstage2AirflowInlet
[" pFanstageXAirflowOutlet: ", 66, 4, "hex", 1], #m3/h like p40Fanstage1AirflowOutlet or p41Fanstage2AirflowOutlet
[" inputFanPower: ", 70, 2, "hex", 1], # like in sGlobal
[" outputFanPower: ", 72, 2, "hex", 1], # like in sGlobal
Zitat von: immi am 08 Februar 2018, 22:16:12
Hi friesenjung
i committed the followingsCode Auswählen
[" x48: ", 48, 4, "hex", 1],
[" x52: ", 52, 4, "hex", 1],
[" x56: ", 56, 4, "hex", 1],
[" inputFanSpeed: ", 58, 2, "hex", 1], #like in sGlobal? actual measured speed
[" outputFanSpeed: ", 60, 2, "hex", 1], #like in sGlobal? actual measured speed
[" pFanstageXAirflowInlet: ", 62, 4, "hex", 1], #m3/h like p37Fanstage1AirflowInlet or p38Fanstage2AirflowInlet
[" pFanstageXAirflowOutlet: ", 66, 4, "hex", 1], #m3/h like p40Fanstage1AirflowOutlet or p41Fanstage2AirflowOutlet
[" inputFanPower: ", 70, 2, "hex", 1], # like in sGlobal
[" outputFanPower: ", 72, 2, "hex", 1], # like in sGlobal
everything before charachter 58 has still to be deciphered
Zitat von: friesenjung am 08 Februar 2018, 23:34:18
Another question: Is there a reason that p58 ist not schown with firmware 5.39?
Zitat von: friesenjung am 09 Februar 2018, 10:39:53all register which have been found and interpreted, have been implemented
hi immi,
no, not the new registers. I ment in the normal THZ-Readings (see attachement) running with the attribute firmware=5.39
Zitatone other question: what is "calibration speed"
2018.02.11 20:54:34 3: THZ_Get: Error msg2: decode: command not known -- 16 -> 01031A161003
2018.02.11 20:54:48 3: THZ_Get: Error msg2: decode: command not known -- FE -> 010302FE1003
2018.02.11 20:55:41 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0B ->
2018.02.11 20:55:41 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1426.
2018.02.11 20:55:41 3: THZ_Get: Error msg2: THZ_Get_Com: error found at step0 15 NAK!! -- 17 -> 15
2018.02.11 20:55:42 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/00_THZ.pm line 1016.
2018.02.11 20:55:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 1016.
2018.02.11 20:55:42 3: Mythz/RAW: 02 - -
2018.02.11 20:56:59 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 05 ->
2018.02.11 20:57:14 3: THZ_Parsing: offset(16) + length(4) is longer then message : '1D08089801F47F00'
2018.02.11 20:57:14 3: THZ_Parsing: offset(20) + length(4) is longer then message : '1D08089801F47F000000'
2018.02.11 20:57:39 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 06 ->
2018.02.11 20:57:41 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0D ->
Zitat von: TheTrumpeter am 11 Februar 2018, 21:03:50
I just had a look as I did not try to find parameters for a long time...
p58 is 0A0611 with fw 5.39
suggested name: p58_timeoutTemperature_HC
Min/Max as per manual: 0-120
stored value has just to be converted do decimal, no further formula needed.
Zitat von: börni am 11 Februar 2018, 21:05:30Hi Fabian,Code Auswählen
2018.02.11 20:55:41 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0B ->
Zitat von: andre.k am 11 Februar 2018, 22:03:56Of course I agree; I did not know that.
Because we have this parameter alraedy in 2.x. I would suggest to use the same reading name "p58SuppressTempCaptPumpStart"
[" solarPump: ", 44, 1, "n.a", 1], [" compressor: ", 44, 1, "bit0", 1],
[" boosterStage3: ", 44, 1, "bit3", 1], [" boosterStage2: ", 44, 1, "bit2", 1],
[" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 1],
[" solarPump: ", 44, 1, "bit2", 1], [" compressor: ", 44, 1, "bit0", 1],
[" boosterStage2: ", 44, 1, "bit3", 1], [" boosterStage3: ", 44, 1, "n.a.", 1],
[" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 1],
--- 00_THZ.pm 2018-02-16 20:40:41.973829111 +0100
+++ 00_THZ.178.pm 2018-02-16 20:55:38.529812388 +0100
@@ -2,7 +2,7 @@
# 00_THZ
# $Id: 00_THZ.pm 16126 2018-02-08 21:05:03Z immi $
# by immi 1/2018
-my $thzversion = "0.177";
+my $thzversion = "0.178";
# this code is based on the hard work of Robert; I just tried to port it
# http://robert.penz.name/heat-pump-lwz/
########################################################################################
@@ -294,7 +294,7 @@
[" actualPower_Qc: ", 94, 8, "esp_mant", 1], [" actualPower_Pel: ", 102, 8, "esp_mant", 1],
[" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10]
],
- "FBglob206" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
+ "FBglob214" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
[" returnTemp: ", 16, 4, "hex2int", 10], [" hotGasTemp: ", 20, 4, "hex2int", 10],
[" dhwTemp: ", 24, 4, "hex2int", 10], [" flowTempHC2: ", 28, 4, "hex2int", 10],
[" evaporatorTemp: ", 36, 4, "hex2int", 10], [" condenserTemp: ", 40, 4, "hex2int", 10],
@@ -302,7 +302,28 @@
[" heatPipeValve: ", 45, 1, "bit3", 1], [" diverterValve: ", 45, 1, "bit2", 1],
[" dhwPump: ", 45, 1, "bit1", 1], [" heatingCircuitPump: ", 45, 1, "bit0", 1],
[" solarPump: ", 44, 1, "bit2", 1], [" compressor: ", 44, 1, "bit0", 1],
- [" boosterStage3: ", 44, 1, "bit3", 1], [" boosterStage2: ", 44, 1, "n.a.", 1],
+ [" boosterStage2: ", 44, 1, "bit3", 1], [" boosterStage3: ", 44, 1, "n.a.", 1],
+ [" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 1],
+ [" lowPressureSensor: ", 54, 1, "bit2", 1], [" evaporatorIceMonitor: ", 55, 1, "bit3", 1],
+ [" signalAnode: ", 54, 1, "bit1", 1], [" evuRelease: ", 48, 1, "n.a.", 1],
+ [" ovenFireplace: ", 54, 1, "bit0", 1], [" STB: ", 48, 1, "n.a.", 1],
+ [" outputVentilatorPower: ",48, 2, "hex", 1], [" inputVentilatorPower: ", 50, 2, "hex", 1], [" mainVentilatorPower: ", 52, 2, "hex", 255/100],
+ [" outputVentilatorSpeed: ",56, 2, "hex", 1], [" inputVentilatorSpeed: ", 58, 2, "hex", 1], [" mainVentilatorSpeed: ", 60, 2, "hex", 1],
+ [" outsideTempFiltered: ",64, 4, "hex2int", 10], [" relHumidity: ", 70, 4, "n.a.", 1],
+ [" dewPoint: ", 5, 4, "n.a.", 1],
+ [" P_Nd: ", 5, 4, "n.a.", 1], [" P_Hd: ", 5, 4, "n.a.", 1],
+ [" actualPower_Qc: ", 5, 8, "n.a.", 1], [" actualPower_Pel: ", 5, 8, "n.a.", 1],
+ [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10]
+ ],
+ "FBglob206" => [["outsideTemp: ", 8, 4, "hex2int", 10], [" flowTemp: ", 12, 4, "hex2int", 10],
+ [" returnTemp: ", 16, 4, "hex2int", 10], [" hotGasTemp: ", 20, 4, "hex2int", 10],
+ [" dhwTemp: ", 24, 4, "hex2int", 10], [" flowTempHC2: ", 28, 4, "hex2int", 10],
+ [" evaporatorTemp: ", 36, 4, "hex2int", 10], [" condenserTemp: ", 40, 4, "hex2int", 10],
+ [" mixerOpen: ", 47, 1, "bit1", 1], [" mixerClosed: ", 47, 1, "bit0", 1],
+ [" heatPipeValve: ", 45, 1, "bit3", 1], [" diverterValve: ", 45, 1, "bit2", 1],
+ [" dhwPump: ", 45, 1, "bit1", 1], [" heatingCircuitPump: ", 45, 1, "bit0", 1],
+ [" solarPump: ", 44, 1, "n.a", 1], [" compressor: ", 44, 1, "bit0", 1],
+ [" boosterStage3: ", 44, 1, "bit3", 1], [" boosterStage2: ", 44, 1, "bit2", 1],
[" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 1],
[" lowPressureSensor: ", 54, 1, "bit2", 1], [" evaporatorIceMonitor: ", 55, 1, "bit3", 1],
[" signalAnode: ", 54, 1, "bit1", 1], [" evuRelease: ", 48, 1, "n.a.", 1],
@@ -790,7 +811,6 @@
"sDHW" => {cmd2=>"F3", type =>"F3dhw", unit =>""},
"sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""},
"sSystem" => {cmd2=>"F6", type =>"F6sys206", unit =>""},
- "sGlobal" => {cmd2=>"FB", type =>"FBglob206", unit =>""},
"sTimedate" => {cmd2=>"FC", type =>"FCtime206", unit =>""},
"inputVentilatorSpeed"=> {parent=>"sGlobal", unit =>" %"},
"outputVentilatorSpeed"=>{parent=>"sGlobal", unit =>" %"},
@@ -804,7 +824,7 @@
"pFan" => {cmd2=>"01", type =>"01pxx206", unit =>""},
"sLast10errors" => {cmd2=>"D1", type =>"D1last206", unit =>""},
"sFirmware" => {cmd2=>"FD", type =>"FDfirm", unit =>""},
- "sFirmware-Id" => {cmd2=>"FE", type =>"FEfirmId", unit =>""},
+ "sGlobal" => {cmd2=>"FB", type =>"FBglob206", unit =>""},
);
my %getsonly214 = (
@@ -812,10 +832,7 @@
"pExpert" => {cmd2=>"02", type =>"02pxx206", unit =>""},
"sControl" => {cmd2=>"F2", type =>"F2type", unit =>""},
"sHC1" => {cmd2=>"F4", type =>"F4hc1214", unit =>""},
- "sLVR" => {cmd2=>"E8", type =>"E8tyype", unit =>""},
- "sF0" => {cmd2=>"F0", type =>"F0type", unit =>""},
- "sF1" => {cmd2=>"F1", type =>"F1type", unit =>""},
- "sEF" => {cmd2=>"EF", type =>"EFtype", unit =>""},
+ "sGlobal" => {cmd2=>"FB", type =>"FBglob214", unit =>""},
);
Zitat von: börni am 18 Februar 2018, 22:00:34yes
May I update too?
Zitat von: LeJoke am 19 Februar 2018, 12:29:39Hi LeJoke
Hello,
hope this is the correct forum ...
Was anybody able yet to connect to a LWZ304 trend / eco?
I am using a serial cable @115.000 baud; Prolific 2303 RS223_USB and Win10 with Hterm. LWZ is SW version 5.09 / ID 7562
I can get a basic connection with sending 02 receiving response 10, but non of the other command seems to work ...
only when preceding a 02 to another command a get some more response from the LWZ (e.g. 02 01 00 FE FD 10 03 gives response 10 10 02)
Any idea what might be wrong ?
Zitat von: immi am 18 Februar 2018, 23:20:10
yes
Zitat
2018.02.22 20:08:06 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1459.
2018.02.22 20:08:13 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/00_THZ.pm line 1045.
2018.02.22 20:08:13 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 1045.
Zitat von: mlb am 20 März 2018, 19:39:48thanks for the compliments
I do not know THZ protocol well enough, so I thought I would ask here: is there an option at all to switch fireplace dependency remotely, ie. via code, not via control panel? In certain conditions I would like compressor to automatically work regardless of fireplace already engaged - because then I can "ask" THZ to focus on DWH, and fireplace on floor heating.
attr Mythz firmware 4.39technician
Zitat von: The Spirit am 25 April 2018, 15:39:35Do you have installed a "Sommerkassette"?
if i read p75 via the get method i get "4" which is linked to "sommerkassette".
Zitat von: The Spirit am 25 April 2018, 15:39:35Hi Spirit
i own a tecalor 304 eco with firmware 5.09
if i want to set p75 (passive cooling) i am only able to set 0,1 or 2.
if i read p75 via the get method i get "4" which is linked to "sommerkassette".
could this thing be fixed in a next release?
Thanks
Zitat von: willybauss am 07 Juni 2018, 21:18:07I know; I also use your "at" for time-synchronization.
I never tried it, just the minutes. For me that's sufficient, since I just want to synchronize times. Daylight saving time is done automatically by THZ display setting.
Zitat von: TheTrumpeter am 07 Juni 2018, 10:55:33I just googled
Has anyone ever tried setting "pClockHour" with FHEM?
I tried it, but it's always returning the actual hour and does not change the time.
"pClockMinutes" seems to work properly.
"FBglob" => [
["outsideTemp: ", 8, 4, "hex2int", 10],
[" flowTemp: ", 12, 4, "hex2int", 10],
[" returnTemp: ", 16, 4, "hex2int", 10],
[" hotGasTemp: ", 20, 4, "hex2int", 10],
[" dhwTemp: ", 24, 4, "hex2int", 10],
[" flowTempHC2: ", 28, 4, "hex2int", 10],
[" evaporatorTemp: ", 36, 4, "hex2int", 10],
[" condenserTemp: ", 40, 4, "hex2int", 10],
[" dhwPump: ", 44, 1, "bit0", 1],
[" heatingCircuitPump: ", 44, 1, "bit1", 1],
[" solarPump: ", 44, 1, "bit3", 1],
[" mixerOpen: ", 45, 1, "bit0", 1],
[" mixerClosed: ", 45, 1, "bit1", 1],
[" heatPipeValve: ", 45, 1, "bit2", 1],
[" diverterValve: ", 45, 1, "bit3", 1],
[" boosterStage3: ", 46, 1, "bit0", 1],
[" boosterStage2: ", 46, 1, "bit1", 1],
[" boosterStage1: ", 46, 1, "bit2", 1],
[" compressor: ", 47, 1, "bit3", 1],
[" evuRelease: ", 48, 1, "bit0", 1], #X15-5
[" ovenFireplace: ", 48, 1, "bit1", 1], #X15-6
[" STB: ", 48, 1, "bit2", 1], #X15-7
[" highPressureSensor: ", 49, 1, "nbit0", 1], # Wächter X15-1 is on per default - should be bit instead of nbit to match display
[" lowPressureSensor: ", 49, 1, "nbit1", 1], # Wächter X15-2 not in 304 integral
[" evaporatorIceMonitor: ", 49, 1, "bit2", 1], #X15-3
[" signalAnode: ", 49, 1, "bit3", 1], #X15-4
[" outputVentilatorPower: ",50, 4, "hex", 10],
[" inputVentilatorPower: ", 54, 4, "hex", 10],
[" mainVentilatorPower: ", 58, 4, "hex", 10],
[" outputVentilatorSpeed: ",62, 4, "hex", 1],
[" inputVentilatorSpeed: ", 66, 4, "hex", 1],
[" mainVentilatorSpeed: ", 70, 4, "hex", 1],
[" outside_tempFiltered: ",74, 4, "hex2int", 10],
[" relHumidity: ", 78, 4, "hex2int", 10],
[" dewPoint: ", 82, 4, "hex2int", 10],
[" P_Nd: ", 86, 4, "hex2int", 100],
[" P_Hd: ", 90, 4, "hex2int", 100],
[" actualPower_Qc: ", 94, 8, "esp_mant", 1],
[" actualPower_Pel: ", 102, 8, "esp_mant", 1],
[" collectorTemp: ", 4, 4, "hex2int", 10], ##### parameters added later ...
[" insideTemp: ", 32, 4, "hex2int", 10],
[" x44b2: ", 44, 1, "bit2", 1], ## LeJoke trial additons +++++++++++++++++++
[" x46b3: ", 46, 1, "bit3", 1],
[" x47b0: ", 47, 1, "bit0", 1],
[" x47b1: ", 47, 1, "bit1", 1],
[" windowOpen: ", 47, 1, "bit2", 1], # board X18-1 clamp X4-FA (FensterAuf): window open - signal out 230V
[" quickAirVent: ", 48, 1, "bit3", 1], # board X15-8 clamp X4-SL (SchnellLüftung): quickAirVent - signal in 230V
[" flowRate: ", 110, 4, "hex", 10], # board X51 sensor P5 (on newer models B1 flow temp as well)
[" p_HCw: ", 114, 4, "hex", 100],# board X4-1..3 sensor P4 HC water pressure
[" x118: ", 118, 4, "hex2int", 10], # ??? Ventilöffnung / Druck ??
[" x122: ", 122, 4, "raw", 1],
[" x126: ", 126, 4, "hex2int", 10], # vvvvvv Bxx temp sensors vvvvvvvvv
[" x130: ", 130, 4, "hex2int", 10], # ?? WP flow ?
[" x134: ", 134, 4, "hex2int", 10], # ??
[" x138: ", 138, 4, "hex2int", 10], # ??
[" x142: ", 142, 4, "hex2int", 10], # ??
[" x146: ", 146, 4, "raw", 1],
[" x150: ", 150, 4, "raw", 1],
[" humidityAirOut: ", 154, 4, "hex", 100] # board X4-4..6 sensor B15
],
Zitat von: LeJoke am 28 August 2018, 14:30:34Also my display always shows it as "0", but I have an external sensor just before the LWZ. Attached you'll find the comparison of external sensor and your reading. It's definitely the "Abluftfeuchte". Well done!
On my device (304 integral SW 5.09) teh "Abluftfeuchte" is always displayed as "0" on the iPod display, so I could only do an indirect sanity check (increasing / decreasing humidityMin in humidity protection in order to trigger / untrigger the ventilation output decrease) - may be some one with a device where "humidityAirOut" is displayed can verfiy ...
Zitat von: immi am 03 September 2018, 11:25:25Are you sure you uploaded your changes?
Hi LeJoke
I implemented your suggestions and committed
immi
Zitat von: TheTrumpeter am 03 September 2018, 12:56:39it takes up to 12h for git and the fhem update function to sinc from fhem original repository
Are you sure you uploaded your changes?
I just did an update, but sGlobal is unchanged.
EDIT: Just crosschecked https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/00_THZ.pm, it's unchanged there.
Zitat von: TheTrumpeter am 02 September 2018, 20:14:37
One more point:
Did you change the order of the readings in "sGlobal"?
I've just overtaken your code, today's DHW-cycle shows useage of "booster-stage 1" although it definitely was not activated.
[" x44b2: ", 44, 1, "bit2", 1], ## LeJoke trial additons +++++++++++++++++++
[" x46b3: ", 46, 1, "bit3", 1],
[" x47b0: ", 47, 1, "bit0", 1],
[" x47b1: ", 47, 1, "bit1", 1],
[" windowOpen: ", 47, 1, "bit2", 1], # board X18-1 clamp X4-FA (FensterAuf): window open - signal out 230V
[" quickAirVent: ", 48, 1, "bit3", 1], # board X15-8 clamp X4-SL (SchnellLüftung): quickAirVent - signal in 230V
[" flowRate: ", 110, 4, "hex", 10], # board X51 sensor P5 (on newer models B1 flow temp as well)
[" p_HCw: ", 114, 4, "hex", 100],# board X4-1..3 sensor P4 HC water pressure
[" x118: ", 118, 4, "hex2int", 10], # ??? Ventilöffnung / Druck ??
[" x122: ", 122, 4, "raw", 1],
[" x126: ", 126, 4, "hex2int", 10], # vvvvvv Bxx temp sensors vvvvvvvvv
[" x130: ", 130, 4, "hex2int", 10], # ?? WP flow ?
[" x134: ", 134, 4, "hex2int", 10], # ??
[" x138: ", 138, 4, "hex2int", 10], # ??
[" x142: ", 142, 4, "hex2int", 10], # ??
[" x146: ", 146, 4, "raw", 1],
[" x150: ", 150, 4, "raw", 1],
[" humidityAirOut: ", 154, 4, "hex", 100] # board X4-4..6 sensor B15
Zitat von: immi am 30 Juni 2018, 22:31:02hi immi,
Hi Andre
would you mind xchecking line 820?
"sControl" => {cmd2=>"F2", type =>"F2type", unit =>""},
why it is defined F2type?
actually line 820 can be deleted, because sControl already in %getsonly2xx.
thanks immi
Zitat von: TheTrumpeter am 08 Juni 2018, 11:01:36Die Anfrage ist zwar etwas älter, aber ich habe es jetzt erst gelesen. Das Ergebnis ist - die Minuten scheinen übernommen zuwerden, aber nicht die Stunden.
So then maybe toggle can cross-check if changing the hour (still) works.
Zitat01 00 d8 fb fd a8 00 1f 01 57 01 18 02 e1 01 f1 fd a8 fd a8 00 10 01 26 60 08 11 01 2c 01 2c 02 bc 00 0e 00 17 00 14 00 26 00 00 00 00 01 59 05 73 46 04 4a f8 3f dd c2 90 07 c5 00 99 01 4b 00 00 01 19 01 56 00 02 ff ea 01 32 00 00 00 00 0e 47
07 c5 => 1989 => "19.9 l/min" im Display
Zitat2018-12-26_10:20:05 Mythz sGlobal: outsideTemp: 3.7 flowTemp: 36.6 returnTemp: 26.9 hotGasTemp: 65.9 dhwTemp: 38.1 flowTempHC2: -60 evaporatorTemp: 11.2 condenserTemp: 24.8 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 30 inputVentilatorPower: 30 mainVentilatorPower: 70 outputVentilatorSpeed: 16 inputVentilatorSpeed: 27 mainVentilatorSpeed: 20 outside_tempFiltered: 3.3 relHumidity: 48.6 dewPoint: 0 P_Nd: 4.26 P_Hd: 15.41 actualPower_Qc: 2236.207 actualPower_Pel: 2.049 collectorTemp: -60 insideTemp: -60 windowOpen: 0 quickAirVent: 0 flowRate: 188.5 p_HCw: 1.82 humidityAirOut: 49.76These are cl/min, I divide it by 10 to get l/min.
Zitat von: TheTrumpeter am 26 Dezember 2018, 11:03:51thanks for the positive feedback....
for me "flowrate" within "sGlobal" works perfectly as it's currently implemented:These are cl/min, I divide it by 10 to get l/min.
Zitat von: immi am 26 Dezember 2018, 11:29:11You're right, of course 100cl/min equals 1l/min, but nevertheless the reading is then l/min if I divide it by 10.
thanks for the positive feedback....
not sure what you mean with
10* cl/min is not equal to l/min
If you wish that I change the scale, just tell me.
I am sure someone will ask again in one year.
p.s. still hoping someone finds time to update the fhemwiki for the module (e.g. delete the history and explain the registers, units....)
immi
2019.01.05 17:43:23 1: Including fhem.cfg
2019.01.05 17:43:29 3: WEB: port 8083 opened
2019.01.05 17:43:29 3: WEBphone: port 8084 opened
2019.01.05 17:43:29 3: WEBtablet: port 8085 opened
2019.01.05 17:43:30 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2019.01.05 17:43:32 3: Opening Mythz device /dev/ttyUSB0
2019.01.05 17:43:33 3: Setting Mythz serial parameters to 115200,8,N,1
2019.01.05 17:43:33 3: Mythz device opened
2019.01.05 17:43:50 1: Including ./log/fhem.save
2019.01.05 17:43:51 1: usb create starting
2019.01.05 17:43:53 1: usb create end
2019.01.05 17:43:53 0: Featurelevel: 5.9
2019.01.05 17:43:53 0: Server started with 58 defined entities (fhem.pl:18029/2018-12-22 perl:5.014002 os:linux user:root pid:25987)
2019.01.05 17:44:50 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1771 ->
2019.01.05 17:44:52 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05D1 ->
2019.01.05 17:44:53 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A091E ->
2019.01.05 17:44:55 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05A2 ->
2019.01.05 17:44:57 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 16 ->
2019.01.05 17:44:58 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05C1 ->
2019.01.05 17:45:00 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0013 ->
2019.01.05 17:45:01 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- F5 ->
2019.01.05 17:45:03 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1790 ->
2019.01.05 17:45:05 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1750 ->
2019.01.05 17:45:06 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1712 ->
2019.01.05 17:45:08 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1532 ->
2019.01.05 17:45:09 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1510 ->
2019.01.05 17:45:11 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1472 ->
2019.01.05 17:45:13 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1461 ->
2019.01.05 17:45:14 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05BA ->
2019.01.05 17:45:16 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A010C ->
2019.01.05 17:45:17 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05C4 ->
2019.01.05 17:45:19 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1DA1 ->
2019.01.05 17:45:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D41 ->
2019.01.05 17:45:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1561 ->
2019.01.05 17:45:24 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A057A ->
2019.01.05 17:45:25 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A064F ->
2019.01.05 17:45:27 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0162 ->
2019.01.05 17:45:29 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D60 ->
2019.01.05 17:45:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D51 ->
2019.01.05 17:45:32 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1720 ->
2019.01.05 17:45:33 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A02CC ->
2019.01.05 17:45:35 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0109 ->
2019.01.05 17:45:37 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- D1 ->
2019.01.05 17:45:38 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C0008 ->
...and so on...
Zitat von: timtom2000 am 13 Januar 2019, 20:06:48happy you made it
Hi Immi, short Info...it works :)!
2019.01.28 07:38:26 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0928 ->
2019.01.28 07:38:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1781 ->
2019.01.28 07:38:29 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1531 ->
Zitat von: willybauss am 22 Januar 2019, 09:36:38There is another indicator available - evaporatorIceMonitor in sGlobal.
I have a problem with my 303-SOL in sDisplay readings. The defrost value doesn't get updated correctly. It always stays at 0. Even in defrost cycles it does not jump to 1.
Zitat von: timtom2000 am 28 Januar 2019, 19:47:3917?
sDisplay[17]
Zitat2019-01-21_20:58:36 Mythz sDisplay: switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 0 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0 cooling: 0 service: 0So it should be sDisplay[21].
Zitat von: toggle am 28 Januar 2019, 19:53:13Thanks for the hint. This works. Unfortunately I log sGlobal just every 5 minutes. This is not enough for checking length of defrost cycles. My logfiles would explode by changing interval to e.g. 1 minute. Additionally the time needed to build plots would increase a lot.
There is another indicator available - evaporatorIceMonitor in sGlobal.
line 1521: select(undef, undef, undef, 0.25);
line 1573: my $buf = DevIo_SimpleReadWithTimeout($hash, 0.5);
line 1574: $buf = DevIo_SimpleReadWithTimeout($hash, 0.5) if(!defined($buf)) ;
Zitat von: Stonemuc am 11 März 2019, 17:20:18no, but you can share your experience.
I got a new software update last week. Therefore the service technican installed a extra new sensor...looks like a NTC. Does someone knows something about it?
sFirmware
version: 07.09
2019-03-12 07:58:43
sFirmware-Id
HW: 242 SW: 7.03 Date: JUL 5 2018
2019-03-12 07:54:41
Zitat von: willybauss am 17 Juni 2017, 23:33:43Gestern habe ich meine Verbindung zur Tecalor hergestellt und auch ca. 2 Stunden lang Daten erhalten (über serielle Schnittstelle mit 115200 Baud). Dann seit ca. 18:45 Uhr nur noch Fehlermeldungen wie oben.
After having changed the code lines as you suggested the logs show:Code Auswählen2017.06.17 18:54:03 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:03 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100320A091E1003
2017.06.17 18:54:04 3: THZ_Get: Error msg2: CRC error in request ---- 0100D10A05C11003
2017.06.17 18:54:25 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:26 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100A00B14801003
2017.06.17 18:54:42 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:54:42 3: THZ_Get: Error msg3: InterfaceNotRespondig error found at step1 ---- 0100410A092D1003
2017.06.17 18:54:42 3: THZ_Get: Error msg2: new unknown answer ---- 0100980A05881003
2017.06.17 18:54:59 3: THZ_Get: Error msg2: CRC error in request ---- 0100910A05811003
2017.06.17 18:55:15 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:55:15 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 0100430A17211003
2017.06.17 18:55:23 3: Mythz THZ_ReadAnswer got no answer from DevIo_SimpleRead. Maybe too slow?
2017.06.17 18:55:23 3: THZ_Get: Error msg2: InterfaceNotRespondig error found at step1 ---- 01007A0B05691003
2017.06.17 18:55:23 3: THZ_Get: Error msg2: new unknown answer ---- 0100830A17611003
2017.06.17 18:55:30 3: THZ_Get: Error msg2: CRC error in request ---- 0100630C15411003
2017.06.17 18:55:32 3: Mythz NAK!!
2019.03.17 18:49:02 3: THZ_Get: Error msg2: 4Adecode: crc_error in answer -- FB -> 01001FFBFDA80036011B0112011E01C7FDA8FDA800D4010B00001101900190000000
...
2019.03.17 18:49:49 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- D1 ->
...
2019.03.17 18:51:50 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- D1 ->
...
2019.03.17 18:53:51 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- D1 ->
2019.03.17 18:54:03 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- FB ->
...
2019.03.18 17:01:15 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1550 ->
2019.03.18 17:01:16 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1441 ->
2019.03.18 17:01:18 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0123 ->
...
2019.03.18 17:01:20 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1732 ->
2019.03.18 17:01:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1711 ->
2019.03.18 17:01:23 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A17A2 ->
2019.03.18 17:01:25 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D21 ->
2019.03.18 17:01:26 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1730 ->
2019.03.18 17:01:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1471 ->
2019.03.18 17:01:29 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1552 ->
2019.03.18 17:01:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- FB ->
2019.03.18 17:01:32 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05B4 ->
2019.03.18 17:01:34 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1462 ->
2019.03.18 17:01:36 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0579 ->
2019.03.18 17:01:37 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0580 ->
2019.03.18 17:01:39 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0586 ->
2019.03.18 17:01:40 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1522 ->
2019.03.18 17:01:42 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1521 ->
2019.03.18 17:01:44 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D72 ->
2019.03.18 17:01:45 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A05D3 ->
2019.03.18 17:01:47 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0928 ->
2019.03.18 17:01:48 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1742 ->
2019.03.18 17:01:50 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1760 ->
2019.03.18 17:01:52 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A091E ->
2019.03.18 17:01:53 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D92 ->
2019.03.18 17:01:55 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A056F ->
2019.03.18 17:01:56 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0C1540 ->
2019.03.18 17:01:58 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D62 ->
2019.03.18 17:02:00 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0575 ->
2019.03.18 17:02:01 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0572 ->
2019.03.18 17:02:03 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A091A ->
2019.03.18 17:02:04 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0578 ->
2019.03.18 17:02:06 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A011D ->
2019.03.18 17:02:08 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D11 ->
2019.03.18 17:02:09 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D32 ->
2019.03.18 17:02:11 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A057B ->
2019.03.18 17:02:12 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1491 ->
2019.03.18 17:02:14 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D91 ->
2019.03.18 17:02:16 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A092C ->
2019.03.18 17:02:17 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1432 ->
...
2019.03.18 17:02:19 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A092A ->
Zitat von: joker4791 am 18 März 2019, 17:55:38to my knoledge it is not possible to change the serial speed of your tecalor.
Habe jetzt die Verbindungsgeschwindigkeit auf 9600,8,N,1 herabgesetzt und FHEM sowie die Heizungsanlage mehrfach neu gestartetet, aber es gibt keine neuen Werte.
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]}
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 Mythz userReadings AussenTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]}, VorlaufTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[3]}, RuecklaufTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[5]}, WWTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[9]}, KollektorTemp {(split ' ',ReadingsVal("Mythz","sGlobal",0))[79]}
define fhemMQTT MQTT2_CLIENT mqtt_ip_address:1883
attr fhemMQTT username my_mqtt_username
attr fhemMQTT subscriptions /Mythz/+/set
defmod mqttGeneric MQTT_GENERIC_BRIDGE fhem room=LWZHeating
attr mqttGeneric IODev
attr mqttGeneric globalPublish *:topic={"/$device/$reading"}
#this is not working:
attr mqttGeneric mqttSubscribe *:topic={"/Mythz/$reading/set"}
Zitat von: mlb am 16 April 2019, 22:33:53mlb thanks for the nice words,
I was able to send all readings,
shell_command:
set_unscheduled_vent: 'curl -s http://my_fhem_ip_address:8086/fhem?cmd=set%20Mythz%20p99startUnschedVent%20{{level}} >/dev/null'
define WEBapi FHEMWEB 8086 global
attr WEBapi csrfToken none
Zitat von: andy1986 am 09 Juni 2019, 14:08:33Hi Andy
Hallo Zusammen,
ich bekomme nur noch folgende Meldungen im Log:
019.06.09 13:46:52 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
Was kann ich machen damit es wieder funktioniert?
VG
Zitat von: andy1986 am 09 Juni 2019, 20:00:07an update of the whole system is suggested but will not solve your problem, which does not seam to be software related.
I worked fine for me then the USB cable broke. So i ordered a new one and then it worked for a second. After that no longer.
Zitat von: immi am 10 Juni 2019, 11:31:48
Hi Andy
10m usb ... :(
why don't you remove the repeater and go with a raspi or a old fritzbox in between (next to the heatpump)?
after that you reach your main fhem-server with ethernet or wlan.
immi
Zitat von: andy1986 am 10 Juni 2019, 16:55:38
How does it work with an raspi or an fritzbox in between?
define Mythz THZ old_fritz:2003
root@fritz:/var/mod/root# dmesg |grep tty
[ 29.264000] usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
2003:raw:500:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS
Zitat von: andy1986 am 14 Juli 2019, 20:15:18you need to know which chipset you have in the usbserial and compile it in freetz
-> I need to install USB Driver on the freetz or? How could i do that?
root@fritz:/var/mod/root# ls /lib/modules/2.6.28.10/kernel/drivers/usb/serial/*
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/ch341.ko
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/cp2101.ko
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/ftdi_sio.ko
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/option.ko
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/pl2303.ko
/lib/modules/2.6.28.10/kernel/drivers/usb/serial/usbserial.ko
root@fritz:/var/mod/root# lsmod |grep ftdi
ftdi_sio 32816 1
usbserial 27952 3 ftdi_sio
usbcore 120352 5 ohci_hcd,ehci_hcd,ftdi_sio,usbserial
insmod /lib/modules/2.6.32.41/kernel/drivers/usb/serial/cp210x.ko
Zitat von: andy1986 am 15 Juli 2019, 20:23:59happy that it is working now
Now its stable green.
Zitat von: andy1986 am 15 Juli 2019, 20:23:59
For what is it?
Zitat von: immi am 15 Juli 2019, 20:38:47This is the serial chip on your THZ...
your module does not load automatically
there is another command to force loadingCode Auswählen
insmod /lib/modules/2.6.32.41/kernel/drivers/usb/serial/cp210x.ko
it is equivalent to modprobe; use what youpreferhappy that it is working now
do not understand your question
Zitat von: belu am 01 Januar 1970, 01:00:00
... habe der Anlage gesagt sie ist ne THZ 404
... Man kann auch aus der THZ eine LWZ machen...
Zitat von: belu am 01 Januar 1970, 01:00:01
ich hab im Punkt Inbetriebnahme Modell drin. Das kann man verändern.
Zitat von: Jackie am 29 September 2019, 20:08:46Viel mehr würde mich interessieren, warum in dem Plot die WW-Bereitung am Morgen kurz unterbrochen wird?
Oder übersehe ich etwas?
Zitat von: Jackie am 30 September 2019, 18:34:06Trumpeter schreibt doch "...die WW-Bereitung am Morgen...". Da gibts eigentlich keine Frage mehr, wenn Du Dir deinen Plot anschaust. Die blaue Kurve solltest Du natürlich auch im Blick haben.
Wo genau siehst du die Unterbrechung?
Zitat von: willybauss am 30 September 2019, 20:11:44p36DHWMaxTime kannst Du ausschließen, der kleinstmögliche Wert ist 6h...
Auf die Schnelle fallen mir ein:
p36DHWMaxTime
p89DHWeco (?)
p99DHWmaxFlowTemp
Ich habe eine ziemlich alte Anlage. Mag sein, dass es bei den neueren andere oder mehr infrage kommende Parameter gibt.
Zitat von: TheTrumpeter am 01 Oktober 2019, 07:59:39Du meinst die Pumpenleistung? Wäre auch eine Idee.
Möglicherweise hilft auch die Durchflussrate für die WW-Bereitung zu erhöhen, denn offenbar kriegt die Anlage die Wärme nicht übertragen...
Zitat von: MSP am 24 Oktober 2019, 00:04:42Reset der Anlage. Während des bootens das Display beobachten.
Ich dachte der Eintrag in sFirmware kommt aus der Anlage, wie kann ich das sonst ermitteln?
Zitat von: MSP am 23 Oktober 2019, 08:24:36Failure or feature ? :)
Über KNX kann ich dann dieHeizkreisventile öffnen und über einen Kontakt das Einschalten des Verdichters unterdrücken.
Dabei ist mir aufgefallen, dass im THZ Modul die maximale Anzahl der Pumpenzyklen "p55MaxPumpCycles" nur auf den Wert 200 gestellt werden kann, der maximal mögliche Wert in der WP ist aber 288, damit läuft aber die Pumpe nicht dauerhaft (288 x 5 min = 24h).
Bei Eingabe über die Modulsteuerung/Programmierzeile erscheint die Meldung "Argument does not match..." (siehe Anhang). Kann jemand helfen, liegt der Fehler im Modul?
"p55MaxPumpCycles" => {cmd2=>"0A05B7", argMin => "25", argMax => "200", type =>"1clean", unit =>""},
"p55MaxPumpCycles" => {cmd2=>"0A05B7", argMin => "25", argMax => "288", type =>"1clean", unit =>""},
#define Mythz.alarm_failure notify Mythz { if (((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]) > ReadingsVal("Mythz","number_of_faults_old",0)) {(set myTelegramBot message Tecalor Mythz Alarm - Fehlermeldung);; fhem("setreading Mythz number_of_faults_old ". ((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]));; }}
#define Mythz.alarm_failure notify Mythz { if (((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]) > ReadingsVal("Mythz","number_of_faults_old",0)) { DebianMail('xxx@xxx.de','Tecalor Mythz Alarm - ERROR','Fehlermeldung: '. $EVENT,'/opt/fhem/Tecalor-Fehlermeldungen.txt');; fhem("setreading Mythz number_of_faults_old ". ((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]));; } }
2019.12.16 21:52:25 1: ERROR evaluating my $EVENT='HCStrom: 15197';my $EVTPART1='15197';my $EVTPART0='HCStrom:';my $SELF='Mythz.alarm_failure';my $TYPE='THZ';my $NAME='Mythz';{ if (((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]) > ReadingsVal("Mythz","number_of_faults_old",0)) {(set myTelegramBot message Tecalor Mythz Alarm - Fehlermeldung); fhem("setreading Mythz number_of_faults_old ". ((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1])); }}: Can't locate object method "Mythz" via package "Alarm" (perhaps you forgot to load "Alarm"?) at (eval 3662) line 1.
2019.12.16 21:52:25 3: Mythz.alarm_failure return value: Can't locate object method "Mythz" via package "Alarm" (perhaps you forgot to load "Alarm"?) at (eval 3662) line 1.
######## DebianMail Mail auf dem RPi versenden - incl. Attachment ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "[YourEmailAddress]\@[YourProvider]";
my $konto = "accountname\@account.de";
my $passwrd = "[YourPassword]";
my $provider = "securesmtp.t-online.de";
Log 1, "sendEmail Empfaenger: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Attachment: $attach";
################ FOR DEBUGGING PURPOSES ONLY ########################
################ Log 1, "sendEmail Sender: $sender";
################ Log 1, "sendEmail Konto: $konto";
################ Log 1, "sendEmail Passwort: $passwrd";
################ Log 1, "sendEmail Provider: $provider";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Zitat von: Sinclair am 28 Dezember 2019, 17:11:05Setting holiday-start and -end worked for me, without any extra procedure.
Leider scheint die Heizung meine aktuelle Urlaubseinstellung nicht übernommen zu haben. Gibt es einen Parameter oder Flag an dem man erkennen kann ob die Anlage im Urlaubs-Modus ist?
Muss man beim Setzen des Urlaubs Start- und End-Termin über FHEM eine bestimmte Reihenfolge beachten bzw muss der Start-Termin grundsätzlich in der Zukunft liegen oder prüft die Anlage nur ob man momentan zwischen den 2 Terminen liegt?
Hat jemand schon eine komfortablere Einstellmöglichkeit (über FHEM oder Smartvisu) geschaffen, wo man nicht Tag, Monat, Stunde usw einzeln eingeben muss sondern das ganze Datum inkl. Uhrzeit einfach wählen oder eingeben kann? (Code-Snipsel willkommen ;D)
Zitat von: willybauss am 16 Dezember 2019, 22:44:25Thanks Willy,
I can't help you with porting to Telegram. But maybe I know about your trouble with DebianMail. If your installation is based on my example code, you should have in mind that my code relies on a piece of code for DebianMail, which must be placed in 99_myUtils.pm. This special version allows email attachments, which isn't possible in standard DebianMail.
The code looks likeCode Auswählen######## DebianMail Mail auf dem RPi versenden - incl. Attachment ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "[YourEmailAddress]\@[YourProvider]";
my $konto = "accountname\@account.de";
my $passwrd = "[YourPassword]";
my $provider = "securesmtp.t-online.de";
Log 1, "sendEmail Empfaenger: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Attachment: $attach";
################ FOR DEBUGGING PURPOSES ONLY ########################
################ Log 1, "sendEmail Sender: $sender";
################ Log 1, "sendEmail Konto: $konto";
################ Log 1, "sendEmail Passwort: $passwrd";
################ Log 1, "sendEmail Provider: $provider";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
define Mythz.alarm_failure notify Mythz { if (((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]) > ReadingsVal("Mythz","number_of_faults_old",0)) { fhem ("set myTelegramBot message Tecalor Mythz Alarm - Fehlermeldung") ;; fhem("setreading Mythz number_of_faults_old ". ((split ' ',ReadingsVal("Mythz","sLast10errors",0))[1]));; } }
Zitat von: willybauss am 11 Februar 2020, 08:20:47Hi Willy
@ immi:
Do we have a mapping table, saying which firmware attribute value should be set in case of THZ firmware rev. xyz?
Zitat von: sunrise am 07 Juni 2020, 22:40:25Hi sunrise,
Hello,
My THZ 303 SOL has firmware 2.16, but the module does not seem to include this version - only 2.06 and newer ones. Can you please give me a hint how I should handle this?
ZitatheatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
Zitat13F20505000000000000100004010100000000A little bit later this:
Zitat2BF2050500000000000010001C010100000000
ZitatheatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
ZitatDEF /dev/ttyUSB0@9600
DeviceName /dev/ttyUSB0@9600
FD 7
FUUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx (I anonymised this)
NAME Mythz
NR 14
PARTIAL
STATE opened
TYPE THZ
VERSION 0.184
model 2.06_02.16
Zitat13F20505000000000000100004010100000000
2BF2050500000000000010001C010100000000
Zitat von: sunrise am 09 Juni 2020, 16:11:222.14 ist not closer to 2.16 based on information from Tecalor "Ersatzteilkatalog":
However, when I set the firmware to 2.14 (which should be "closer" to my 2.16), I get the following for
Zitat von: sunrise am 07 Juni 2020, 22:40:25
Hello,
My THZ 303 SOL ...
Zitat von: andre.k am 09 Juni 2020, 20:07:16As willybauss noted, I have the THZ SOL, i.e. firmware 2.06 is actually not applicable for me. Why it works better for me (regarding the sControl reading) than with 2.16, I do not know. Well, the firmware 2.16 is officially not supported by THZ module. Immi kindly offered to support it, but of course he would need more input from me or other users with the 2.16 firmware for debugging/reverse engneering.
2.14 ist not closer to 2.16 based on information from Tecalor "Ersatzteilkatalog":
THZ 303 INTEGRAL
2.03 (2002/01-2004/04)
2.05 (2004/04-2006/11)
2.06 (2006/12-2008/08)
THZ 303 SOL
2.14 (2002/10-2004/08)
2.15 (2004/09-2006/08)
2.16 (2006/09-2008/08)
I would suggest to start with firmware 2.06 in your case.
Zitat von: sunrise am 10 Juni 2020, 20:28:36excellent attitude
How can I contribute to "disassemble" something? I am really willing to do so but do not know how and where to start. The THZ is connected to a Raspi with FHEM. Via ser2net, I can also read and write from other devices.
get Mythz debug_read_raw_register_slow
Zitat von: immi am 11 Juni 2020, 10:50:31What is the difference between sets and setsonly, and for getsonly2xx and getsonly214, respectively?
line 1897
i tell fhem which %sets and %gets to use for 2.14
just add a simical case for 2.16
elsif ($attrVal eq "2.14") {
%sets = (%sets206, %setsonly214);
%gets = (%getsonly2xx, %getsonly214, %sets206);
THZ_Refresh_all_gets($hash);
}
Zitat von: immi am 11 Juni 2020, 10:50:31Similarly, here I have copied the block for %getsonly214 but renamed to to %getsonly216 as a start.
line 829
here I define %getsonly214 as a list of registers 01,02,F2,F4,FB and how we decode the answer from the heatpump (respectively 01pxx214, 02pxx206 ....)
Zitat von: immi am 11 Juni 2020, 10:50:31Finally, here I again copied the block 01pxx216 and renamed it to 01pxx214 (and kept the other stuff unchanged.
line 73
here is defined how to decode the answer from the heatpump for 01pxx214
Zitat von: sunrise am 13 Juni 2020, 11:34:46getsonly2xx is a common denominator of registers which are equals for all 2.xx; specialities of 2.14 shoul be in getsonly214
What is the difference between sets and setsonly, and for getsonly2xx and getsonly214, respectively?
Zitat von: sunrise am 13 Juni 2020, 12:05:29just overright it and restart fhem;
Ok, sounds good. I am still searching the wiki and other sources to understand how I either replace the official 00_THZ.pm in my FHEM installation, or how to load it after renaming it to e.g. 00_THZ_test.pm. If you happen to have a quick hint for me where to look for that, I would be very grateful. :)
ZitatAttributes:
firmware 2.16
interval_sGlobal 300
interval_sHistory 28800
interval_sLast10errors 120
ZitatdhwTemp: 50.9 outsideTemp: 21.3 dhwSetTemp: 48 compBlockTime: 0 out: 001C heatBlockTime: 2812 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: normal x36: D368The "x36: D368" looks strange here.
ZitatstatusAFC: 0 supplyFanSpeedCAL: 0 exhaustFanSpeedCAL: 0 supplyFanAirflowCAL: 0 exhaustFanAirflowCAL: 0 supplyFanSpeed: 0 exhaustFanSpeed: 0 supplyFanAirflowSet: 0 exhaustFanAirflowSet: 0 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 0 supplyFanSpeed200: 2.5 exhaustFanSpeed200: 742.4 airflowTolerance: 170 airflowCalibrationInterval: 0 timeToCalibration: 170
ZitatoutsideTemp: 21.3 flowTemp: 31.7 returnTemp: 30.1 hotGasTemp: 63.8 dhwTemp: 50.9 flowTempHC2: 0 evaporatorTemp: 19.9 condenserTemp: 32.6 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage2: 0 boosterStage3: n.a. boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 57 inputVentilatorPower: 57 mainVentilatorPower: 0 outputVentilatorSpeed: 30 inputVentilatorSpeed: 26 mainVentilatorSpeed: 0 outsideTempFiltered: 21.6 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 93.6 insideTemp: 0insideTemp is 0, because I have no inside temperature measurement
ZitatoutsideTemp: 21.2 x08: FF4D returnTemp: 30.2 integralHeat: 0 flowTemp: 31.7 heatSetTemp: 23.7 heatTemp: 30.6 seasonMode: summer integralSwitch: 100 hcOpMode: normal roomSetTemp: 1459.2 x60: 5.7 x64: 0000 insideTempRC: 0 x72: 0200 x76: 0000 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0The "x08: FF4D" looks strange here, as well as the "normal roomSetTemp: 1459.2" and following 3 parameters ("x64", "x72", and "x76"), at least I wonder about these parameters' names. Do they mean parameters P64, P72, and P76?
ZitatoutsideTemp: 21.2 returnTemp: 30.2 vorlaufTemp: 0 heatSetTemp: 20.6 heatTemp: 30.2 stellgroesse: -100 seasonMode: summer hcOpMode: normalI have no HC2, but nevertheless these values are shown. Is that ok? (I mean THZ module testing-wise)
ZitatoperatingHours1: 180 operatingHours2: 182 heatingHours: 23156 DHWhours: 10201 coolingHours: 0The "heatingHours" in reality is much larger (>10 years of use), but maybe that is because of technical repair with electricity switched off a while ago by an SE technician.
ZitatopMode: automatic ProgStateHC: normal ProgStateDHW: normal ProgStateFAN: setback BaseTimeAP0: 10926 StatusAP0: 0 StartTimeAP0: 0 EndTimeAP0: 0
ZitatcollectorTemp: 93.6 dhwTemp: 50.9 flowTemp: 31.7 edSolPump: 0 out: 0004 status: CCNote that I have no collectors connected with my THZ.
ZitatuserSetFanStage: 0 userSetFanRemainingTime: 0 lastErrors:
ZitatWeekday: Sunday pClockHour: 12 pClockMinutes: 11 Sec: 59 pClockYear: 20 pClockMonth: 6 pClockDay: 14
Zitat#Sun Jun 14 12:32:06 2020
set Mythz p01-p12 p01RoomTempDay: 21 p02RoomTempNight: 20 p03RoomTempStandby: 10 p04DHWsetTempDay: 48 p05DHWsetTempNight: 48 p06DHWsetTempStandby: 10 p07FanStageDay: 1 p08FanStageNight: 3 p09FanStageStandby: 2 p10HCTempManual: 35 p11DHWsetTempManual: 45 p12FanStageManual: 2
set Mythz p01RoomTempDay 21 °C
set Mythz p01RoomTempDayHC2 4E0C08FC02BC7F00 °C
set Mythz p02RoomTempNight 20 °C
set Mythz p03RoomTempStandby 10 °C
set Mythz p03RoomTempStandbyHC1 700B08FC02BC1F00000003206000 °C
set Mythz p03RoomTempStandbyHC1SummerMode 700B08FC02BC1F00000003206000 °C
set Mythz p04DHWsetDayTemp 0A0A010064009600C8003C °C
set Mythz p04DHWsetTempDay 48 °C
set Mythz p05DHWsetTempNight 48 °C
set Mythz p06DHWsetStandbyTemp 0A0A010064009600C8003C °C
set Mythz p06DHWsetTempStandby 10 °C
set Mythz p07FanStageDay 1
set Mythz p08FanStageNight 3
set Mythz p09FanStageStandby 2
set Mythz p10HCTempManual 35 °C
set Mythz p11DHWsetTempManual 45 °C
set Mythz p12FanStageManual 2
set Mythz p13GradientHC1 0.4
set Mythz p14LowEndHC1 3 K
set Mythz p15RoomInfluenceHC1 0
set Mythz p16GradientHC2 0.6
set Mythz p17LowEndHC2 0 K
set Mythz p18RoomInfluenceHC2 0
set Mythz p19FlowProportionHC1 30 %
set Mythz p20FlowProportionHC2 100 %
set Mythz p21Hyst1 4 K
set Mythz p22Hyst2 3 K
set Mythz p23Hyst3 3 K
set Mythz p24Hyst4 2 K
set Mythz p25Hyst5 1 K
set Mythz p29HystAsymmetry 2
set Mythz p30integralComponent 100 Kmin
set Mythz p32HystDHW 2 K
set Mythz p33BoosterTimeoutDHW 90 min
set Mythz p34BoosterDHWTempAct 0A0A010064009600C8003C °C
set Mythz p34TempLimitBoostDHW -5 °C
set Mythz p35PasteurisationInterval 30 Days
set Mythz p36DHWMaxTime 0A0A010064009600C8003C
set Mythz p36MaxDurationDHWLoad 12 h
set Mythz p37Fanstage1AirflowInlet 0 m3/h
set Mythz p38Fanstage2AirflowInlet 100 m3/h
set Mythz p39Fanstage3AirflowInlet 0 m3/h
set Mythz p40Fanstage1AirflowOutlet 135 m3/h
set Mythz p41Fanstage2AirflowOutlet 0 m3/h
set Mythz p42Fanstage3AirflowOutlet 170 m3/h
set Mythz p43UnschedVent3 100 min
set Mythz p44UnschedVent2 135 min
set Mythz p45UnschedVent1 170 min
set Mythz p46UnschedVent0 60 min
set Mythz p47CompressorRestartDelay 20 min
set Mythz p48MainFanSpeed 60 %
set Mythz p49SummerModeTemp 17 °C
set Mythz p50SummerModeHysteresis 2 K
set Mythz p54MinPumpCycles 1 /Day
set Mythz p55MaxPumpCycles 25 /Day
set Mythz p56OutTempMaxPumpCycles 15 °C
set Mythz p57OutTempMinPumpCycles 20 °C
set Mythz p58SuppressTempCaptPumpStart 60 s
set Mythz p75PassiveCooling 0
set Mythz p77OutTempFilterTime 1 h
set Mythz p78DualModePoint -1 °C
set Mythz p79BoosterTimeoutHC 20 min
set Mythz p80EnableSolar 0
set Mythz p99FrostProtectionBoost 0A0A010064009600C8003C °C
set Mythz pHeat1 p13GradientHC1: 0.4 p14LowEndHC1: 3 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
set Mythz pHeat2 p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 3 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 1 p27Hyst7: 1 p28Hyst8: 1 p29HystAsymmetry: 2 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 17 p50SummerModeHysteresis: 2 p77OutTempFilterTime: 1 p78DualModePoint: -1 p79BoosterTimeoutHC: 20
set Mythz pHeatProg progHC1StartTime: 23:00 progHC1EndTime: 07:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 0 progHC1Sunday: 0 progHC1Enable: 0 progHC2StartTime: 00:00 progHC2EndTime: 08:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 1 progHC2Sunday: 1 progHC2Enable: 0
set Mythz pHolidayBeginMonth 0A0A010064009600C8003C
set Mythz pHolidayEndDay 0A0A010064009600C8003C
set Mythz progDHWEnable 0
set Mythz progDHWEndTime 07:00
set Mythz progDHWFriday 1
set Mythz progDHWMonday 1
set Mythz progDHWSaturday 0C
set Mythz progDHWStartTime 23:00
set Mythz progDHWSunday 1
set Mythz progDHWThursday 1
set Mythz progDHWTuesday too
set Mythz progDHWWednesday 1
set Mythz progFAN1Enable 1
set Mythz progFAN1EndTime 08:00
set Mythz progFAN1Friday 1
set Mythz progFAN1Monday 1
set Mythz progFAN1Saturday 1
set Mythz progFAN1StartTime 12:00
set Mythz progFAN1Sunday 1
set Mythz progFAN1Thursday 1
set Mythz progFAN1Tuesday 1
set Mythz progFAN1Wednesday 1
set Mythz progFAN2Enable 0
set Mythz progFAN2EndTime 07:30
set Mythz progFAN2Friday 0
set Mythz progFAN2Monday 0
set Mythz progFAN2Saturday 1
set Mythz progFAN2StartTime 22:00
set Mythz progFAN2Sunday 1
set Mythz progFAN2Thursday 0
set Mythz progFAN2Tuesday 0
set Mythz progFAN2Wednesday 0
set Mythz progHC1Enable 0
set Mythz progHC1EndTime 07:00
set Mythz progHC1Friday 1
set Mythz progHC1Monday 1
set Mythz progHC1Saturday 0
set Mythz progHC1StartTime 23:00
set Mythz progHC1Sunday 0
set Mythz progHC1Thursday 1
set Mythz progHC1Tuesday 1
set Mythz progHC1Wednesday 1
set Mythz progHC2Enable 0
set Mythz progHC2EndTime 08:00
set Mythz progHC2Friday 0
set Mythz progHC2Monday 0
set Mythz progHC2Saturday 1
set Mythz progHC2StartTime 00:00
set Mythz progHC2Sunday 1
set Mythz progHC2Thursday 0
set Mythz progHC2Tuesday 0
set Mythz progHC2Wednesday 0
Zitat
set Mythz programDHW_Fr_1 0A0A010064009600C8003C
set Mythz programDHW_Mo-Fr_0 0A0A010064009600C8003C
set Mythz programDHW_Mo-So_0 0A0A010064009600C8003C
set Mythz programDHW_Sa-So_0 0A0A010064009600C8003C
set Mythz programDHW_Sa_1 0A0A010064009600C8003C
set Mythz programDHW_So_0 0A0A010064009600C8003C
set Mythz programDHW_Tu_0 0A0A010064009600C8003C
set Mythz programDHW_We_0 0A0A010064009600C8003C
set Mythz programDHW_We_2 0A0A010064009600C8003C
set Mythz programFan_Fr_0 0A0A010064009600C8003C
set Mythz programFan_Fr_2 0A0A010064009600C8003C
set Mythz programFan_Mo-Fr_2 0A0A010064009600C8003C
set Mythz programFan_Mo-So_1 0A0A010064009600C8003C
set Mythz programFan_Mo-So_2 0A0A010064009600C8003C
set Mythz programFan_Mo_0 0A0A010064009600C8003C
set Mythz programFan_Mo_2 0A0A010064009600C8003C
set Mythz programFan_Sa-So_2 0A0A010064009600C8003C
set Mythz programFan_Sa_2 0A0A010064009600C8003C
set Mythz programFan_So_1 0A0A010064009600C8003C
set Mythz programFan_Th_0 0A0A010064009600C8003C
set Mythz programFan_Th_2 0A0A010064009600C8003C
set Mythz programFan_Tu_1 0A0A010064009600C8003C
set Mythz programFan_We_1 0A0A010064009600C8003C
set Mythz programHC1_Fr_1 700B08FC02BC1F00000003206000
set Mythz programHC1_Mo-Fr_0 700B08FC02BC1F00000003206000
set Mythz programHC1_Mo-So_0 700B08FC02BC1F00000003206000
set Mythz programHC1_Sa-So_0 700B08FC02BC1F00000003206000
set Mythz programHC1_Sa_1 700B08FC02BC1F00000003206000
set Mythz programHC1_So_0 700B08FC02BC1F00000003206000
set Mythz programHC1_Th_1 700B08FC02BC1F00000003206000
set Mythz programHC1_Tu_0 700B08FC02BC1F00000003206000
set Mythz programHC1_We_2 700B08FC02BC1F00000003206000
set Mythz programHC2_Fr_0 4E0C08FC02BC7F00
set Mythz programHC2_Fr_2 4E0C08FC02BC7F00
set Mythz programHC2_Mo-Fr_2 4E0C08FC02BC7F00
set Mythz programHC2_Mo-So_1 4E0C08FC02BC7F00
set Mythz programHC2_Mo-So_2 4E0C08FC02BC7F00
set Mythz programHC2_Mo_2 4E0C08FC02BC7F00
set Mythz programHC2_Sa-So_2 4E0C08FC02BC7F00
set Mythz programHC2_Sa_2 4E0C08FC02BC7F00
set Mythz programHC2_So_1 4E0C08FC02BC7F00
set Mythz programHC2_Th_0 4E0C08FC02BC7F00
set Mythz programHC2_Th_2 4E0C08FC02BC7F00
set Mythz programHC2_Tu_1 4E0C08FC02BC7F00
set Mythz programHC2_We_1 4E0C08FC02BC7F00
sBoostDHWTotal
362 kWh
sBoostHCTotal
2335 kWh
sControl
heatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 00 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 00 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
sDHW
dhwTemp: 45.9 outsideTemp: 18.4 dhwSetTemp: 41 compBlockTime: 0 out: 0004 heatBlockTime: 2775 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: normal x36: CE70
sDisplay
switchingProg: 1 compressor: 0 heatingHC: 0 heatingDHW: 0 boosterHC: 0 filterBoth: 0 ventStage: 0 pumpHC: 0 defrost: 0 filterUp: 0 filterDown: 0 cooling: 0 service: 0
sElectrDHWDay
2632 Wh
sElectrDHWTotal
5870 kWh
sElectrHCDay
666 Wh
sElectrHCTotal
17623 kWh
sFan
inputFanSpeed: 24 outputFanSpeed: 23 pFanstageXAirflowInlet: 50 pFanstageXAirflowOutlet: 63 inputFanPower: 17 outputFanPower: 21
sFirmware
version: 04.19
sFirmware-Id
HW: 73 SW: 2.08 Date: MAR 9 2011
sGlobal
outsideTemp: 15.2 flowTemp: 25.9 returnTemp: 25 hotGasTemp: 49 dhwTemp: 45.5 flowTempHC2: -60 evaporatorTemp: 21.9 condenserTemp: 26.1 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 0 outputVentilatorSpeed: 22 inputVentilatorSpeed: 24 mainVentilatorSpeed: 0 outside_tempFiltered: 15.2 relHumidity: 42 dewPoint: 0 P_Nd: 8.33 P_Hd: 11.59 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: 24.3 windowOpen: 0 quickAirVent: 0
sHC1
outsideTemp: 15.3 x08: -49.9 returnTemp: 25 integralHeat: 0 flowTemp: 26 heatSetTemp: 8 heatTemp: 25.3 seasonMode: summer integralSwitch: 250 hcOpMode: normal roomSetTemp: 23 x60: 0 x64: 563.2 insideTempRC: 23.9 x72: 0 x76: 2.2 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0
sHC2
outsideTemp: 18.5 returnTemp: 24.8 vorlaufTemp: -60 heatSetTemp: 8 heatTemp: 24.8 stellgroesse: -100 seasonMode: summer hcOpMode: setback
2020-06-13 09:50:35
sHeatDHWDay
6086 Wh
sHeatDHWTotal
16939 kWh
sHeatHCDay
59 Wh
sHeatHCTotal
63787 kWh
sHeatRecoveredDay
1976 Wh
sHeatRecoveredTotal
17541 kWh
sHistory
compressorHeating: 14699 compressorCooling: 0 compressorDHW: 3813 boosterDHW: 31 boosterHeating: 562
sLast10errors
number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
sSol
collectorTemp: -60 dhwTemp: 45.9 flowTemp: 25.3 edSolPump: 0 out: 0004 status: 11
sTimedate
Weekday: Saturday Hour: 9 Min: 52 Sec: 28 Date: 2020/6/13
Zitatget sHC1:
Zitat
outsideTemp: 21.2 x08: FF4D returnTemp: 30.2 integralHeat: 0 flowTemp: 31.7 heatSetTemp: 23.7 heatTemp: 30.6 seasonMode: summer integralSwitch: 100 hcOpMode: normal roomSetTemp: 1459.2 x60: 5.7 x64: 0000 insideTempRC: 0 x72: 0200 x76: 0000 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0
The "x08: FF4D" looks strange here, as well as the "normal roomSetTemp: 1459.2" and following 3 parameters ("x64", "x72", and "x76"), at least I wonder about these parameters' names. Do they mean parameters P64, P72, and P76?
"F4hc1" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "hex2int", 10],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" seasonMode: ", 38, 2, "somwinmode", 1], #[" x40: ", 40, 4, "hex2int", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1], [" hcOpMode: ", 48, 2, "opmodehc", 1],
#[" x52: ", 52, 4, "hex2int", 1],
[" roomSetTemp: ", 56, 4, "hex2int", 10], [" x60: ", 60, 4, "hex2int", 10],
[" x64: ", 64, 4, "hex2int", 10], [" insideTempRC: ", 68, 4, "hex2int", 10],
[" x72: ", 72, 4, "hex2int", 10], [" x76: ", 76, 4, "hex2int", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
[" hcBoosterStage: ", 36, 2, "hex", 1]
],
Zitat von: andre.k am 23 August 2017, 11:17:02These 2 attributes do not seem to "stick" when the fhem service is restarted. Is this intended, or do I have some problem here?
Das Feature wird über zwei Attribute im Modul THZ gesteuert:
1. Das Atrribut "nonblocking" schaltet das Feature ein/aus (1=ein, 0=aus). Standartmäßig, d.h, wenn das Attribut nicht vorhanden ist, ist das Feature ausgeschaltet. Man hat also dann das gewohnte Verhalten.
2. Das Attritut "simpleReadTimeout" legt die Zeit fest, die Maximal auf eine Antwort von der THZ geartet wird. Hier kann man den optimalen Wert ausprobieren. Je höher der Wert, desto weniger Fehlermeldungen sollten im Logfile erscheinen. Bei mir habe ich den Wert auf 8 sec. gesetzt. Hinweis: Die Wartezeit wir intern begrenzt, falls das nonblocking nicht auf 1 gesetzt wurde. Damit wird verhindert, dass THZ blockiert.
Zitat2020.06.19 13:01:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 982.
2020.06.19 13:01:57 3: opened||||||
2020.06.19 13:01:58 3: telnetForBlockingFn_1592564517: port 44375 opened
2020.06.19 13:01:58 3: [Mythz] THZ_GetRefresh(sGlobal) BlockingCall started
2020.06.19 13:01:58 3: Opening Mythz device /dev/ttyUSB0
2020.06.19 13:01:58 3: Setting Mythz serial parameters to 9600,8,N,1
2020.06.19 13:01:58 3: Mythz device opened
2020.06.19 13:01:58 3: Setting Mythz serial parameters to 9600,8,N,1
2020.06.19 13:01:58 1: /dev/ttyUSB0 reappeared (Mythz)
Zitat
sub THZ_GetRefresh($) {
my ($par)=@_;
my $hash=$par->{hash};
my $command=$par->{command};
my $name =$hash->{NAME};
my $interval = AttrVal($name, ("interval_".$command), 0);
if (AttrVal($name, "nonblocking" , "0") =~ /1/ ) {
if (!(exists($hash->{helper}{RUNNING_PID}))) {
DevIo_CloseDev($hash); #close device in parent process
#$hash->{STATE}="disconnected";
my $bctimeout = (AttrVal($name, "simpleReadTimeout", "0.5"))*2 +1;
my $dev = $hash->{DeviceName};
#$hash->{connection} =$hash->{STATE} ."||". $hash->{USBDev} ."||". $hash->{TCPDev} ."||". $hash->{conn} ."||". $hash->{FD} ."||". $selectlist{"$name.$dev"} ;
$hash->{connection} =$hash->{STATE} ."||". $hash->{TCPDev} ."||". $hash->{FD} ."||". $selectlist{"$name.$dev"} ;
Log3 $hash, 3, $hash->{connection};
$hash->{helper}{RUNNING_PID} = BlockingCall("THZ_GetNB", $name."|".$command, "THZ_GetNBDone", $bctimeout, "THZ_GetNBAbort", $hash);
Log3 $hash, 3, "[$name] THZ_GetRefresh($command) BlockingCall started";
}
else {
Log3 $hash, 3, "[$name] THZ_GetRefresh($command) rescheduled (Blocking Call is still running)";
InternalTimer(gettimeofday() + 2, "THZ_GetRefresh", $par, 1);
return;
}
}
else {
THZ_Get($hash, $hash->{NAME}, $command) if ($hash->{STATE} ne "disconnected");
}
if (($interval) and ($hash->{STATE} ne "disconnected")) {
$interval = 60 if ($interval < 60); #do not allow intervall <60 sec
InternalTimer(gettimeofday()+ $interval, "THZ_GetRefresh", $par, 1) ;
}
if ($command =~ "sFirmware") { # model summary for statistics
my $sFirmwareId = join('', (split(/ |:/, ReadingsVal($name,"sFirmware-Id"," : : : ")))[0..6]);
my $sFirmware= (split(/ /, ReadingsVal($name,"sFirmware"," ")))[1];
$hash->{model}= sprintf("%.5s%s%s", AttrVal($name,"firmware","n.a.")."______", $sFirmware, $sFirmwareId);
}
return;
}
tail -f /dev/ttyUSB0
Zitat
Example: direct connection
define Mytecalor THZ /dev/ttyUSB0@115200
or network connection (like via ser2net)
define Myremotetecalor THZ 192.168.0.244:2323
define Mythz THZ /dev/ttyUSB0@115200
BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n
2000:telnet:600:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner
DEF /dev/ttyUSB0@9600
DeviceName /dev/ttyUSB0@9600
sudo ./tcp-proxy2.pl 443 friends_server.com:22
sudo ./proxy.pl <port to sniff> localhost:<port of ser2net, in my case 2000>
my $data = uc(unpack('H*', $buffer));
if (length($data) > 20 ) { $data="0100E5F4FFF2004901BAFFDE01D2011401C00001000110100800650200000000DB0000160000ED00000016001003" }
open (MYFILE, '>>data.txt');
print MYFILE ($data );
close (MYFILE);
$buffer= pack('H*', $data);
my $data = uc(unpack('H*', $buffer));
if (length($data) > 20 ) ...
open (MYFILE, '>>data.txt');
print MYFILE ($data );
close (MYFILE);
$buffer= pack('H*', $data);
Zitat von: sunrise am 19 Juni 2020, 22:10:21
Hi immi,
There were hundreds of "too slow" messages in the log, but I am happy to follow your recommendations. "First things first" ;) So I set nonblocking to 0. Do I have to change also simpleReadTimeout (currently set to 8) or just leave it for the time being?
"Windows maschine virtual port":
Do you mean something like this?
https://www.hw-group.com/software/hw-vsp3-virtual-serial-port
I use this on my Windows 10 machine to read/write data via ser2net and a virtual COM port (https://www.virtual-serial-port.org/). Is that what you also mean?
I would put the Perl script on my RPI that also runs the FHEM service and ser2net. Thanks also for the reminder regarding the different ports.
According to this...
https://catonmat.net/perl-tcp-proxy
... the Perl script is run like this (different use case):Code Auswählensudo ./tcp-proxy2.pl 443 friends_server.com:22
Translated to our case, would it be like this?Code Auswählen
sudo ./proxy.pl <port to sniff> localhost:<port of ser2net, in my case 2000>
Sorry, but I am really unsure how this should be done.
A big THANK YOU! :)
Zitat von: immi am 04 August 2020, 10:35:30I really appreciate your work. It's really awsome how it works and how fast additionally found registers are implemented by you.
I implemented the module 00_THZ as transparent representation of tecalor register logic (oxymoron :) ....) and compatible with the standard fhem interfaces.
Zitat von: immi am 04 August 2020, 10:35:30You're absolutely right, that's what I also feel, but I'm happy with any other suggestion that's easier. Nevertheless these attributes need not to be set. You just don't have a benefit from it.
Going back to your solution "attribute messages_sGlobal, by setting it to 5dec which is 0101b": if a newbe cannot manage userreading, will for sure have problems with 0101b....
Zitat von: immi am 04 August 2020, 10:35:301. is what my next approach would have been, but this cannot manage signals that are updated by more than one readings (e.g. outsideTemp)
I see different ways
- creating lots of user-readings and only log the user-readings you want with regex
- with a mix of lots of dummy, some notify, readingsProxy....
- building an abstraction layer on top of 00_THZ (additional module like heatpump_interface inspiring from readingproxy...)
- userreadings and logfiles should be extended with a mapping file; in the file you can map the readings with the messages in a readable format; a standard mapping file for some tecalors could be distibuted automatically with fhem
- same as 4 but extending readingsProxy; a small api (to manage the mapping) can be impemented as second step.
The most elegant and consistent solution would be 5.
But we have to talk to Andre/justme1968 (manteiner of readingproxy)
Zitat von: TheTrumpeter am 04 August 2020, 11:56:04well you just have to decide which one you trust and log and which one you ignore.
1. is what my next approach would have been, but this cannot manage signals that are updated by more than one readings (e.g. outsideTemp)
Zitat von: immi am 09 August 2020, 07:43:21Seems that my initial request would be the best solution for some of the guys there...
interesting discussion here
https://forum.fhem.de/index.php/topic,113361.0.html (https://forum.fhem.de/index.php/topic,113361.0.html)
Zitat von: TheTrumpeter am 09 August 2020, 09:24:51therefore there is a discussion, and as long as it is polite, I always appreciate others opinions.
Seems that my initial request would be the best solution for some of the guys there...
{THZ_Val("sGlobal",5)}
{THZ_Val("sGlobal","returnTemp")}
{(split ' ',ReadingsVal("Mythz","sGlobal"))[5]}
attr Mythz userReadings insideSetTemp:sHC1.* {(split ' ',ReadingsVal("Mythz","sHC1",0))[21]}, insideTemp:sHC1.* {(split ' ',ReadingsVal("Mythz","sHC1",0))[27]}, OutsideTemp:sGlobal.* {(split ' ',ReadingsVal("Mythz","sGlobal",0))[1]}
attr Mythz userReadings insideSetTemp:sHC1.* {THZ_Val("sHC1",21)}, insideTemp:sHC1.* {THZ_Val("sHC1",27)}, OutsideTemp:sGlobal.* {THZ_Val("sGlobal",1)}
Zitat von: immi am 09 August 2020, 17:29:25Thank you.
new version 0.186 committed.
implemented new helper function THZ_Val("register", position or "subregistername", "defaultval")
the following 3 commands are nearly equivalentCode Auswählen{THZ_Val("sGlobal",5)}
{THZ_Val("sGlobal","returnTemp")}
{(split ' ',ReadingsVal("Mythz","sGlobal"))[5]}
Zitat von: TheTrumpeter am 10 August 2020, 12:20:09you are welcome, but please test it carefully.
Thank you.
ZitatMaybe a little: the code snippets will be much easier to read.
Unfortunately it does not help with regard to sharing of code snippets.
ZitatThis is not the final solution: 0.186 is still beta :)
So I will continue with my "abstraction layer"; I've already started to define the message-names.
Does anybody know a good dictionary for technical abbreviations? Then I would define the message-names based on that; otherwise I will reuse something that was not intended to be used for heatpumps.
Zitat von: Heiner am 12 August 2020, 09:21:20If you read the manual you would come to the impression that it should already work as long as you have a remote-control. Unfortunately it does not, at least not for my FW-version. Istead of taking the real inside-temperature it takes the desired WINTER temperature!
I have now 35 Degrees outside in overnight Temp goes down to about 22.
Inside I have in the evening 27, Target would be 20.
Zitat von: TheTrumpeter am 12 August 2020, 10:27:06I have never noticed the bug for my firmware. Nevertheless since years, I keep the same "set temp" for winter and sommer because, it happen often that you go in wintermode also during nice clear summernights.
If you read the manual you would come to the impression that it should already work as long as you have a remote-control. Unfortunately it does not, at least not for my FW-version. Istead of taking the real inside-temperature it takes the desired WINTER temperature!
Zitat von: immi am 13 August 2020, 17:39:01Do you use passive cooling? Otherwise you wouldn't notice.
I have never noticed the bug for my firmware.
Zitat von: immi am 13 August 2020, 17:39:01I think besides that parameter you also use a very short filter time. Otherwise that won't happen the same day passive-cooling is released.
Nevertheless since years, I keep the same "set temp" for winter and sommer because, it happen often that you go in wintermode also during nice clear summernights.
my p49SummerModeTemp is 16°C+-2.5
e.g. see attached
Zitat von: TheTrumpeter am 13 August 2020, 17:55:35I used that between 2012 and 2014; but I cannot notice it anyhow now, because I keep the same "set temp" for winter and sommer
Do you use passive cooling? Otherwise you wouldn't notice.
Zitattrue
I think besides that parameter you also use a very short filter time. Otherwise that won't happen the same day passive-cooling is released.
Zitatexactly what I am doing since years, directly from fhem; I also have a doif allerting me if it changes to automatic (e.g. after a blackout).
You could switch to DHW-mode during summer to avoid any unwanted heating,
ZitatNot true; I trust my code.
you do not want to change a single parameter via FHEM to avoid getting a cold house or cold water by not detecting a FHEM-malfunction, correct?
Zitatdefine cooling at *05:00 {if (ReadingsVal("Heizung", "AusenTemp", "") >= 17) {fhem("set Heizung p99startUnschedVent 3")}}
Zitat von: Heiner am 18 August 2020, 07:34:21Hi Heiner
Erwartet fhem eventuell ein Dezimal komma statt Punkt? wie bekomme ich das geloesst?
Die zweite Meldung ist vermutlich weil in der dfefinition 2 mal der Befehl (set Mythz p99startUnschedVent 3) steht, oder?
define Heizung THZ /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0@115200
setuuid Heizung 5c7be3ba-f33f-b5c0-c910-ec9836b0a3b4fb7e
attr Heizung event-on-change-reading .*
attr Heizung interval_sDHW 300
attr Heizung interval_sDisplay 300
attr Heizung interval_sElectrDHWDay 86400
attr Heizung interval_sElectrHCDay 86400
attr Heizung interval_sGlobal 300
attr Heizung interval_sHC1 300
attr Heizung interval_sHeatDHWDay 86400
attr Heizung interval_sHeatHCDay 86400
attr Heizung interval_sHeatRecoveredDay 86400
attr Heizung interval_sHistory 86400
attr Heizung room Heizung
attr Heizung userReadings AussenTemp {(split ' ',ReadingsVal("Heizung","sGlobal",0))[1]},VorlaufTemp {(split ' ',ReadingsVal("Heizung","sGlobal",0))[3]}, RuecklaufTemp {(split ' ',ReadingsVal("Heizung","sGlobal",0))[5]}, WWTemp {(split ' ',ReadingsVal("Heizung","sGlobal",0))[9]}, COP {sprintf("%.2f", (ReadingsNum("Heizung","sHeatHCDay",1) + ReadingsNum("Heizung","sHeatDHWDay",1)) / (ReadingsNum("Heizung","sElectrHCDay",1) + ReadingsNum("Heizung","sElectrDHWDay",1)))}, sD_outsideTemp {(split ' ',ReadingsVal("Heizung","sHC1",0))[1]}, sD_flowTemp {(split ' ',ReadingsVal("Heizung","sHC1",0))[9]}, sD_returnTemp {(split ' ',ReadingsVal("Heizung","sHC1",0))[5]}, sD_insideTempRC {(split ' ',ReadingsVal("Heizung","sHC1",0))[27]}, sD_sFlowRate {(split ' ',ReadingsVal("Heizung","sFlowRate",0))[0]}, sD_dhw_temp {(split ' ',ReadingsVal("Heizung","sDHW",0))[1]}, sD_switchingProg {(split ' ',ReadingsVal("Heizung","sDisplay",0))[1]}, sD_compressor {(split ' ',ReadingsVal("Heizung","sDisplay",0))[3]}, sD_heatingHC {(split ' ',ReadingsVal("Heizung","sDisplay",0))[5]}, sD_heatingDHW {(split ' ',ReadingsVal("Heizung","sDisplay",0))[7]}, sD_boosterHC {(split ' ',ReadingsVal("Heizung","sDisplay",0))[9]}, sD_filterBoth {(split ' ',ReadingsVal("Heizung","sDisplay",0))[11]}, sD_ventStage {(split ' ',ReadingsVal("Heizung","sDisplay",0))[13]}, sD_pumpHC {(split ' ',ReadingsVal("Heizung","sDisplay",0))[15]}, sD_defrost {(split ' ',ReadingsVal("Heizung","sDisplay",0))[17]}, sD_filterUp {(split ' ',ReadingsVal("Heizung","sDisplay",0))[19]}, sD_filterDown {(split ' ',ReadingsVal("Heizung","sDisplay",0))[21]}, roomSetTemp {(split ' ',ReadingsVal("Heizung","sHC1",0))[21]},dhw_set_temp {(split ' ',ReadingsVal("Heizung","sDHW",0))[5]}
define cooling DOIF ([04:00-05:00] and [Heizung:AussenTemp] > 17 ) (set Mythz p99startUnschedVent 3) (set Mythz p99startUnschedVent 3)
attr cooling cmdpause 7200
attr cooling devStateIcon cmd_1:vent_ventilation_level_manual_m cmd_2:vent_ventilation_control
attr cooling do always
attr cooling room Heizung
attr cooling wait 3,30
attr cooling verbose 5
define coolingLog FileLog ./log/cooling-%Y.log cooling
attr coolingLog logtype text
attr coolingLog room Heizung
Zitat von: Heiner am 12 August 2020, 16:23:59I have now checked if it works, it does: https://forum.fhem.de/index.php/topic,33452.msg1079209.html#msg1079209
but it seems the passive cooling function as such in the system, can not be adjusted to work on hot nights as well.
Zitat2020.08.23 18:58:21 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 disconnected, waiting to reappear (Heizung)
2020.08.23 18:58:21 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FE ->
2020.08.23 18:58:22 3: Setting Heizung serial parameters to 115200,8,N,1
2020.08.23 18:58:22 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 reappeared (Heizung)
2020.08.23 19:00:01 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 disconnected, waiting to reappear (Heizung)
2020.08.23 19:00:01 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D82 ->
2020.08.23 19:00:03 3: Setting Heizung serial parameters to 115200,8,N,1
2020.08.23 19:00:03 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 reappeared (Heizung)
Zitat von: Heiner am 24 August 2020, 09:46:43what do you mean by no syncing?
I installed 0.188 and reboot already twice but no effect, still no syncing....
attr Mythz simpleReadTimeout 1
Zitat2020.08.24 14:44:41 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 disconnected, waiting to reappear (Heizung)
2020.08.24 14:44:41 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0B1441 ->
2020.08.24 14:44:41 3: Setting Heizung serial parameters to 115200,8,N,1
2020.08.24 14:44:41 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 reappeared (Heizung)
Zitat von: Heiner am 24 August 2020, 14:48:50Hi Heiner
Hi Immi,
yes I mean those messages which effectively shows me not to get updated values - hence heating is running but not "in sync" with fhem.
I add the attribute but no effect. I shutdown restart but no effect.
attr Mythz simpleReadTimeout 2
Zitat0B1460 -> #73
0A0925 -> #66
0A0611 -> #56
0B010E -> #46
D1 -> #34
0A05B8 -> #16
F3 -> #15
0A057E -> #13
0A05C4 -> #10
0A1DA1 -> #8
0A056C -> #7
0A05A2 -> #4
0A057D -> #4
0A05C2 -> #3
0B1462 -> #2
0B1461 -> #3
0A1780 -> #2
0A0924 -> #1
0A058C -> #1
0C1560 -> #1
0A0588 -> #2
0C0005 -> #1
0A1790 -> #1
FB -> #1
Zitat2020.08.25 04:10:00 3: THZ_Set: Error msg: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0180700A05DD00031003 ->
2020.08.25 04:10:00 2: cooling: set Heizung p99startUnschedVent 3: 0180700A05DD00031003---THZ_Set: Error msg: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0180700A05DD00031003 ->
2020.08.25 04:10:00 3: Setting Heizung serial parameters to 115200,8,N,1
2020.08.25 04:10:00 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 reappeared (Heizung)
2020.08.25 04:10:30 2: cooling: set Heizung p99startUnschedVent 3: 3
2020.08.25 04:11:42 1: /dev/serial/by-id/usb-ftdi_usb_serial_converter_ftBNKGX5-if00-port0 disconnected, waiting to reappear (Heizung)
attr Mythz simpleReadTimeout 2
select(undef, undef, undef, 0.1);
Zitat von: Heiner am 25 August 2020, 16:35:24this is a very good hint; I think I got it now; sorry it took so long
then shutdown restart and.... the problem is a little different now not it is @ step1 !!!
Zitat von: Heiner am 26 August 2020, 14:45:47yes remove it.
shall I now remove the attr SimpleReadTimeout which is set to 2 still?
2020.08.26 12:55:56 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/00_THZ.pm line 1064.
2020.08.26 12:55:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 1064.
msg THZ_Set: error reading register: 'THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0'
0180A517006400640064012C012C0064010000015E01C2001003---THZ_Set: Error msg: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step2 -- 0180A517006400640064012C012C0064010000015E01C2001003 ->
msg THZ_Set: error reading register: 'THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 '
attr Mythz simpleReadTimeout 1
attr Mythz simpleReadTimeout 2
2020.08.27 11:28:10 1: PERL WARNING: Use of uninitialized value $parts[1] in hash element at ./FHEM/95_Dashboard.pm line 754.
2020.08.27 11:28:10 1: PERL WARNING: Use of uninitialized value $groupname in hash element at ./FHEM/95_Dashboard.pm line 775.
2020.08.27 11:29:44 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1427.
2020.08.27 11:29:44 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1455.
2020.08.27 11:29:46 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/00_THZ.pm line 1064.
2020.08.27 11:29:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/00_THZ.pm line 1064.
Zitat von: börni am 27 August 2020, 12:18:32Hi Fabian
Hello immi,
It looks that there are some improvements :D
But still some messages/warnings in the log file:
Currently I don't see a need for sending you a complete log-file. If you would like to have I will sent it anyway.
Thanks and best Regards
Fabian
Zitat von: Stonemuc am 06 September 2020, 20:31:02Not for me:
sHC1 x72 is the dhwTemp
Zitat von: TheTrumpeter am 08 September 2020, 21:30:40
Not for me:
sDHW: dhwTemp: 32 outsideTemp: 14 dhwSetTemp: 39 compBlockTime: 0 out: 0000 heatBlockTime: 0 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: setback x36: 496C
sHC1: outsideTemp: 13.9 x08: 31.5 returnTemp: 23.9 integralHeat: 170 flowTemp: 26.4 heatSetTemp: 8 heatTemp: 24.6 seasonMode: summer integralSwitch: 220 hcOpMode: setback roomSetTemp: 22.3 x60: 0 x64: 691.2 insideTempRC: 24.2 x72: 51.2 x76: 2.7 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0
Zitat von: TheTrumpeter am 10 August 2020, 12:20:09As I have not yet proceeded in defining the unified message-names, I'll just post the rest of the code.
So I will continue with my "abstraction layer"; I've already started to define the message-names.
Does anybody know a good dictionary for technical abbreviations? Then I would define the message-names based on that; otherwise I will reuse something that was not intended to be used for heatpumps.
define MythzDummy as dummy
attr MythzDummy event-on-change-reading .*
attr MythzDummy event-on-update-reading $
setreading MythzDummy xMsgConfig_sGlobal 1110000000001101111000000011111111011110010111
setreading MythzDummy xMsgConfig_sHC1 1011101111100100000
define MythzDummy_notify notify Mythz:s.*:.* {THZ_SplitReadings($NAME,"Dummy",$EVENT,1)}
define MythzDummy_notify notify Mythz:s.*:.* {THZ_SplitReadings($NAME,"Dummy",$EVENT,0)}
sub THZ_SplitReadings ($$$$)
{
use feature "switch";
my ($Device, $Suffix, $Event, $UnifiedMsgNames) = @_;
my $Device_dmy = $Device.$Suffix;
my @Reading = split(' ', $Event);
chop($Reading[0]); #cut ":" after the name of the event
my $ConfigAttributeName = "xMsgConfig_".$Reading[0];
my $ConfigAttribute = ReadingsNum ("$Device_dmy", "$ConfigAttributeName", "");
if (substr($Reading[0], 0, 1) eq "s")
{
fhem ("setreading $Device_dmy $Reading[0] $Event");
}
if ($UnifiedMsgNames)
{
my @sGlobalMsgNames = ( "AmbAir_t", #OutsideTemp
"HtPmpWtrDsHC1_t", #FlowTempHC1
"HtPmpWtrUsHC1_t", #ReturnTempHC
"HtPmpHotGas_t", #HotgasTemp
"HtPmpDHW_t", #DHWTemp
"HtPmpWtrDsHC2_t", #FlowTempHC2
"HtPmpEvapr_t", #EvaporatorTemp
"HtPmpCndsr_t", #CondensorTemp
"HtPmpMxrOpen_st", #MixerOpen
"HtPmpMxrClsd_st", #MixerClosed
"HtPmpHtPipeVlv_st", #HeatPipeValve
"HtPmpDvtrVlv_st", #DiverterValve
"HtPmpDHWPmp_st", #DHWPump
"HtPmpHC1Pmp_st", #HC1Pump
"HtPmpSlrPmp_st", #SolarPump
"HtPmpCmpr_st", #Compressor
"HtPmpBstr3_st", #BoosterStage3
"HtPmpBstr2_st", #BoosterStage2
"HtPmpBstr1_st", #BoosterStage1
"HtPmpHiPSnsr_st", #HighPressureSensor
"HtPmpLoPSnsr_st", #LowPressureSensor
"HtPmpEvapIce_st", #EvaporatorIceMonitor
"HtPmpSgnlAnode_st", #SignalAnode
"HtPmpEVURels_st", #EVURelease
"HtPmpOvenFrplce_st", #OvenFireplace
"HtPmpSTB_st", #STB
"VentOutFanPwr_perc", #OutputFanPower
"VentInFanPwr_perc", #InputFanPower
"HtPmpMainFanPwr_perc", #MainFanPower
"VentOutFanSpd_n", #OutputFanSpeed
"VentInFanSpd_n", #InputFanSpeed
"HtPmpMainFanSpd_n", #MainFanSpeed
"AmbAirFild_t", #OutsideTempFlt
"InsdAirHum_perc", #RelHumidity
"InsdDew_t", #DewPoint
"msgPressure_LP", #
"msgPressure_HP", #
"HtPmpPwrActTherm_pwr", #PowerAct_Qc
"HtPmpPwrActElt_pwr", #PowerAct_Qel
"HtPmpCll_t", #CollectorTemp
"InsdAir_t", #InsideTemp
"VentWinOpn_st", #WindowOpen
"VentQuickVent_st", #QuickAirVent
"HtPmpFlowRate", #FlowRate
"HtPmpWtr_p", #PressureHC1
"VentOutAirHum_perc"); #HumidityAirOut
my @sHC1MsgNames = ( "AmbAir_t", #OutsideTemp
"HC1X08",
"HtPmpWtrUsHC1_t", #ReturnTempHC
"msgIntegralHeatHC1", #IntegralHeatHC1
"msgFlowTempHC1", #FlowTempHC1
"msgHeatSetTempHC1", #HeatSetTempHC1
"msgHeatTempHC1", #HeatTempHC1
"msgSeasonModeHC1", #SeasonModeHC1
"msgIntegralSwitchHC1", #IntegralSwitchHC1
"msgOpModeHC1", #OpModeHC1
"msgRoomSetTempHC1", #RoomSetTempHC1
"HC1X60",
"HC1X64",
"msgInsideTempRC", #InsideTempRC
"HC1X72",
"HC1X76",
"msgOnHysteresisNoHC1", #OnHysteresisNoHC1
"msgOffHysteresisNoHC1", #OffHysteresisNoHC1
"msgHCBoosterStageHC1"); #HCBoosterStageHC1
my @ReadingNames = ();
given($Reading[0])
{
when ("sGlobal") {@ReadingNames = @sGlobalMsgNames;}
when ("sHC1") {@ReadingNames = @sHC1MsgNames;}
default {}
}
for (my $i = 0; $i <= @ReadingNames; $i++)
{
if (substr($ConfigAttribute, $i, 1))
{
fhem ("setreading $Device_dmy $ReadingNames[$i] $Reading[$i*2+2]");
}
}
}
else
{
for (my $i = 0; $i <= @Reading/2 - 1; $i++)
{
if (substr($ConfigAttribute, $i, 1))
{
chop($Reading[$i*2+1]);
fhem ("setreading $Device_dmy $Reading[$i*2+1] $Reading[$i*2+2]");
}
}
}
}
Zitat von: Stonemuc am 08 September 2020, 22:00:09Nein, die vorhin geposteten Readings waren/sind aktuell. Abgesehen davon, 51,2°C erreicht mein Speicher nie, die Parameter sind so gesetzt, dass bei 46,5°C Schluss ist.
Schau mal in's Timestamp deiner readings...ich glaube deine sDHW Werte stammen vermutlich von der Zeit vor der Erhitzung. Bei mir ist der sDHW Wert aktuell auch von heute morgen und der sHC1 von gerade eben...
Wenn ich beide aktualisiere mit get...sind beide Werte gleich.
Zitat von: TheTrumpeter am 08 September 2020, 22:03:36nice solution: it will give more choice to the users;
As I have not yet proceeded in defining the unified message-names, I'll just post the rest of the code.
attr Mythz userReadings userReadings msgFlowTempHC1:sHC1.* {THZ_Val("sHC1","flowTemp")}, AmbAir_t:sGlobal.* {THZ_Val("sGlobal","outsideTemp")}
define DummyTHZ DOIF
attr DummyTHZ event_Readings \
HC1msgFlowTemp:[Mythz:sHC1:[flowTemp. (-?\d+(\.\d+)?)]], \
HC1returnTemp:[Mythz:sHC1:[returnTemp. (-?\d+(\.\d+)?)]], \
HC1insideTempRC:[Mythz:sHC1:[insideTempRC. (-?\d+(\.\d+)?)]], \
HC1outsideTemp:[Mythz:sHC1:[outsideTemp. (-?\d+(\.\d+)?)]], \
GLOoutsideTemp:[Mythz:sGlobal:[outsideTemp. (-?\d+(\.\d+)?)]], \
GLOdhwTemp:[Mythz:sGlobal:[dhwTemp. (-?\d+(\.\d+)?)]]
define DummyTHZ DOIF ([Mythz:sHC1]) ( \
setreading DummyTHZ HC1msgFlowTemp {(THZ_Val("sHC1","flowTemp"))}, \
setreading DummyTHZ HC1returnTemp {(THZ_Val("sHC1","returnTemp"))}, \
setreading DummyTHZ HC1insideTempRC {(THZ_Val("sHC1","insideTempRC"))}, \
setreading DummyTHZ HC1outsideTemp {(THZ_Val("sHC1","outsideTemp"))} \
) \
DOELSEIF ([Mythz:sGlobal]) ( \
setreading DummyTHZ GLOoutsideTemp {(THZ_Val("sGlobal","outsideTemp"))}, \
setreading DummyTHZ GLOdhwTemp {(THZ_Val("sGlobal","dhwTemp"))} \
)
Zitat von: derhobbit am 03 November 2020, 11:44:33yes
Is there some command to read all registers and maybe find which one changes after manual changing?
[" dewPoint: ", 82, 4, "hex2int", 10], # RelHumidity HK2 (when Bedienteil associated with HC2) ## LeJoke trial additons +++++++++++++++++++ [" x44b2: ", 44, 1, "bit2", 1], # 0 / 1 - 1 when Pumpe HC is on (heat or no heat; 0 when DHW heating) [" x46b3: ", 46, 1, "bit3", 1], # would follow booster 3 - 2 - 1 -> solar active ? # have no Sol Model ... [" x47b0: ", 47, 1, "bit0", 1], # ?? Kondensatpumpe X18-3 oder ??? defrost end ?? 2020-05-18_18:12:58 on for approx 1 hour during maintainance [" x47b1: ", 47, 1, "bit1", 1], # ?? Lüftung Nacht X18-2 ??? # Signal out ? -> Starts w/ "Windows open" signal when additonally "Passivkühlung Fortluft" is set (mainventilator is on w/o compressor) [" x118: ", 118, 4, "hex2int", 10], # Öffnung ExV - Analyse - values 0 when no compressor approx. 20% - 40% // 100% when defrost ? [" x122: ", 122, 4, "raw", 1], # sometimes 300000000 ... [" x126: ", 126, 4, "hex2int", 10], # board xx sensor B12 - WP return [" x130: ", 130, 4, "hex2int", 10], # board xx sensor B11 WP flow ? [" x134: ", 134, 4, "hex2int", 10], # ? board xx sensor Bxx - !Prozesswerte - Kühlungstemperatur [" x138: ", 138, 4, "hex2int", 10], # board xx sensor B08 Wärmepumpe - Verdampferausgang ? [" x142: ", 142, 4, "hex2int", 10], # ?? board xx sensor B14 - Condensor out ? [" x146: ", 146, 4, "raw", 1], # always 0 for me [" x150: ", 150, 4, "raw", 1], #board X4-10 sensor S4 Float switch, bottom panel- Schwimmer Bodenblech = 1 |
command Description example response 0A 05 7C Ofen / Kamin (0=Aus ... 4= Öffner - Überwachung) 0A 05 7D LLWT_MaxTimeDefrost (min) 0A 05 7E LLWT_Abtaubeginnschwelle 0A 05 7F LLWT_DrehzahlFilter (%) F6 unkown & Man Vent stage (3) & RemainTime of manvent (8 min) 00001000030008 |
set attr interval_sFan
Zitat von: willybauss am 29 November 2020, 23:28:10hi willyCode Auswählenset attr interval_sFan
isn't available in pull down menu, so I can't set it to frequent update.
Zitat von: LeJoke am 01 Dezember 2020, 15:07:07Hi LeJoke
firmware is set to 5.39. I saw in the code something like adding an additional delay for 4.39, so I set simpleReadTimeout to 2, but no visible improvement ...
Zitat von: immi am 30 November 2020, 23:58:15Works as expected, thanks!
hi willy
implemented an uploaded in 0.192
I also implemented a small delay at startup untill fhem init is finished
if I did it correctly you should not notice :)
Zitat von: immi am 01 Dezember 2020, 15:42:17
Hi LeJoke
exactly the opposite: raspi4 is faster than expected
can you change line 1546 of 00_THZ.pm? (remember to restart after the change)
from
$count =1; $countmax = 60;
to
$count =1; $countmax = 120;
please tell me, if this fixed your issue
immi
oben: GND / mitte: TX / unten: RX
.
2003:raw:500:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS
define Mythz THZ 192.168.0.111:2003
attr Mythz interval_sGlobal 300
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 120
z_Last_fhem_err THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1D52 ->
2021.02.03 23:21:08 3: Opening Mythz device 192.168.0.111:2003
2021.02.03 23:21:08 3: Mythz device opened
2021.02.03 23:21:08 5: thzversion = 0.193
2021.02.03 23:22:13 5: THZ_Get: Try to get 'programFan_Fr_2'
2021.02.03 23:22:13 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2021.02.03 23:22:13 5: Mythz sending 02
2021.02.03 23:22:13 5: SW: 02
2021.02.03 23:22:13 5: Mythz start Function THZ_ReadAnswer
2021.02.03 23:22:15 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A1$
2
attr Mythz simpleReadTimeout 2
bzw attr Mythz simpleReadTimeout 1
half nicht.ZitatSub-D9 Pin 2 with Mate-N-Lok Pin 1Was dann nach oben oder unten kommt sollte egal sein.
Sub-D9 Pin 3 with Mate-N-Lok Pin 2
Sub-D9 Pin 5 with Mate-N-Lok Pin 3
ZitatInterfaceNotRespondig. Maybe too slow ...klingt nach zu langsamer Antwort, also der ganze Datenpfad hin und zurück insgesamt zu lang. Deshalb die o.g. Tipps.
Zitat von: MSP am 11 Februar 2021, 14:36:56very likely, you just have to find the right register
Dear all,
is there any way to start solar pump of my LWZ403 manually via FHEM, similar to existing function for DHW and HC pump (zPumpDHW/zPumpHC) ?
ZitatProbably it is for safety;
As these pumps stops automatically after few seconds, I assume for safety reasons, it would be good to have a chance to retrigger them automatically for several intervals.
define a60seconds at +*{4}00:00:59 set Mythz PumpHC 1
Zitatvery likely, you just have to find the right register
And as 2nd question, is there a way to restart the THZ controls via FHEM, similar like to push the button inside the HP manually ?
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]}
Zitat von: immi am 20 April 2021, 20:34:24Didn't want to bring that topic, but as you started with it... 8)
Also in this case it was not a big benefit, it needs much more memory ....
Zitat von: TheTrumpeter am 20 April 2021, 20:50:07well I cannot tell, if your perl leaks memory; you can monitor it via fhem for some time or you can restart your system each time it grows too much.
Yesterday, when I did not get any reading out of the THZ it seemed that the RAM-consumption did not increase. It was only a few hours from afternoon to today morning, so not the best sample, but I just noticed it.
Do you have any doubt that there might be some memory-issue also with the "blocking"-implementation?
ZitatYour heatpump is set for 115200 or 57600? 115200 (USB on THZ board)When you write that Hterm works, I understand that you can achieve such HEX comunication?
Have you chosen the right serial port? yes --> com3@115200 (works with Hterm)
send -> 02
expected answer -> 10
Immi, do You know which USB - seriall controller is on Your THZ originally installed?
Zitat von: Matthias-56 am 18 Oktober 2021, 19:29:47Hi Matthias
Yes, the HEX communication over Hterm works fine - but only 0x02 --> 0x10.
C:\Strawberry\fhem>perl testserialthz.pl
10
----
1002
----
0100b6fd01b71003
Zitat von: Matthias-56 am 20 Oktober 2021, 08:17:07excellent
--> RS232 connection stabil established.
So I can use FHEM for my THZ.
ZitatThe perl script will help you debugging without the complex construct of fhem.
My perl configuration seems ok.
Using Strawberry Perl Portable on Win10.
ZitatWhere to place such result?The forum is for problemsolving discussion and for preliminary results.
Zitat von: Matthias-56 am 20 Oktober 2021, 17:32:19now it is clear
Bug in Win32::SerialPort or in CP210x driver?
Zitat von: Matthias-56 am 21 Oktober 2021, 10:02:09Hi Matthias
I remembered that I saw the error ... block length 66 ... already before.
If FHEM try to open com port the modul devio.pm is used.
This seems to replace the original io.pm.
It is signed by Rudolf Koenig.
Is'nt it the lucky situation that this problem could be solved by the FHEM developer?
Zitat von: Matthias-56 am 22 Oktober 2021, 14:18:43you can use the fritzbox with ser2net; https://github.com/Freetz-NG/freetz-ng and compile the additional ser2net
In my understanding ser2net needs in any case an additional host for com port. I'm wrong?
Fritz USB remote do not need an additional host.
Zitat von: TheTrumpeter am 12 November 2021, 10:25:07Hi TheTrumpeter,
It seems that you changed some parameter names in one of the last releases:
p99CoolingHC1HysterFlowTemp (former p99CoolingHC1HystersisFlowTemp)
p99CoolingHC1HysterRoomTemp (forme p99CoolingHC1HystersisRoomTemp)
Luckily I noticed that change as I started writing a documentation which parameters have to be changed if the LWZ shall be operated without FHEM.
Zitatvery unlikely but you can check yourself the history in github
Are there further changes like this?
--- 00_THZ.pm 2019-10-28 20:50:15.000000000 +0100
+++ 00_THZ.pm 2021-11-12 18:13:18.680032336 +0100
@@ -359,6 +359,8 @@
],
"4temp" => [["", 8, 4, "hex2int",2560]
],
+ "1int" => [["", 8, 4, "hex2int",1]
+ ],
"5temp" => [["", 8, 4, "hex2int",10]
],
"6gradient" => [["", 8, 4, "hex", 100]
@@ -779,6 +781,9 @@
"sFlowRate" => {cmd2=>"0A033B", type =>"1clean", unit =>" cl/min"},
"sHumMaskingTime" => {cmd2=>"0A064F", type =>"1clean", unit =>" min"},
"sHumThreshold" => {cmd2=>"0A0650", type =>"1clean", unit =>" %"},
+ "sHeizleistungRelativ" => {cmd2=>"0A069A", type =>"1int", unit =>" %"},
+ "sVerdichterNSollUnbegrenzt" => {cmd2=>"0A069C", type =>"1clean", unit =>" Hz"},
+ "sVerdichterNSollBegrenzt" => {cmd2=>"0A069D", type =>"1clean", unit =>" Hz"},
"sOutputReduction" => {cmd2=>"0A06A4", type =>"1clean", unit =>" %"},
"sOutputIncrease" => {cmd2=>"0A06A5", type =>"1clean", unit =>" %"},
"sHumProtection" => {cmd2=>"0A09D1", type =>"1clean", unit =>""},
2021.11.14 22:02:32.826 5: THZ_Get: Try to get 'sHeizleistungRelativ'
2021.11.14 22:02:32.826 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2021.11.14 22:02:32.827 5: Mythz sending 02
2021.11.14 22:02:32.827 5: DevIo_SimpleWrite Mythz: 02
2021.11.14 22:02:32.828 5: Mythz start Function THZ_ReadAnswer
2021.11.14 22:02:32.828 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.14 22:02:32.828 5: Mythz sending 0100AB0A069A1003
2021.11.14 22:02:32.828 5: DevIo_SimpleWrite Mythz: 0100AB0A069A1003
2021.11.14 22:02:32.830 5: Mythz start Function THZ_ReadAnswer
2021.11.14 22:02:32.830 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.14 22:02:32.830 5: Mythz start Function THZ_ReadAnswer
2021.11.14 22:02:32.835 5: THZ_ReadAnswer: uc unpack: '02'
2021.11.14 22:02:32.835 5: Mythz sending 10
2021.11.14 22:02:32.835 5: DevIo_SimpleWrite Mythz: 10
2021.11.14 22:02:32.836 5: Mythz start Function THZ_ReadAnswer
2021.11.14 22:02:32.837 5: THZ_ReadAnswer: uc unpack: '0100CD0A069A00221003'
2021.11.14 22:02:32.837 5: Mythz sending 10
2021.11.14 22:02:32.837 5: DevIo_SimpleWrite Mythz: 10
2021.11.14 22:02:32.838 5: Parse message: CD0A069A0022
2021.11.14 22:02:32.839 5: Message length: 12
Zitat von: immi am 12 November 2021, 16:45:40
Hi TheTrumpeter,
the change you are referring to, is probably 7-10 month old
Zitat von: celle am 14 November 2021, 22:27:58Hi,
Here is the debug
2021.11.14 22:02:32.838 5: Parse message: CD0A069A0022
The 22 is hex. It should be 34%
"sHeatingRelPower" => {cmd2=>"0A069A", type =>"1clean", unit =>" %"},
"sComprUnlimit" => {cmd2=>"0A069C", type =>"1clean", unit =>" Hz"},
"sComprLimit" => {cmd2=>"0A069D", type =>"1clean", unit =>" Hz"},
Zitat von: celle am 15 November 2021, 21:48:23I do not want to discuss if it makes sense a negative % of power. I just trust you :)
I will try 1clean for the reading. For negative values for relative power I get 65535+relative power. With my 1int not. I get negative values on dhw mode...
Zitat von: celle am 15 November 2021, 21:48:23Assuming they are rotation, what do you prefer?
It looks like the number of rotations of the compressor, because it is something between 20 and at most I think something about 120hz at max in....
Zitat von: Noobie47 am 19 November 2021, 22:19:14Have you had a working connection, in which you can read something from the tecalor, via serial terminal or via the software from RobertPenz?
Hi,
i am using a very first edition of a Stiebel Eltron LWZ 303i. Maybe the first one ever produced ;) There is no USB connectivity inside. I tried to establish a connection according to Robert Penz suggestion to build a cable and use also a RS232 to USB converter to my Raspberry. I got help from someone else in relation of configuration and editing plots.
[ 28.348000] hub 2-0:1.0: USB hub found
[ 28.352000] hub 2-0:1.0: 2 ports detected
....
[ 29.624000] ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected
[ 29.632000] usb 2-2: Detected FT232RL
[ 29.636000] usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
2021.11.17 19:28:27.252 5: THZ_Get: Try to get 'sHeizleistungRelativ'
2021.11.17 19:28:27.253 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2021.11.17 19:28:27.253 5: Mythz sending 02
2021.11.17 19:28:27.253 5: DevIo_SimpleWrite Mythz: 02
2021.11.17 19:28:27.254 5: Mythz start Function THZ_ReadAnswer
2021.11.17 19:28:27.255 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.17 19:28:27.255 5: Mythz sending 0100AB0A069A1003
2021.11.17 19:28:27.255 5: DevIo_SimpleWrite Mythz: 0100AB0A069A1003
2021.11.17 19:28:27.256 5: Mythz start Function THZ_ReadAnswer
2021.11.17 19:28:27.257 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.17 19:28:27.257 5: Mythz start Function THZ_ReadAnswer
2021.11.17 19:28:27.260 5: THZ_ReadAnswer: uc unpack: '02'
2021.11.17 19:28:27.260 5: Mythz sending 10
2021.11.17 19:28:27.260 5: DevIo_SimpleWrite Mythz: 10
2021.11.17 19:28:27.262 5: Mythz start Function THZ_ReadAnswer
2021.11.17 19:28:27.262 5: THZ_ReadAnswer: uc unpack: '0100940A069AFFEA1003'
2021.11.17 19:28:27.262 5: Mythz sending 10
2021.11.17 19:28:27.262 5: DevIo_SimpleWrite Mythz: 10
2021.11.17 19:28:27.264 5: Parse message: 940A069AFFEA
2021.11.17 19:28:27.264 5: Message length: 12
2021-11-17_19:28:27 Mythz sHeizleistungRelativ: -22 %
2021.11.17 18:54:41.595 5: THZ_Get: Try to get 'sHeizleistungRelativ'
2021.11.17 18:54:41.595 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2021.11.17 18:54:41.596 5: Mythz sending 02
2021.11.17 18:54:41.596 5: DevIo_SimpleWrite Mythz: 02
2021.11.17 18:54:41.597 5: Mythz start Function THZ_ReadAnswer
2021.11.17 18:54:41.597 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.17 18:54:41.597 5: Mythz sending 0100AB0A069A1003
2021.11.17 18:54:41.597 5: DevIo_SimpleWrite Mythz: 0100AB0A069A1003
2021.11.17 18:54:41.599 5: Mythz start Function THZ_ReadAnswer
2021.11.17 18:54:41.599 5: THZ_ReadAnswer: uc unpack: '10'
2021.11.17 18:54:41.599 5: Mythz start Function THZ_ReadAnswer
2021.11.17 18:54:41.610 5: THZ_ReadAnswer: uc unpack: '02'
2021.11.17 18:54:41.611 5: Mythz sending 10
2021.11.17 18:54:41.611 5: DevIo_SimpleWrite Mythz: 10
2021.11.17 18:54:41.612 5: Mythz start Function THZ_ReadAnswer
2021.11.17 18:54:41.613 5: THZ_ReadAnswer: uc unpack: '01009E0A069AFFF41003'
2021.11.17 18:54:41.613 5: Mythz sending 10
2021.11.17 18:54:41.613 5: DevIo_SimpleWrite Mythz: 10
2021.11.17 18:54:41.614 5: Parse message: 9E0A069AFFF4
2021.11.17 18:54:41.615 5: Message length: 12
2021-11-17_18:54:41 Mythz sHeizleistungRelativ: -12 %
+ "sHeatingRelPower" => {cmd2=>"0A069A", type =>"1clean", unit =>" %"},
+ "sComprRelPower" => {cmd2=>"0A069B", type =>"1clean", unit =>" %"},
+ "sComprRotUnlimit" => {cmd2=>"0A069C", type =>"1clean", unit =>" Hz"},
+ "sComprRotLimit" => {cmd2=>"0A069D", type =>"1clean", unit =>" Hz"},
wget https://svn.fhem.de/fhem/trunk/fhem/fhem.cfg
sudo systemctl stop fhem
# Kopie anlegen
sudo cp -R /opt/fhem/ ~/Sicherung/
# Ab hier wird zurück gesetzt
sudo cp fhem.cfg /opt/fhem/
sudo chown fhem:dialout /opt/fhem/fhem.cfg
sudo rm -R /opt/fhem/log/*
sudo rm -R /opt/fhem/backup/*
sudo rm -R /opt/fhem/restoreDir/*
sudo rm /opt/fhem/FHEM/controls_fhem.txt
sudo rm /opt/fhem/FHEM/99_myUtils.pm
# FHEM neu starten
sudo systemctl start fhem
[ 4181.414687] usb 1-1.2: Product: USB2.0-Ser!
[ 4181.520431] usbcore: registered new interface driver usbserial_generic
[ 4181.520507] usbserial: USB Serial support registered for generic
[ 4181.524227] usbcore: registered new interface driver ch341
[ 4181.524307] usbserial: USB Serial support registered for ch341-uart
[ 4181.524421] ch341 1-1.2:1.0: ch341-uart converter detected
[ 4181.526644] ch341-uart ttyUSB0: break control not supported, using simulated break
[ 4181.527058] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3
define WEB FHEMWEB 8083 global
setuuid WEB 619cbf99-f33f-2ef9-de56-90925d7d32069bb2
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log Logfile
setuuid Logfile 619cbf99-f33f-2ef9-dcc6-e3ffecfa99833bcc
define autocreate autocreate
setuuid autocreate 619cbf99-f33f-2ef9-31c4-424c103e969a234e
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
setuuid eventTypes 619cbf99-f33f-2ef9-11f9-0e2d5aad2406d445
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 619cbf99-f33f-2ef9-30b0-78cf0993d6533f54
define Mythz THZ /dev/ttyUSB0@14400
setuuid Mythz 619cbffa-f33f-2ef9-c3bb-3839b2c0bed0468a
attr Mythz devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr Mythz firmware 2.06
Zitat von: Noobie47 am 24 November 2021, 21:13:40check the cable and stay away from windows.... your dmesg log shows your serial drivers on the raspi are ok
I was too optimitistic for a few minutes, because there was no error. 28800 did also not work. Registers were not read. All other frequencies did not work as well. Measures: 1. I wiill double check the Cable, especially the part i built on my own. 2. I will delete the autocreate and the Initial usb check.
Under Windows the USB to serial cable Wants to automatically install some driverrs. Is this also for the raspberry needed?
Zitat von: Noobie47 am 25 November 2021, 21:12:39I also cannot solder well, pay attention not to have shorts between --> check with a multimeter
I resoldered the cables to improve the connectivity. But still error Message from Fhem. Maybe some cam habe a Look athe cable picture to check if i did something wrong during soldering it (mixed up the cablecolor e.g.). I think i did it according to the instructions on Robert's Page.
attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3
define WEB FHEMWEB 8083 global
setuuid WEB 61a541b6-f33f-ac07-9fdd-9793db672a2144fd
attr WEB editConfig 1
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log Logfile
setuuid Logfile 61a541b6-f33f-ac07-2380-fa0515e246a0ff30
define autocreate autocreate
setuuid autocreate 61a541b6-f33f-ac07-91ee-8e364cb8e92c13b2
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
setuuid eventTypes 61a541b6-f33f-ac07-44fe-7e7823105fa853ea
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 61a541b6-f33f-ac07-1fce-231a8f24487c4ef4
attr initialUsbCheck disable 1
define Mythz THZ /dev/ttyUSB0@14400
setuuid Mythz 61a947be-f33f-ac07-0a98-b53c7c54ad616cf8
attr Mythz devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr Mythz firmware 2.06
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
setuuid FileLog_Mythz 61a947be-f33f-ac07-a3d0-4e712db12e7dba43
define Plot_Temp SVG FileLog_Mythz:thz:CURRENT
setuuid Plot_Temp 61a947be-f33f-ac07-e211-f843f16e200a9413
attr Plot_Temp room Heizung
Zitat von: Noobie47 am 05 Dezember 2021, 22:27:54Well
Hi, has anyone an idea what is the reason for this error message? It appears almost exactly every 2 minutes.
msg2: decode: command not known -- D1 -> 0103D5D11003
attr Mythz firmware 2.14
msg2 THZ_Get: Error msg2: closed connection -- E8 ->
sudo nano /etc/ser2net.yaml
connection: &thz_fhem
accepter: tcp,2003
enable: on
options:
kickolduser: true
connector: serialdev,/dev/ttyUSB,115200n81,local
sudo /etc/init.d/ser2net restart
msg2 THZ_Get: Error msg2: THZ_Get_Com: error found at step0 446576696365206F70656E206661696C7572653A2056616C7565206F722066696C65206E6F7420666F756E640D0A -- F5 -> 446576696365206F70656E206661696C7572653A2056616C7565206F722066696C65206E6F7420666F756E640D0A
connection: &fhem_thz
accepter: tcp,2003
timeout: 500
connector: serialdev,
/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0,
115200n81,local
Zitat von: immi am 27 Dezember 2021, 12:04:32
I am curious, why you prefer ser2net instead of running 2 fhem connected by fhem2fhem?
Zitat von: martincfd am 21 Januar 2022, 13:26:05Hi Martin
I am experimenting with some settings and have used gradientHC1 = 0.0. The THZ504 always returns roomSetTemp + lowEndHC1, but the thz module computes 0.7+roomSetTemp + lowEndHC1, thus the 0.7 cannot be correct. Is this a 504 specific problem, or were those parameters in the curve computation routine obtained via curve fitting?
Zitat von: immi am 21 Januar 2022, 16:27:19Yes, sorry for not being clear.
Hi Martin
I expect you refer to the curve shown by fhem.
Zitat von: immi am 21 Januar 2022, 16:27:19Sakko has had an interesting idea, which works great for his thz (turn off integral part of PID). I still need further tests and some math for my own machine, but it definitely involves gradients close to zero (if possible even slightly negative). An exact heat curve function would be helpful, but the current one I already took from the THZ module is already pretty helpful.
I do not want to discuss the relevance of a gradient of 0
Zitat von: immi am 21 Januar 2022, 16:27:19If I have some time I will try to collect some data, e.g. using AT correction to get some data at different outside temperatures.
happy to implement any improvements.
immi
Zitat von: martincfd am 21 Januar 2022, 21:52:21The variables connected to the curves should all have enough variation, in order to fit a function
If I have some time I will try to collect some data, e.g. using AT correction to get some data at different outside temperatures.
Zitat von: immi am 22 Januar 2022, 10:00:32As this is really only a very minor issue I will give it a try if I have some time and see if I can improve anything at all. It is clear that dependence on parameters should at most be linear and dependence on outside temp at most be cubic (or maybe a single power term). Dependence on insideTemp and roomInfluence is documented with a formula luckily.
The variables connected to the curves should all have enough variation, in order to fit a function
outside_tempFiltered roomSetTemp p13GradientHC1 LowEndHC1 p15RoomInfluenceHC1 insideTemp
the function should remain as simple as possible.
immi
Zitat von: hellijo am 11 Juni 2022, 22:20:23Hi
Hi immi,
the Protokoll looks like this:Code Auswählen"F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10],
[" x08: ", 8, 4, "raw", 1],
[" returnTemp: ", 12, 4, "hex2int", 10],
[" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10],
[" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1],
[" offHysteresisNo: ", 34, 2, "hex", 1],
[" hcBoosterStage: ", 36, 2, "hex", 1],
[" seasonMode: ", 38, 2, "somwinmode", 1],
[" x40: ", 40, 4, "raw", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1],
[" hcOpMode: ", 48, 2, "opmodehc", 1],
[" x50: ", 50, 4, "raw", 1],
[" x54: ", 54, 4, "raw", 1],
[" x60: ", 58, 4, "raw", 1],
[" roomSetTemp: ", 62, 4, "hex2int", 10],
[" x66: ", 66, 4, "raw", 1],
[" x70: ", 70, 4, "raw", 1],
[" insideTempRC: ", 74, 4, "hex2int", 10],
[" x78: ", 78, 4, "raw", 1],
[" x82: ", 82, 4, "raw", 1],
[" ???Temp: ", 86, 4, "hex2int", 10]
],
PS.: hat die Reihenfolge Einfluss auf die Heizkurve?
BR Jörg
"F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10],
[" x08: ", 8, 4, "raw", 1],
[" returnTemp: ", 12, 4, "hex2int", 10],
[" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10],
[" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1],
[" offHysteresisNo: ", 34, 2, "hex", 1],
[" hcBoosterStage: ", 36, 2, "hex", 1],
[" seasonMode: ", 38, 2, "somwinmode", 1],
[" x40: ", 40, 4, "raw", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1],
[" hcOpMode: ", 48, 2, "opmodehc", 1],
[" x50: ", 50, 4, "raw", 1],
[" x54: ", 54, 4, "raw", 1],
[" x58: ", 58, 4, "raw", 1],
[" roomSetTemp: ", 62, 4, "hex2int", 10],
[" x66: ", 66, 4, "raw", 1],
[" x70: ", 70, 4, "raw", 1],
[" insideTempRC: ", 74, 4, "hex2int", 10],
[" x78: ", 78, 4, "raw", 1],
[" x82: ", 82, 4, "raw", 1],
[" Temp: ", 86, 4, "hex2int", 10]
],
Zitat von: immi am 12 Juni 2022, 09:30:49
Hi
the order in this list has no effect on the heating curve
nevertheless it has an effect on the order in the register
changing the order might be very annoying for other users, which relay on the the actual order.
I understand you changed insideTempRC: from starting at 68 to 72; what else?
p.s. please avoid ???Temp
immi
Zitat von: hellijo am 12 Juni 2022, 14:05:55sorry I gave you the wrong info:
Der Test sah von sHC1 sah gut aus. Ich sehe in der Reihenfolge der Werte die Heizkurve nicht mehr.
Muss ich die Werte noch in der alten Reihenfolge sortieren?
"F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "raw", 10],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10], [" seasonMode: ", 38, 2, "somwinmode", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1], [" hcOpMode: ", 48, 2, "opmodehc", 1],
[" roomSetTemp: ", 62, 4, "hex2int", 10], [" x50: ", 50, 4, "raw", 10],
[" x54: ", 54, 4, "raw", 10], [" insideTempRC: ", 74, 4, "hex2int", 10],
[" x66: ", 66, 4, "raw", 10], [" x70: ", 70, 4, "raw", 10],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
[" hcBoosterStage: ", 36, 2, "hex", 1], [" x40: ", 40, 4, "raw", 1],
[" x58: ", 58, 4, "raw", 10], [" x78: ", 78, 4, "raw", 10],
[" x82: ", 82, 4, "raw", 10], [" x86: ", 86, 4, "raw", 10]
],
"F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "raw", 1],
[" returnTemp: ", 12, 4, "hex2int", 10], [" integralHeat: ", 16, 4, "hex2int", 1],
[" flowTemp: ", 20, 4, "hex2int", 10], [" heatSetTemp: ", 24, 4, "hex2int", 10],
[" heatTemp: ", 28, 4, "hex2int", 10],
[" seasonMode: ", 38, 2, "somwinmode", 1],
[" integralSwitch: ", 44, 4, "hex2int", 1], [" hcOpMode: ", 48, 2, "opmodehc", 1],
[" roomSetTemp: ", 62, 4, "hex2int", 10], [" x50: ", 50, 4, "hex2int", 10],
[" x66: ", 66, 4, "raw", 1], [" insideTempRC: ", 74, 4, "hex2int", 10],
[" x70: ", 70, 4, "raw", 1], [" x76: ", 78, 4, "raw", 1],
[" onHysteresisNo: ", 32, 2, "hex", 1], [" offHysteresisNo: ", 34, 2, "hex", 1],
[" hcStage: ", 36, 2, "hex", 1],# 0=Aus; 1=Solar; 2=V1
[" boosterStage2: ", 40, 1, "bit3", 1],
[" x58: ", 58, 4, "raw", 1], [" x54: ", 54, 4, "raw", 1],
[" blockTimeAfterCompStart: ", 82, 4, "hex2int", 1], [" insideTemp: ", 86, 4, "hex2int", 10],
[" solarPump: ", 40, 1, "bit2", 1],
[" boosterStage1: ", 40, 1, "bit1", 1],
[" compressor: ", 40, 1, "bit0", 1],
[" heatPipeValve: ", 41, 1, "bit3", 1],
[" diverterValve: ", 41, 1, "bit2", 1],
[" dhwPump: ", 41, 1, "bit1", 1],
[" heatingCircuitPump: ", 41, 1, "bit0", 1],
[" mixerOpen: ", 43, 1, "bit1", 1],
[" mixerClosed: ", 43, 1, "bit0", 1],
],
Zitat von: hellijo am 23 Juni 2022, 09:41:44Hi Jörg
Nur der Wert bei Werteposition 86 sollte vielleicht "heatSetTempRC", "InsideTemp" passt nicht. Siehe Plot im Anhang.
In Braun ist die Innentemperatur.
Rot ist die Kurve "heatSetTemp" und Blau "x86".
Zitat von: Shenja am 23 Oktober 2022, 17:02:36FBglob-flowRate Pos. 110 sollte ist seit ein paar Jahren im Code (zumindest für sw 5.39 und funktioniert auf unserer 304). Ggf, aber auf der x03 nicht verfügbar oder an anderer Stelle ... evtl. mal per debug die komplette sGlob auslesen und die oberen Positionen durchsuchen
Guten Tag,
Ich betreibe die LWZ 403sol (sw 4.39) und würde gerne den Volumen Strom der Heizkreispumpe gerne erfassen.
Leider habe ich bisher keinen Parameter dafür gefunden in fhem.
An der LWZ wird dieser Wert doch bestimmt irgendwo erfasst. Manuel kann ich diesen Wert an der LWZ messen lassen, dauert aber immer ziemlich lange.
Könnte mir da jemand helfen?
THZ 303 INTEGRAL
2.03 (2002/01-2004/04)
2.05 (2004/04-2006/11)
2.06 (2006/12-2008/08)
THZ 303 SOL
2.14 (2002/10-2004/08)
2.15 (2004/09-2006/08)
2.16 (2006/09-2008/08)
Zitat von: sunrise am 15 November 2022, 19:28:57Hi sunrise
... at that time, the FHEM THZ 2.06 FW was the one that worked best for me (with a few errors I reported back then). Is this FW version still the one that I should use? Thanks for your time and great work! :-)
Zitatit makes sense
Or should I ask this question over there? https://forum.fhem.de/index.php/topic,33452.0.html.html
Zitat von: immi am 15 November 2022, 20:37:18Hi sunriseI use the 2.06, and my FHEM instance is running on an old RPi 2 (fresh installation with latest Raspberry Pi OS lite 32bit and LXDE on top, with all packages up to date). I use ser2net and have the baud rate set to 9600.
the firmwares are still not documented from tecalor
no real big improvement in the last years; you can chose among 2.06, 2.14 or 2.14j (which I added for hellijo in Jun22)
2022.11.14 21:30:49 1: Including fhem.cfg
2022.11.14 21:30:51 3: WEB: port 8083 opened
2022.11.14 21:30:51 2: eventTypes: loaded 0 lines from ./log/eventTypes.txt
2022.11.14 21:30:51 1: Messages collected while initializing FHEM:SecurityCheck:
WEB is not password protected
Protect this FHEM installation by defining an allowed device with define allowed allowed
You can disable this message with attr global motd none
2022.11.14 21:30:51 1: usb create starting
2022.11.14 21:30:51 3: Probing ZWDongle device /dev/serial0
2022.11.14 21:30:52 3: Probing CUL device /dev/ttyAMA0
2022.11.14 21:30:52 3: Probing TCM_ESP3 device /dev/ttyAMA0
2022.11.14 21:30:52 3: Probing ZWDongle device /dev/ttyAMA0
2022.11.14 21:30:52 3: Probing SIGNALDuino device /dev/ttyAMA0
2022.11.14 21:30:52 3: Probing MYSENSORS device /dev/ttyAMA0
2022.11.14 21:30:53 3: Probing ArduCounter device /dev/ttyAMA0
2022.11.14 21:30:53 3: Probing ElsnerWS device /dev/ttyAMA0
2022.11.14 21:30:54 3: Probing FRM device /dev/ttyAMA0
2022.11.14 21:30:59 1: usb create end
2022.11.14 21:30:59 0: Featurelevel: 6.1
2022.11.14 21:30:59 0: Server started with 6 defined entities (fhem.pl:26635/2022-11-01 perl:5.032001 os:linux user:fhem pid:1040)
2022.11.14 21:52:28 3: FHEMWEB WEB CSRF error: ne csrf_656581069972857 for client WEB_192.168.178.81_57934 / command xmllist. For details see the csrfToken FHEMWEB attribute.
2022.11.15 18:07:03 0: Server shutdown
2022.11.15 18:07:14 1: Including fhem.cfg
2022.11.15 18:07:15 3: WEB: port 8083 opened
2022.11.15 18:07:15 2: eventTypes: loaded 1 lines from ./log/eventTypes.txt
2022.11.15 18:07:15 1: Including ./log/fhem.save
2022.11.15 18:07:15 1: Messages collected while initializing FHEM:SecurityCheck:
WEB is not password protected
Protect this FHEM installation by defining an allowed device with define allowed allowed
You can disable this message with attr global motd none
2022.11.15 18:07:15 1: usb create starting
2022.11.15 18:07:15 3: Probing ZWDongle device /dev/serial0
2022.11.15 18:07:16 3: Probing CUL device /dev/ttyAMA0
2022.11.15 18:07:16 3: Probing TCM_ESP3 device /dev/ttyAMA0
2022.11.15 18:07:16 3: Probing ZWDongle device /dev/ttyAMA0
2022.11.15 18:07:16 3: Probing SIGNALDuino device /dev/ttyAMA0
2022.11.15 18:07:16 3: Probing MYSENSORS device /dev/ttyAMA0
2022.11.15 18:07:16 3: Probing ArduCounter device /dev/ttyAMA0
2022.11.15 18:07:17 3: Probing ElsnerWS device /dev/ttyAMA0
2022.11.15 18:07:18 3: Probing FRM device /dev/ttyAMA0
2022.11.15 18:07:23 1: usb create end
2022.11.15 18:07:23 0: Featurelevel: 6.1
2022.11.15 18:07:23 0: Server started with 6 defined entities (fhem.pl:26635/2022-11-01 perl:5.032001 os:linux user:fhem pid:416)
2022.11.15 18:31:49 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:31:49 3: Mythz device opened
2022.11.15 18:31:50 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:33:02 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A0574 ->
2022.11.15 18:33:05 3: Mythz/RAW: C70A010120009600C8003C
2022.11.15 18:35:26 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A1732 ->
2022.11.15 18:37:47 3: THZ_Get: Error msg2: decode: command not known -- FE -> 010302FE1003
2022.11.15 18:37:47 1: PERL WARNING: Use of uninitialized value $sFirmware in sprintf at ./FHEM/00_THZ.pm line 1084.
2022.11.15 18:39:59 1: PERL WARNING: Argument "C70A010120009600C8003C" isn't numeric in multiplication (*) at ./FHEM/00_THZ.pm line 1484.
2022.11.15 18:39:59 1: PERL WARNING: Argument "C70A010120009600C8003C" isn't numeric in addition (+) at ./FHEM/00_THZ.pm line 1484.
2022.11.15 18:40:09 1: PERL WARNING: Argument "120 # Internes Polling Fehlerspeicher" isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:40:17 3: THZ_Get: Error msg3: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A092B ->
2022.11.15 18:42:26 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A0928 ->
2022.11.15 18:43:22 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:43:22 3: Mythz device opened
2022.11.15 18:43:24 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:45:04 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:45:04 3: Mythz device opened
2022.11.15 18:45:05 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:45:59 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:45:59 3: Mythz device opened
2022.11.15 18:46:00 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:46:40 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:46:40 3: Mythz device opened
2022.11.15 18:46:41 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:48:56 3: Opening Mythz device pi.fritz.box:2000
2022.11.15 18:48:56 3: Mythz device opened
2022.11.15 18:48:57 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.15 18:52:08 1: PERL WARNING: Argument "28800 # Internes Polling Intervall 8 Stunden" isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:53:27 1: PERL WARNING: Argument "120 # Internes Polling Fehlerspeicher - auch schon mit 8..." isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:54:03 1: PERL WARNING: Argument "300 # Internes Polling Intervall 5 Min." isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:54:25 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0D ->
2022.11.15 18:54:25 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1460.
2022.11.15 18:54:25 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1488.
2022.11.15 18:57:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.15 20:32:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.15 20:37:38 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.15 20:41:01 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 21:04:22 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.15 21:30:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 21:34:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 22:22:39 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 23:26:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.15 23:44:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.15 23:46:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.15 23:59:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 23:59:30 3: Mythz/RAW: number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2022.11.16 00:19:32 3: THZ_Get: Error msg2: decode: CRC error in request -- D1 -> 0102FEFB1003
2022.11.16 01:09:19 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 01:33:01 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 01:33:03 3: Mythz/RAW: number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2022.11.16 02:07:44 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 02:20:25 3: THZ_Get: Error msg2: decode: new unknown answer -- D1 -> 018254D11003
2022.11.16 02:46:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 03:04:37 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 03:09:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 03:14:00 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 07:06:41 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.16 07:21:45 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 07:49:51 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 09:13:26 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.16 10:38:06 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.16 11:13:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.16 11:24:50 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.16 11:37:34 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 12:13:35 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F3 ->
2022.11.16 12:36:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 12:41:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 13:05:44 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 13:24:55 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- FB ->
2022.11.16 14:29:15 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 15:45:25 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 15:49:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 16:03:32 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.16 16:03:33 3: Mythz/RAW: number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2022.11.16 16:15:36 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- D1 ->
2022.11.15 18:52:08 1: PERL WARNING: Argument "28800 # Internes Polling Intervall 8 Stunden" isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:53:27 1: PERL WARNING: Argument "120 # Internes Polling Fehlerspeicher - auch schon mit 8..." isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:54:03 1: PERL WARNING: Argument "300 # Internes Polling Intervall 5 Min." i
Zitat von: willybauss am 16 November 2022, 21:57:37
My experience is that a shorter and better quality canle reduces the mentioned issues "InterfaceNotRespondig. Maybe too slow".
Zitat von: immi am 16 November 2022, 22:58:35
Hi Sunrise
you should pay attention to your config file: there is something very wrong hereCode Auswählen
2022.11.15 18:52:08 1: PERL WARNING: Argument "28800 # Internes Polling Intervall 8 Stunden" isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:53:27 1: PERL WARNING: Argument "120 # Internes Polling Fehlerspeicher - auch schon mit 8..." isn't numeric in numeric lt (<) at ./FHEM/00_THZ.pm line 1077.
2022.11.15 18:54:03 1: PERL WARNING: Argument "300 # Internes Polling Intervall 5 Min." i
you should consider the hint from Willy on the cable
you can try all 3 2.06, 2.14 or 2.14j what is best for you
immi
define Mythz THZ pi.fritz.box:2000
define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz
attr Mythz interval_sGlobal 300 # Internes Polling Intervall 5 Min.
attr Mythz interval_sHistory 28800 # Internes Polling Intervall 8 Stunden
attr Mythz interval_sLast10errors 120 # Internes Polling Fehlerspeicher - auch schon mit 86400 gesehen
attr Mythz interval_sDHW 400
attr Mythz interval_sElectrDHWDay 2400
attr Mythz interval_sElectrDHWTotal 43200
attr Mythz interval_sHC1 400
attr Mythz interval_sHeatDHWDay 2400
attr Mythz interval_sHeatDHWTotal 43200
attr Mythz interval_sHeatRecoveredDay 2400
attr Mythz interval_sHeatRecoveredTotal 43200
attr Mythz event-min-interval s.*:4800
attr Mythz event-on-change-reading .*
attr Mythz userReadings insideSetTemp:sHC1.* {THZ_Val("sHC1",21)}, insideTemp:sHC1.* {THZ_Val("sHC1",27)}, AussenTemp:sGlobal.* {THZ_Val("sGlobal",1)}
attr Mythz firmware 2.06
attr Mythz room Keller
attr FileLog_Mythz room Keller
attr Mythz interval_sGlobal 300
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 120
Zitat von: sunrise am 17 November 2022, 13:47:10Hi sunrise
Apart from the comments (which I have to omit), do these values make sense?Code Auswählenattr Mythz interval_sGlobal 300
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 120
Zitat von: immi am 17 November 2022, 15:23:12Yes, it's there, as well as sHistory - see screenshots. And I have another observation, i.e. I restarted FHEM, and realised that the MyTHZ was completely gone. No big deal (though I wonder why it is gone - does it not "stick" after restart?), as I started the definition from scratch with more conservative timings:
Hi sunrise
first: check in your firmware, if you can get the above register.
e.g. in some older tecalor there was not sLast10errors or sHistory.
second: increase the intervall as much as you can, in order to decrease the workload of your heatpump
e.g. why you need sLast10errors every 2 minutes? I pull it every 8h
immi
define Mythz THZ pi.fritz.box:2000
define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz
attr Mythz interval_sGlobal 300
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 28800
attr Mythz interval_sDHW 300
attr Mythz interval_sElectrDHWDay 3600
attr Mythz interval_sElectrDHWTotal 43200
attr Mythz interval_sHC1 300
attr Mythz interval_sHeatDHWDay 3600
attr Mythz interval_sHeatDHWTotal 43200
attr Mythz interval_sHeatRecoveredDay 3600
attr Mythz interval_sHeatRecoveredTotal 43200
attr Mythz event-min-interval s.*:4800
attr Mythz event-on-change-reading .*
attr Mythz userReadings insideSetTemp:sHC1.* {THZ_Val("sHC1",21)}, insideTemp:sHC1.* {THZ_Val("sHC1",27)}, AussenTemp:sGlobal.* {THZ_Val("sGlobal",1)}
attr Mythz firmware 2.06
attr Mythz room Keller
attr FileLog_Mythz room Keller
2022.11.17 18:07:14 3: Opening Mythz device pi.fritz.box:2000
2022.11.17 18:07:14 3: Mythz device opened
2022.11.17 18:07:15 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
So I am back to square one and to Willi's recommendation to check the cable.
define Mythz THZ pi.fritz.box:2000
attr Mythz devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr Mythz event-min-interval s.*:4800
attr Mythz event-on-change-reading .*
attr Mythz firmware 2.06
attr Mythz interval_sDHW 300
attr Mythz interval_sElectrDHWDay 3600
attr Mythz interval_sElectrDHWTotal 43200
attr Mythz interval_sGlobal 300
attr Mythz interval_sHC1 300
attr Mythz interval_sHeatDHWDay 3600
attr Mythz interval_sHeatDHWTotal 43200
attr Mythz interval_sHeatRecoveredDay 3600
attr Mythz interval_sHeatRecoveredTotal 43200
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 28800
attr Mythz room Heating
attr Mythz userReadings insideSetTemp:sHC1.* {THZ_Val("sHC1",21)}, insideTemp:sHC1.* {THZ_Val("sHC1",27)}, AussenTemp:sGlobal.* {THZ_Val("sGlobal",1)}
# CFGFN
# DEF pi.fritz.box:2000
# DeviceName pi.fritz.box:2000
# FD 8
# FUUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# NAME Mythz
# NR 25
# NTFY_ORDER 50-Mythz
# PARTIAL
# STATE opened
# TYPE THZ
# VERSION 0.205
# eventCount 36
# READINGS:
# 2022-11-17 19:08:56 AussenTemp 8.9
# 2022-11-17 19:08:56 inputVentilatorPower 45 %
# 2022-11-17 19:06:29 mainVentilatorPower 0 %
# 2022-11-17 19:08:35 p01-p12 p01RoomTempDay: 20.5 p02RoomTempNight: 20.5 p03RoomTempStandby: 10 p04DHWsetTempDay: 48 p05DHWsetTempNight: 48 p06DHWsetTempStandby: 10 p07FanStageDay: 2 p08FanStageNight: 2 p09FanStageStandby: 2 p10HCTempManual: 35 p11DHWsetTempManual: 48 p12FanStageManual: 1
# 2022-11-17 19:08:59 p04DHWsetTempDay 48 °C
# 2022-11-17 19:08:35 p11DHWsetTempManual 48 °C
# 2022-11-17 19:08:43 p13GradientHC1 0.4
# 2022-11-17 19:06:21 p20FlowProportionHC2 100 %
# 2022-11-17 19:06:23 p21Hyst1 4 K
# 2022-11-17 19:09:05 p23Hyst3 3 K
# 2022-11-17 19:08:52 p44UnschedVent2 60 min
# 2022-11-17 19:09:02 p57OutTempMinPumpCycles 20 °C
# 2022-11-17 19:09:02 pCircPump p54MinPumpCycles: 1 p55MaxPumpCycles: 288 p56OutTempMaxPumpCycles: 15 p57OutTempMinPumpCycles: 20 p58SuppressTempCaptPumpStart: 60
# 2022-11-17 19:08:37 pClockMonth 11
# 2022-11-17 19:08:41 pDHWProg progDHWStartTime: 23:00 progDHWEndTime: 07:00 progDHWMonday: 1 progDHWTuesday: 1 progDHWWednesday: 1 progDHWThursday: 1 progDHWFriday: 1 progDHWSaturday: 1 progDHWSunday: 1 progDHWEnable: 0
# 2022-11-17 19:08:51 pFan p37Fanstage1AirflowInlet: 100 p38Fanstage2AirflowInlet: 135 p39Fanstage3AirflowInlet: 170 p40Fanstage1AirflowOutlet: 100 p41Fanstage2AirflowOutlet: 135 p42Fanstage3AirflowOutlet: 170 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 0
# 2022-11-17 19:08:47 pFanProg progFAN1StartTime: 20:00 progFAN1EndTime: 09:00 progFAN1Monday: 1 progFAN1Tuesday: 1 progFAN1Wednesday: 1 progFAN1Thursday: 1 progFAN1Friday: 1 progFAN1Saturday: 1 progFAN1Sunday: 1 progFAN1Enable: 0 progFAN2StartTime: 13:30 progFAN2EndTime: 14:30 progFAN2Monday: 1 progFAN2Tuesday: 1 progFAN2Wednesday: 1 progFAN2Thursday: 1 progFAN2Friday: 1 progFAN2Saturday: 1 progFAN2Sunday: 1 progFAN2Enable: 0
# 2022-11-17 19:08:43 pHeat1 p13GradientHC1: 0.4 p14LowEndHC1: 3 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
# 2022-11-17 19:09:05 pHeat2 p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 3 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 1 p27Hyst7: 1 p28Hyst8: 1 p29HystAsymmetry: 2 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 17 p50SummerModeHysteresis: 2 p77OutTempFilterTime: 1 p78DualModePoint: 0 p79BoosterTimeoutHC: 20
# 2022-11-17 19:08:39 pHeatProg progHC1StartTime: 23:00 progHC1EndTime: 07:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 0 progHC1Sunday: 0 progHC1Enable: 0 progHC2StartTime: 00:00 progHC2EndTime: 08:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 1 progHC2Sunday: 1 progHC2Enable: 0
# 2022-11-17 19:06:19 progDHWMonday 1
# 2022-11-17 19:09:07 progDHWStartTime 23:00
# 2022-11-17 19:08:41 progDHWThursday 1
# 2022-11-17 19:09:09 progFAN1Monday 1
# 2022-11-17 19:08:57 progFAN2Enable 0
# 2022-11-17 19:08:47 progFAN2EndTime 14:30
# 2022-11-17 19:09:03 progFAN2Sunday 1
# 2022-11-17 19:08:45 progHC1Thursday 1
# 2022-11-17 19:08:53 progHC1Tuesday 1
# 2022-11-17 19:06:27 progHC2EndTime 08:00
# 2022-11-17 19:08:49 progHC2Sunday 1
# 2022-11-17 19:08:39 progHC2Wednesday 0
# 2022-11-17 19:08:56 sGlobal outsideTemp: 8.9 flowTemp: 31.1 returnTemp: 29.9 hotGasTemp: 36.8 dhwTemp: 34.8 flowTempHC2: 0 evaporatorTemp: 15.9 condenserTemp: 30.4 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 1 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 45 inputVentilatorPower: 45 mainVentilatorPower: 0 outputVentilatorSpeed: 24 inputVentilatorSpeed: 21 mainVentilatorSpeed: 0 outsideTempFiltered: 10 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 81 insideTemp: 0
# 2022-11-17 19:08:37 sTimedate Weekday: Thursday pClockHour: 19 pClockMinutes: 9 Sec: 12 pClockYear: 22 pClockMonth: 11 pClockDay: 17
# 2022-11-17 19:05:12 state opened
# 2022-11-17 19:09:14 z_Last_fhem_err THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 10 ->
# helper:
#
setstate Mythz opened
setstate Mythz 2022-11-17 19:08:56 AussenTemp 8.9
setstate Mythz 2022-11-17 19:08:56 inputVentilatorPower 45 %
setstate Mythz 2022-11-17 19:06:29 mainVentilatorPower 0 %
setstate Mythz 2022-11-17 19:08:35 p01-p12 p01RoomTempDay: 20.5 p02RoomTempNight: 20.5 p03RoomTempStandby: 10 p04DHWsetTempDay: 48 p05DHWsetTempNight: 48 p06DHWsetTempStandby: 10 p07FanStageDay: 2 p08FanStageNight: 2 p09FanStageStandby: 2 p10HCTempManual: 35 p11DHWsetTempManual: 48 p12FanStageManual: 1
setstate Mythz 2022-11-17 19:08:59 p04DHWsetTempDay 48 °C
setstate Mythz 2022-11-17 19:08:35 p11DHWsetTempManual 48 °C
setstate Mythz 2022-11-17 19:08:43 p13GradientHC1 0.4
setstate Mythz 2022-11-17 19:06:21 p20FlowProportionHC2 100 %
setstate Mythz 2022-11-17 19:06:23 p21Hyst1 4 K
setstate Mythz 2022-11-17 19:09:05 p23Hyst3 3 K
setstate Mythz 2022-11-17 19:08:52 p44UnschedVent2 60 min
setstate Mythz 2022-11-17 19:09:02 p57OutTempMinPumpCycles 20 °C
setstate Mythz 2022-11-17 19:09:02 pCircPump p54MinPumpCycles: 1 p55MaxPumpCycles: 288 p56OutTempMaxPumpCycles: 15 p57OutTempMinPumpCycles: 20 p58SuppressTempCaptPumpStart: 60
setstate Mythz 2022-11-17 19:08:37 pClockMonth 11
setstate Mythz 2022-11-17 19:08:41 pDHWProg progDHWStartTime: 23:00 progDHWEndTime: 07:00 progDHWMonday: 1 progDHWTuesday: 1 progDHWWednesday: 1 progDHWThursday: 1 progDHWFriday: 1 progDHWSaturday: 1 progDHWSunday: 1 progDHWEnable: 0
setstate Mythz 2022-11-17 19:08:51 pFan p37Fanstage1AirflowInlet: 100 p38Fanstage2AirflowInlet: 135 p39Fanstage3AirflowInlet: 170 p40Fanstage1AirflowOutlet: 100 p41Fanstage2AirflowOutlet: 135 p42Fanstage3AirflowOutlet: 170 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 0
setstate Mythz 2022-11-17 19:08:47 pFanProg progFAN1StartTime: 20:00 progFAN1EndTime: 09:00 progFAN1Monday: 1 progFAN1Tuesday: 1 progFAN1Wednesday: 1 progFAN1Thursday: 1 progFAN1Friday: 1 progFAN1Saturday: 1 progFAN1Sunday: 1 progFAN1Enable: 0 progFAN2StartTime: 13:30 progFAN2EndTime: 14:30 progFAN2Monday: 1 progFAN2Tuesday: 1 progFAN2Wednesday: 1 progFAN2Thursday: 1 progFAN2Friday: 1 progFAN2Saturday: 1 progFAN2Sunday: 1 progFAN2Enable: 0
setstate Mythz 2022-11-17 19:08:43 pHeat1 p13GradientHC1: 0.4 p14LowEndHC1: 3 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
setstate Mythz 2022-11-17 19:09:05 pHeat2 p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 3 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 1 p27Hyst7: 1 p28Hyst8: 1 p29HystAsymmetry: 2 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 17 p50SummerModeHysteresis: 2 p77OutTempFilterTime: 1 p78DualModePoint: 0 p79BoosterTimeoutHC: 20
setstate Mythz 2022-11-17 19:08:39 pHeatProg progHC1StartTime: 23:00 progHC1EndTime: 07:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 0 progHC1Sunday: 0 progHC1Enable: 0 progHC2StartTime: 00:00 progHC2EndTime: 08:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 1 progHC2Sunday: 1 progHC2Enable: 0
setstate Mythz 2022-11-17 19:06:19 progDHWMonday 1
setstate Mythz 2022-11-17 19:09:07 progDHWStartTime 23:00
setstate Mythz 2022-11-17 19:08:41 progDHWThursday 1
setstate Mythz 2022-11-17 19:09:09 progFAN1Monday 1
setstate Mythz 2022-11-17 19:08:57 progFAN2Enable 0
setstate Mythz 2022-11-17 19:08:47 progFAN2EndTime 14:30
setstate Mythz 2022-11-17 19:09:03 progFAN2Sunday 1
setstate Mythz 2022-11-17 19:08:45 progHC1Thursday 1
setstate Mythz 2022-11-17 19:08:53 progHC1Tuesday 1
setstate Mythz 2022-11-17 19:06:27 progHC2EndTime 08:00
setstate Mythz 2022-11-17 19:08:49 progHC2Sunday 1
setstate Mythz 2022-11-17 19:08:39 progHC2Wednesday 0
setstate Mythz 2022-11-17 19:08:56 sGlobal outsideTemp: 8.9 flowTemp: 31.1 returnTemp: 29.9 hotGasTemp: 36.8 dhwTemp: 34.8 flowTempHC2: 0 evaporatorTemp: 15.9 condenserTemp: 30.4 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 1 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 45 inputVentilatorPower: 45 mainVentilatorPower: 0 outputVentilatorSpeed: 24 inputVentilatorSpeed: 21 mainVentilatorSpeed: 0 outsideTempFiltered: 10 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 81 insideTemp: 0
setstate Mythz 2022-11-17 19:08:37 sTimedate Weekday: Thursday pClockHour: 19 pClockMinutes: 9 Sec: 12 pClockYear: 22 pClockMonth: 11 pClockDay: 17
setstate Mythz 2022-11-17 19:05:12 state opened
setstate Mythz 2022-11-17 19:09:14 z_Last_fhem_err THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 10 ->
interval_sDHW
interval_sElectrDHWDay
interval_sElectrDHWTotal
interval_sGlobal
interval_sHC1
interval_sHeatDHWDay
interval_sHeatDHWTotal
interval_sHeatRecoveredDay
interval_sHeatRecoveredTotal
interval_sHistory
interval_sLast10errors
Zitat von: willybauss am 16 November 2022, 21:57:37@immi
My experience is that a shorter and better quality canle reduces the mentioned issues "InterfaceNotRespondig. Maybe too slow".
2022.11.19 16:58:16 1: pi.fritz.box:2000 reappeared (Mythz)
2022.11.19 16:58:19 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.19 16:59:38 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0B ->
2022.11.19 16:59:38 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1460.
2022.11.19 16:59:38 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1488.
2022.11.19 17:06:31 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0D ->
2022.11.19 17:10:12 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0D ->
Zitat von: willybauss am 21 November 2022, 21:23:16
Shield goes always to Ground connection; for Sub-D 9 this is pin 5:
https://jo-fri.github.io/Eisenbahn/ProLok/download/RS232Pinbelegung.pdf (https://jo-fri.github.io/Eisenbahn/ProLok/download/RS232Pinbelegung.pdf)
Connect just the Sub-D side to ground, but let the opposite side unconnected.
2022.11.26 16:52:04 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.26 17:03:04 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 17 ->
2022.11.26 17:03:04 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1460.
2022.11.26 17:03:04 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1488.
2022.11.26 17:18:33 3: THZ_Set: Error msg: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0180051700CF00CD006401E001E00064020202015E01E0011003 ->
2022.11.26 18:12:25 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.26 18:22:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
2022.11.29 10:11:47 3: Opening Mythz device pi.fritz.box:2000
2022.11.29 10:11:47 1: Mythz: Can't connect to pi.fritz.box:2000: Invalid argument
2022.11.29 10:11:35 0: Server shutdown
2022.11.29 10:11:46 1: Including fhem.cfg
2022.11.29 10:11:47 3: WEB: port 8083 opened
2022.11.29 10:11:47 2: eventTypes: loaded 211 lines from ./log/eventTypes.txt
2022.11.29 10:11:47 3: Opening Mythz device pi.fritz.box:2000
2022.11.29 10:11:47 1: Mythz: Can't connect to pi.fritz.box:2000: Invalid argument
2022.11.29 10:11:47 1: Including ./log/fhem.save
2022.11.29 10:11:47 1: Messages collected while initializing FHEM:SecurityCheck:
WEB is not password protected
Protect this FHEM installation by defining an allowed device with define allowed allowed
You can disable this message with attr global motd none
2022.11.29 10:11:47 1: usb create starting
2022.11.29 10:11:48 3: Probing ZWDongle device /dev/serial0
2022.11.29 10:11:48 3: Probing CUL device /dev/ttyAMA0
2022.11.29 10:11:48 3: Probing TCM_ESP3 device /dev/ttyAMA0
2022.11.29 10:11:48 3: Probing ZWDongle device /dev/ttyAMA0
2022.11.29 10:11:48 3: Probing SIGNALDuino device /dev/ttyAMA0
2022.11.29 10:11:49 3: Probing MYSENSORS device /dev/ttyAMA0
2022.11.29 10:11:49 3: Probing ArduCounter device /dev/ttyAMA0
2022.11.29 10:11:49 3: Probing ElsnerWS device /dev/ttyAMA0
2022.11.29 10:11:50 3: Probing FRM device /dev/ttyAMA0
2022.11.29 10:11:55 3: Probing TCM_ESP3 device /dev/ttyUSB0
2022.11.29 10:11:56 3: Probing TCM_ESP2 device /dev/ttyUSB0
2022.11.29 10:11:56 3: Probing FHZ device /dev/ttyUSB0
2022.11.29 10:11:56 3: Probing TRX device /dev/ttyUSB0
2022.11.29 10:11:57 3: Probing ZWDongle device /dev/ttyUSB0
2022.11.29 10:11:58 3: Probing SIGNALDuino device /dev/ttyUSB0
2022.11.29 10:11:58 3: Probing MYSENSORS device /dev/ttyUSB0
2022.11.29 10:11:59 3: Probing ArduCounter device /dev/ttyUSB0
2022.11.29 10:11:59 3: Probing ElsnerWS device /dev/ttyUSB0
2022.11.29 10:12:00 3: Probing FRM device /dev/ttyUSB0
2022.11.29 10:12:06 1: usb create end
2022.11.29 10:12:06 0: Featurelevel: 6.1
2022.11.29 10:12:06 0: Server started with 9 defined entities (fhem.pl:26635/2022-11-01 perl:5.032001 os:linux user:fhem pid:421)
2022.11.29 10:12:06 1: pi4.fritz.box:1883 reappeared (MyMQTT)
2022.11.29 10:12:52 1: pi.fritz.box:2000 reappeared (Mythz)
2022.11.29 10:12:54 3: Mythz/RAW: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow
2022.11.29 10:21:49 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 06 ->
2022.11.29 10:24:30 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 07 ->
2022.11.29 10:26:43 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0D ->
2022.11.29 10:26:43 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1460.
2022.11.29 10:26:43 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1488.
2022.11.29 10:30:13 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 07 ->
2022.11.29 10:34:28 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- 0A ->
2022.11.29 10:34:29 3: Mythz/RAW: 01021A171003decode: CRC error in request
2022.11.29 10:26:43 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1460.
2022.11.29 10:26:43 1: PERL WARNING: Use of uninitialized value $msg2 in concatenation (.) or string at ./FHEM/00_THZ.pm line 1488.
if(defined($parent) ) {
my ($seconds, $microseconds) = gettimeofday();
$seconds= abs($seconds - time_str2num(ReadingsTimestamp($name, $parent, "1970-01-01 01:00:00")));
my $risultato=ReadingsVal($name, $parent, 0);
$risultato=THZ_Get($hash, $name, $parent) if ($seconds > 29 ); #update of the parent: if under 29sec use the current value
#$risultato=THZ_Parse1($hash,"B81700C800BE00A001C20190006402010000E601D602");
my $parenthash=$gets{$parent}; my $parsingrule = $parsinghash{$parenthash->{type}};
my $i=0;
for (@$parsingrule) {
last if ((@$parsingrule[$i]->[0]) =~ m/$cmd/);
$i++;
}
$msg2=(split ' ', $risultato)[$i*2+1];
Log3 $hash->{NAME}, 5, "THZ_split: $msg2 --- $risultato";
}
my $unit = $cmdhash->{unit};
$msg2 = $msg2 . $unit if(defined($unit)) ;
my $activatetrigger =1;
readingsSingleUpdate($hash, $cmd, $msg2, $activatetrigger);
return ($msg2);
define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n
connection: &con0096
accepter: tcp,2000
enable: on
options:
banner: *banner
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,
/dev/ttyUSB0,
9600n81,local
Zitat von: zimb0 am 29 November 2022, 14:18:50must be answered by immi; don'tknow
Hi all,
sFirmware version: 07.59
sFirmware-Id HW: 239 SW: 4.04 Date: JUN 18 2018
Which attr Firmware should I choose?`
Running without attribute in the past, just changed to 5.39 (which is wrong I think).
However after setting 5.39 I can read and write p99PumpRateDHW and p99PumpRateHC
Can I Stick to 5.39?
Zitat von: sunrise am 29 November 2022, 16:59:11Hi Sunrise
I'm really lost as to what causes these messages. Maybe it's because my firmware is not officially supported?
Zitatyes
Do you know if the PERL WARNINGs line 1460&1488 are related to the "too slow" problem?
Zitat von: sunrise am 26 November 2022, 17:25:30
@immi @willybauss
I have now a new cable connection (shielded) with only very few "too slow" messages. Maybe it's because of the slow RPi2 and/or the slow serial connection (9600 baud rate) of this old heating.
Zitat von: zimb0 am 29 November 2022, 14:18:50for sure you can; 5.39 is the latest.
sFirmware version: 07.59 sFirmware-Id HW: 239 SW: 4.04 Date: JUN 18 2018
Which attr Firmware should I choose?`
Can I Stick to 5.39?
Zitat von: immi am 09 Dezember 2022, 21:12:30
for sure you can; 5.39 is the latest.
Just chose the one, which works better with your firmware.
Only after someone finds something new in the 7.59, i can try to implement it
my %getsonly539 = ( #info from belu and godmorgon
"sFlowRate" => {cmd2=>"0A033B", type =>"1clean", unit =>" cl/min"},
"sHumMaskingTime" => {cmd2=>"0A064F", type =>"1clean", unit =>" min"},
"sHumThreshold" => {cmd2=>"0A0650", type =>"1clean", unit =>" %"},
"sHeatingRelPower" => {cmd2=>"0A069A", type =>"1clean", unit =>" %"},
"sComprRelPower" => {cmd2=>"0A069B", type =>"1clean", unit =>" %"},
"sComprRotUnlimit" => {cmd2=>"0A069C", type =>"1clean", unit =>" Hz"},
"sComprRotLimit" => {cmd2=>"0A069D", type =>"1clean", unit =>" Hz"},
"sOutputReduction" => {cmd2=>"0A06A4", type =>"1clean", unit =>" %"},
"sOutputIncrease" => {cmd2=>"0A06A5", type =>"1clean", unit =>" %"},
"sHumProtection" => {cmd2=>"0A09D1", type =>"1clean", unit =>""},
"sSetHumidityMin" => {cmd2=>"0A09D2", type =>"1clean", unit =>" %"},
"sSetHumidityMax" => {cmd2=>"0A09D3", type =>"1clean", unit =>" %"},
"sCoolHCTotal" => {cmd2=>"0A0648", cmd3 =>"0A0649", type =>"1clean", unit =>" kWh"},
"sDewPointHC1" => {cmd2=>"0B0264", type =>"5temp", unit =>" °C"}
);
Zitat von: zimb0 am 10 Dezember 2022, 20:14:59no idea
Is my fw to old to display this values?
Zitat von: immi am 09 Dezember 2022, 17:51:06
[...]
No, the problem is in your heapump.
Several users in forum confirmed that older firmware seams to get stuck every now and than.
My last hint: increase the intervalls as much as you can live with, in order to decrease the workload of your heatpump microcontroller.
attr Mythz event-min-interval s.*:3600
attr Mythz event-on-change-reading .*
attr Mythz firmware 2.06
attr Mythz interval_sDHW 300
attr Mythz interval_sElectrDHWDay 3600
attr Mythz interval_sElectrDHWTotal 28800
attr Mythz interval_sGlobal 600
attr Mythz interval_sHC1 300
attr Mythz interval_sHeatDHWDay 3600
attr Mythz interval_sHeatDHWTotal 28800
attr Mythz interval_sHeatRecoveredDay 3600
attr Mythz interval_sHeatRecoveredTotal 28800
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 28800
Zitat von: sunrise am 12 Dezember 2022, 11:35:54my cheap understanding:
Can there be intervals set too short? The shortest is 300 seconds = 5 minutes. I can hardly believe that my THZ firmware/board is too slow to cope with 5 minutes intervals, but maybe I'm wrong?
Zitatno problem, it is fhem only; the tecalor does not see it
Ah, maybe the "event-on-change-reading .*"? How should I change it? Anything else? I know that you do all this as a hobby and I am both impressed by the time you invest and the help you offer - thank you so much for it! :)
Zitat von: joker4791 am 13 Dezember 2022, 12:32:20please set the verbose to 5 in the module and post the relevant log;
Hi,
when trying to change setting 'pClockHour' the new value it is not accepted. The other values (pClockMinutes, pClockDay, pClockMonth, pClockYear) can be changed as expected. Am I the only one who is experiencing this problem?
Best regards,
j.
2022.12.14 11:28:59 5: write command (parsed element/pos/len/dec/parsingtype): 0 / 6 / 2 / 1 / hex
2022.12.14 11:28:59 5: THZ_Set: 'pClockHour 0A 0A01250A00' ... Check if port is open. State = '(opened)'
2022.12.14 11:28:59 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2022.12.14 11:28:59 5: Mythz sending 02
2022.12.14 11:28:59 5: SW: 02
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '10'
2022.12.14 11:28:59 5: Mythz sending 0180BB0A01250A001003
2022.12.14 11:28:59 5: SW: 0180BB0A01250A001003
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '10'
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '02'
2022.12.14 11:28:59 5: Mythz sending 10
2022.12.14 11:28:59 5: SW: 10
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '01808B0A1003'
2022.12.14 11:28:59 5: Mythz sending 10
2022.12.14 11:28:59 5: SW: 10
2022.12.14 11:28:59 5: THZ_Get: Try to get 'pClockHour'
2022.12.14 11:28:59 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2022.12.14 11:28:59 5: Mythz sending 02
2022.12.14 11:28:59 5: SW: 02
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '10'
2022.12.14 11:28:59 5: Mythz sending 0100310A01251003
2022.12.14 11:28:59 5: SW: 0100310A01251003
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '10'
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '02'
2022.12.14 11:28:59 5: Mythz sending 10
2022.12.14 11:28:59 5: SW: 10
2022.12.14 11:28:59 5: Mythz start Function THZ_ReadAnswer
2022.12.14 11:28:59 5: THZ_ReadAnswer: uc unpack: '01003C0A01250B001003'
2022.12.14 11:28:59 5: Mythz sending 10
2022.12.14 11:28:59 5: SW: 10
2022.12.14 11:28:59 5: Parse message: 3C0A01250B00
2022.12.14 11:28:59 5: Message length: 12
2022.12.19 17:59:46 1: usb create starting
2022.12.19 17:59:46 3: Probing CUL device /dev/ttyS0
2022.12.19 17:59:47 3: Probing CUL device /dev/ttyS1
2022.12.19 17:59:47 1: PERL WARNING: can't getattr: Input/output error at FHEM/DevIo.pm line 612.
2022.12.19 17:59:47 1: CUL: Can't open /dev/ttyS1: Input/output error
2022.12.19 17:59:47 3: Probing CUL device /dev/ttyS2
2022.12.19 17:59:47 1: CUL: Can't open /dev/ttyS2: Input/output error
2022.12.19 17:59:47 3: Probing CUL device /dev/ttyS3
2022.12.19 17:59:47 1: CUL: Can't open /dev/ttyS3: Input/output error
2022.12.19 17:59:47 1: usb create end
define WEB FHEMWEB 8083 global
attr WEB menuEntries Update,cmd=update,UpdateCheck,cmd=update+check,Restart,cmd=shutdown+restart
# BYTES_READ 102890
# BYTES_WRITTEN 1441879
# CONNECTS 66
# CSRFTOKEN csrf_xxxxxxxxxxxxxxxxx
# DEF 8083 global
# FD 5
# FUUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# NAME WEB
# NR 31
# NTFY_ORDER 50-WEB
# PORT 8083
# STATE Initialized
# TYPE FHEMWEB
# READINGS:
# 2022-12-19 18:07:30 state Initialized
#
setstate WEB 2022-12-19 18:07:30 state Initialized
define initialUsbCheck notify global:INITIALIZED usb create
# DEF global:INITIALIZED usb create
# FUUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# NAME initialUsbCheck
# NOTIFYDEV global
# NR 41
# NTFY_ORDER 50-initialUsbCheck
# REGEXP global:INITIALIZED
# STATE 2022-12-19 18:07:30
# TRIGGERTIME xxxxxxxxxxx.xxxxx
# TYPE notify
# READINGS:
# 2022-12-19 18:07:30 state active
# 2022-12-19 18:07:30 triggeredByDev global
# 2022-12-19 18:07:30 triggeredByEvent INITIALIZED
#
setstate initialUsbCheck 2022-12-19 18:07:30
setstate initialUsbCheck 2022-12-19 18:07:30 state active
setstate initialUsbCheck 2022-12-19 18:07:30 triggeredByDev global
setstate initialUsbCheck 2022-12-19 18:07:30 triggeredByEvent INITIALIZED
attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3
# DEF no definition
# FD 3
# NAME global
# NR 1
# STATE no definition
# TYPE Global
# currentlogfile ./log/fhem-2022-12.log
# eventCount 24
# init_errors Messages collected while initializing FHEM:SecurityCheck:
# WEB is not password protected
#
#Protect this FHEM installation by defining an allowed device with define allowed allowed
#You can disable this message with attr global motd none
#
# logfile ./log/fhem-%Y-%m.log
#
setstate global no definition
define Mythz THZ dns1.fritz.box:2000
attr Mythz devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr Mythz event-min-interval s.*:3600
attr Mythz event-on-change-reading .*
attr Mythz firmware 2.06
attr Mythz interval_sDHW 600
attr Mythz interval_sElectrDHWDay 3600
attr Mythz interval_sElectrDHWTotal 28800
attr Mythz interval_sGlobal 600
attr Mythz interval_sHC1 600
attr Mythz interval_sHeatDHWDay 3600
attr Mythz interval_sHeatDHWTotal 28800
attr Mythz interval_sHeatRecoveredDay 3600
attr Mythz interval_sHeatRecoveredTotal 28800
attr Mythz interval_sHistory 28800
attr Mythz interval_sLast10errors 28800
attr Mythz room Heating
attr Mythz userReadings insideSetTemp:sHC1.* {THZ_Val("sHC1",21)}, insideTemp:sHC1.* {THZ_Val("sHC1",27)}, AussenTemp:sGlobal.* {THZ_Val("sGlobal",1)}
# CFGFN
# DEF dns1.fritz.box:2000
# DeviceName dns1.fritz.box:2000
# FD 8
# FUUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# NAME Mythz
# NR 59
# NTFY_ORDER 50-Mythz
# PARTIAL
# STATE opened
# TYPE THZ
# VERSION 0.205
# eventCount 551
# model 2.06_02.16
# READINGS:
# 2022-12-20 16:18:01 AussenTemp 6.2
# 2022-12-19 18:21:59 inputVentilatorPower 45 %
# 2022-12-19 18:12:38 inputVentilatorSpeed 19 %
# 2022-12-20 16:15:55 insideSetTemp 20.5
# 2022-12-20 16:15:55 insideTemp 0
# 2022-12-19 18:26:41 mainVentilatorPower 60 %
# 2022-12-19 18:22:42 mainVentilatorSpeed 17 %
# 2022-12-19 18:18:21 outputVentilatorPower %
# 2022-12-19 18:23:10 outputVentilatorSpeed 17 %
# 2022-12-20 06:57:54 p01-p12 p01RoomTempDay: 20.5 p02RoomTempNight: 20.5 p03RoomTempStandby: 10 p04DHWsetTempDay: 48 p05DHWsetTempNight: 48 p06DHWsetTempStandby: 10 p07FanStageDay: 2 p08FanStageNight: 2 p09FanStageStandby: 2 p10HCTempManual: 35 p11DHWsetTempManual: 48 p12FanStageManual: 1
# 2022-12-19 18:22:28 p01RoomTempDay 20.5 °C
# 2022-12-19 18:12:12 p02RoomTempNight 20.5 °C
# 2022-12-19 18:17:42 p03RoomTempStandby 10 °C
# 2022-12-19 18:26:56 p04DHWsetTempDay 48 °C
# 2022-12-19 18:17:20 p05DHWsetTempNight 48 °C
# 2022-12-19 18:18:12 p06DHWsetTempStandby 10 °C
# 2022-12-19 18:12:36 p07FanStageDay 2
# 2022-12-19 18:12:28 p08FanStageNight 2
# 2022-12-19 18:17:34 p09FanStageStandby 2
# 2022-12-19 18:18:14 p10HCTempManual 35 °C
# 2022-12-19 18:15:14 p11DHWsetTempManual 48 °C
# 2022-12-19 18:26:44 p12FanStageManual 1
# 2022-12-19 18:12:14 p13GradientHC1 0.4
# 2022-12-19 18:12:18 p14LowEndHC1 3 K
# 2022-12-19 18:26:41 p15RoomInfluenceHC1 0
# 2022-12-19 18:26:44 p16GradientHC2 0.6
# 2022-12-19 18:13:00 p17LowEndHC2 0 K
# 2022-12-19 18:27:00 p18RoomInfluenceHC2 0
# 2022-12-19 18:12:52 p19FlowProportionHC1 30 %
# 2022-12-19 18:23:04 p20FlowProportionHC2 100 %
# 2022-12-19 18:22:30 p21Hyst1 4 K
# 2022-12-19 18:23:16 p22Hyst2 3 K
# 2022-12-19 18:20:34 p23Hyst3 3 K
# 2022-12-19 18:17:52 p24Hyst4 2 K
# 2022-12-19 18:12:46 p25Hyst5 1 K
# 2022-12-19 18:26:50 p29HystAsymmetry 2
# 2022-12-19 18:18:04 p30integralComponent 100 Kmin
# 2022-12-19 18:12:58 p32HystDHW 2 K
# 2022-12-19 18:12:42 p33BoosterTimeoutDHW 90 min
# 2022-12-19 18:18:10 p34TempLimitBoostDHW -5 °C
# 2022-12-19 18:13:14 p35PasteurisationInterval error Days
# 2022-12-19 18:22:18 p36MaxDurationDHWLoad 12 h
# 2022-12-19 18:12:40 p37Fanstage1AirflowInlet 100 m3/h
# 2022-12-19 18:17:44 p38Fanstage2AirflowInlet 135 m3/h
# 2022-12-19 18:22:48 p39Fanstage3AirflowInlet 170 m3/h
# 2022-12-19 18:23:21 p40Fanstage1AirflowOutlet too m3/h
# 2022-12-19 18:17:58 p41Fanstage2AirflowOutlet 135 m3/h
# 2022-12-19 18:22:38 p42Fanstage3AirflowOutlet 170 m3/h
# 2022-12-19 18:12:50 p43UnschedVent3 60 min
# 2022-12-19 18:17:28 p44UnschedVent2 60 min
# 2022-12-19 18:26:48 p45UnschedVent1 60 min
# 2022-12-19 18:21:52 p46UnschedVent0 60 min
# 2022-12-19 18:12:44 p47CompressorRestartDelay 20 min
# 2022-12-19 18:22:16 p48MainFanSpeed 60 %
# 2022-12-19 18:17:22 p49SummerModeTemp 17 °C
# 2022-12-19 18:26:52 p50SummerModeHysteresis 2 K
# 2022-12-19 18:23:08 p54MinPumpCycles 1 /Day
# 2022-12-19 18:21:48 p55MaxPumpCycles 288 /Day
# 2022-12-19 18:17:48 p56OutTempMaxPumpCycles 15 °C
# 2022-12-19 18:22:22 p57OutTempMinPumpCycles 20 °C
# 2022-12-19 18:26:46 p58SuppressTempCaptPumpStart 60 s
# 2022-12-19 18:22:08 p75PassiveCooling 0
# 2022-12-19 18:26:52 p77OutTempFilterTime 1 h
# 2022-12-19 18:13:02 p78DualModePoint 0 °C
# 2022-12-19 18:13:04 p79BoosterTimeoutHC 20 min
# 2022-12-19 18:22:58 p80EnableSolar 0
# 2022-12-19 18:12:48 pAbsence pA0DurationUntilAbsenceStart: 0 pA0AbsenceDuration: 0 pA0EnableAbsenceProg: 0
# 2022-12-19 18:27:46 pCircPump p54MinPumpCycles: 1 p55MaxPumpCycles: 288 p56OutTempMaxPumpCycles: 15 p57OutTempMinPumpCycles: 20 p58SuppressTempCaptPumpStart: 60
# 2022-12-19 18:22:00 pClockDay 19
# 2022-12-19 18:12:30 pClockHour 18
# 2022-12-19 18:12:54 pClockMinutes 13
# 2022-12-19 18:23:06 pClockMonth 12
# 2022-12-19 18:20:22 pClockYear 22
# 2022-12-19 18:26:48 pDHW p32HystDHW: 2 p33BoosterTimeoutDHW: 90 p34TempLimitBoostDHW: -5 p35PasteurisationInterval: 30 p36MaxDurationDHWLoad: 12 pasteurisationTemp: 10 maxBoostStagesDHW: 3 p84EnableDHWBuffer: 0
# 2022-12-19 18:28:02 pDHWProg progDHWStartTime: 23:00 progDHWEndTime: 07:00 progDHWMonday: 1 progDHWTuesday: 1 progDHWWednesday: 1 progDHWThursday: 1 progDHWFriday: 1 progDHWSaturday: 1 progDHWSunday: 1 progDHWEnable: 0
# 2022-12-19 18:23:14 pDefrostAA MaxDefrostDurationAAExchenger: 60 DefrostStartThreshold: 4 VolumeFlowFilterReplacement: 90
# 2022-12-19 18:22:16 pDefrostEva UpTempLimitDefrostEvaporatorEnd: 15.1 MaxTimeDefrostEvaporator: 10 LimitTempCondenserElectBoost: 15 LimitTempCondenserDefrostTerm: 8.3 p47CompressorRestartDelay: 20 p48MainFanSpeed: 60
# 2022-12-20 06:59:19 pDryHeat p70StartDryHeat: 0 p71BaseTemp: 25 p72PeakTemp: 40 p73TempDuration: 2 p74TempIncrease: 1
# 2022-12-19 18:26:48 pFan p37Fanstage1AirflowInlet: 100 p38Fanstage2AirflowInlet: 135 p39Fanstage3AirflowInlet: 170 p40Fanstage1AirflowOutlet: 100 p41Fanstage2AirflowOutlet: 135 p42Fanstage3AirflowOutlet: 170 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 0
# 2022-12-19 18:26:41 pFanProg progFAN1StartTime: 20:00 progFAN1EndTime: 09:00 progFAN1Monday: 1 progFAN1Tuesday: 1 progFAN1Wednesday: 1 progFAN1Thursday: 1 progFAN1Friday: 1 progFAN1Saturday: 1 progFAN1Sunday: 1 progFAN1Enable: 0 progFAN2StartTime: 13:30 progFAN2EndTime: 14:30 progFAN2Monday: 1 progFAN2Tuesday: 1 progFAN2Wednesday: 1 progFAN2Thursday: 1 progFAN2Friday: 1 progFAN2Saturday: 1 progFAN2Sunday: 1 progFAN2Enable: 0
# 2022-12-19 18:26:41 pHeat1 p13GradientHC1: 0.4 p14LowEndHC1: 3 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
# 2022-12-19 18:26:50 pHeat2 p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 3 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 1 p27Hyst7: 1 p28Hyst8: 1 p29HystAsymmetry: 2 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 17 p50SummerModeHysteresis: 2 p77OutTempFilterTime: 1 p78DualModePoint: 0 p79BoosterTimeoutHC: 20
# 2022-12-19 18:23:08 pHeatProg progHC1StartTime: 23:00 progHC1EndTime: 07:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 0 progHC1Sunday: 0 progHC1Enable: 0 progHC2StartTime: 00:00 progHC2EndTime: 08:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 1 progHC2Sunday: 1 progHC2Enable: 0
# 2022-12-19 18:26:58 pRestart p59RestartBeforeSetbackEnd: 0
# 2022-12-19 18:22:58 pSolar p80EnableSolar: 0 p81DiffTempSolarLoading: 5 p82DelayCompStartSolar: 60 p84DHWTempSolarMode: 60 HystDiffTempSolar: 1 CollectLimitTempSolar: 60
# 2022-12-19 18:22:14 progDHWEnable 0
# 2022-12-19 18:22:34 progDHWEndTime 07:00
# 2022-12-19 18:12:08 progDHWFriday 1
# 2022-12-19 18:17:26 progDHWMonday 1
# 2022-12-19 18:22:02 progDHWSaturday 1
# 2022-12-19 18:18:00 progDHWStartTime 23:00
# 2022-12-19 18:22:50 progDHWSunday 1
# 2022-12-19 18:20:26 progDHWThursday 1
# 2022-12-19 18:12:56 progDHWTuesday 1
# 2022-12-19 18:22:20 progDHWWednesday 1
# 2022-12-19 18:22:06 progFAN1Enable 0
# 2022-12-19 18:23:00 progFAN1EndTime 09:00
# 2022-12-19 18:12:34 progFAN1Friday 1
# 2022-12-19 18:21:46 progFAN1Monday 1
# 2022-12-19 18:21:42 progFAN1Saturday 1
# 2022-12-19 18:12:06 progFAN1StartTime 20:00
# 2022-12-19 18:23:16 progFAN1Sunday 1
# 2022-12-19 18:18:06 progFAN1Thursday 1
# 2022-12-19 18:22:12 progFAN1Tuesday 1
# 2022-12-19 18:12:04 progFAN1Wednesday 1
# 2022-12-19 18:26:42 progFAN2Enable 0
# 2022-12-19 18:21:44 progFAN2EndTime 14:30
# 2022-12-19 18:26:54 progFAN2Friday 1
# 2022-12-19 18:22:54 progFAN2Monday 1
# 2022-12-19 18:22:56 progFAN2Saturday 1
# 2022-12-19 18:26:42 progFAN2StartTime 13:30
# 2022-12-19 18:12:16 progFAN2Sunday 1
# 2022-12-19 18:22:44 progFAN2Thursday 1
# 2022-12-19 18:26:41 progFAN2Tuesday 1
# 2022-12-19 18:26:46 progFAN2Wednesday 1
# 2022-12-19 18:12:22 progHC1Enable 0
# 2022-12-19 18:20:24 progHC1EndTime 07:00
# 2022-12-19 18:21:50 progHC1Friday 1
# 2022-12-19 18:22:24 progHC1Monday 1
# 2022-12-19 18:12:10 progHC1Saturday 0
# 2022-12-19 18:13:06 progHC1StartTime 23:00
# 2022-12-19 18:20:38 progHC1Sunday 0
# 2022-12-19 18:22:40 progHC1Thursday 1
# 2022-12-19 18:17:50 progHC1Tuesday 1
# 2022-12-19 18:17:24 progHC1Wednesday 1
# 2022-12-19 18:15:19 progHC2Enable
# 2022-12-19 18:22:52 progHC2EndTime 08:00
# 2022-12-19 18:12:26 progHC2Friday 0
# 2022-12-19 18:17:46 progHC2Monday 0
# 2022-12-19 18:22:10 progHC2Saturday 1
# 2022-12-19 18:17:54 progHC2StartTime 00:00
# 2022-12-19 18:22:36 progHC2Sunday 1
# 2022-12-19 18:20:32 progHC2Thursday 0
# 2022-12-19 18:13:12 progHC2Tuesday 0
# 2022-12-19 18:22:32 progHC2Wednesday 0
# 2022-12-20 07:03:21 sControl heatRequest: 2 heatRequest2: 2 hcStage: 2 dhwStage: 0 heatStageControlModul: 2 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 1 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
# 2022-12-20 16:21:52 sDHW dhwTemp: 49.7 outsideTemp: 6.3 dhwSetTemp: 48 compBlockTime: 0 out: 011C heatBlockTime: 0 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: normal x36: 78FF
# 2022-12-20 07:02:30 sFan statusAFC: 512 supplyFanSpeedCAL: 4.5 exhaustFanSpeedCAL: 157.866666666667 supplyFanAirflowCAL: 3.07 exhaustFanAirflowCAL: 220.16 supplyFanSpeed: 274 exhaustFanSpeed: 14336 supplyFanAirflowSet: 342 exhaustFanAirflowSet: 38144 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 1.4 supplyFanSpeed200: 411.8 exhaustFanSpeed200: 435.2 airflowTolerance: 135 airflowCalibrationInterval: 0 timeToCalibration: 135
# 2022-12-20 07:02:20 sFirmware version: 02.16
# 2022-12-20 16:18:01 sGlobal outsideTemp: 6.2 flowTemp: 27.6 returnTemp: 26.3 hotGasTemp: 36.6 dhwTemp: 49.8 flowTempHC2: 0 evaporatorTemp: 10.5 condenserTemp: 26.8 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 45 inputVentilatorPower: 45 mainVentilatorPower: 0 outputVentilatorSpeed: 25 inputVentilatorSpeed: 20 mainVentilatorSpeed: 0 outsideTempFiltered: 6.6 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 81 insideTemp: 0
# 2022-12-20 16:15:55 sHC1 outsideTemp: 6.3 x08: -47.8 returnTemp: 26.3 integralHeat: -33 flowTemp: 27.6 heatSetTemp: 29.4 heatTemp: 26.6 seasonMode: winter integralSwitch: 100 hcOpMode: normal roomSetTemp: 20.5 x60: 0 x64: 0 insideTempRC: 0 x72: 51.2 x76: 0 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0
# 2022-12-19 18:17:32 sHC2 outsideTemp: 2.4 returnTemp: 29 vorlaufTemp: 0 heatSetTemp: 31.4 heatTemp: 29 stellgroesse: -100 seasonMode: winter hcOpMode: normal
# 2022-12-20 10:12:23 sHistory operatingHours1: 881 operatingHours2: 882 heatingHours: 27286 DHWhours: 12777 coolingHours: 0
# 2022-12-20 10:26:51 sLast10errors number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
# 2022-12-20 07:01:24 sProgram opMode: automatic ProgStateHC: normal ProgStateDHW: normal ProgStateFAN: normal BaseTimeAP0: 52770 StatusAP0: 0 StartTimeAP0: 0 EndTimeAP0: 0
# 2022-12-19 18:17:38 sSol collectorTemp: 81 dhwTemp: 51.1 flowTemp: 33.2 edSolPump: 0 out: 111C status: CE
# 2022-12-20 07:01:34 sSystem userSetFanStage: 0 userSetFanRemainingTime: 0 lastErrors:
# 2022-12-20 07:01:45 sTimedate Weekday: Tuesday pClockHour: 7 pClockMinutes: 2 Sec: 30 pClockYear: 22 pClockMonth: 12 pClockDay: 20
# 2022-12-19 18:10:58 state opened
# 2022-12-20 09:55:50 z_Last_fhem_err THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
# helper:
#
setstate Mythz opened
setstate Mythz 2022-12-20 16:18:01 AussenTemp 6.2
setstate Mythz 2022-12-19 18:21:59 inputVentilatorPower 45 %
setstate Mythz 2022-12-19 18:12:38 inputVentilatorSpeed 19 %
setstate Mythz 2022-12-20 16:15:55 insideSetTemp 20.5
setstate Mythz 2022-12-20 16:15:55 insideTemp 0
setstate Mythz 2022-12-19 18:26:41 mainVentilatorPower 60 %
setstate Mythz 2022-12-19 18:22:42 mainVentilatorSpeed 17 %
setstate Mythz 2022-12-19 18:18:21 outputVentilatorPower %
setstate Mythz 2022-12-19 18:23:10 outputVentilatorSpeed 17 %
setstate Mythz 2022-12-20 06:57:54 p01-p12 p01RoomTempDay: 20.5 p02RoomTempNight: 20.5 p03RoomTempStandby: 10 p04DHWsetTempDay: 48 p05DHWsetTempNight: 48 p06DHWsetTempStandby: 10 p07FanStageDay: 2 p08FanStageNight: 2 p09FanStageStandby: 2 p10HCTempManual: 35 p11DHWsetTempManual: 48 p12FanStageManual: 1
setstate Mythz 2022-12-19 18:22:28 p01RoomTempDay 20.5 °C
setstate Mythz 2022-12-19 18:12:12 p02RoomTempNight 20.5 °C
setstate Mythz 2022-12-19 18:17:42 p03RoomTempStandby 10 °C
setstate Mythz 2022-12-19 18:26:56 p04DHWsetTempDay 48 °C
setstate Mythz 2022-12-19 18:17:20 p05DHWsetTempNight 48 °C
setstate Mythz 2022-12-19 18:18:12 p06DHWsetTempStandby 10 °C
setstate Mythz 2022-12-19 18:12:36 p07FanStageDay 2
setstate Mythz 2022-12-19 18:12:28 p08FanStageNight 2
setstate Mythz 2022-12-19 18:17:34 p09FanStageStandby 2
setstate Mythz 2022-12-19 18:18:14 p10HCTempManual 35 °C
setstate Mythz 2022-12-19 18:15:14 p11DHWsetTempManual 48 °C
setstate Mythz 2022-12-19 18:26:44 p12FanStageManual 1
setstate Mythz 2022-12-19 18:12:14 p13GradientHC1 0.4
setstate Mythz 2022-12-19 18:12:18 p14LowEndHC1 3 K
setstate Mythz 2022-12-19 18:26:41 p15RoomInfluenceHC1 0
setstate Mythz 2022-12-19 18:26:44 p16GradientHC2 0.6
setstate Mythz 2022-12-19 18:13:00 p17LowEndHC2 0 K
setstate Mythz 2022-12-19 18:27:00 p18RoomInfluenceHC2 0
setstate Mythz 2022-12-19 18:12:52 p19FlowProportionHC1 30 %
setstate Mythz 2022-12-19 18:23:04 p20FlowProportionHC2 100 %
setstate Mythz 2022-12-19 18:22:30 p21Hyst1 4 K
setstate Mythz 2022-12-19 18:23:16 p22Hyst2 3 K
setstate Mythz 2022-12-19 18:20:34 p23Hyst3 3 K
setstate Mythz 2022-12-19 18:17:52 p24Hyst4 2 K
setstate Mythz 2022-12-19 18:12:46 p25Hyst5 1 K
setstate Mythz 2022-12-19 18:26:50 p29HystAsymmetry 2
setstate Mythz 2022-12-19 18:18:04 p30integralComponent 100 Kmin
setstate Mythz 2022-12-19 18:12:58 p32HystDHW 2 K
setstate Mythz 2022-12-19 18:12:42 p33BoosterTimeoutDHW 90 min
setstate Mythz 2022-12-19 18:18:10 p34TempLimitBoostDHW -5 °C
setstate Mythz 2022-12-19 18:13:14 p35PasteurisationInterval error Days
setstate Mythz 2022-12-19 18:22:18 p36MaxDurationDHWLoad 12 h
setstate Mythz 2022-12-19 18:12:40 p37Fanstage1AirflowInlet 100 m3/h
setstate Mythz 2022-12-19 18:17:44 p38Fanstage2AirflowInlet 135 m3/h
setstate Mythz 2022-12-19 18:22:48 p39Fanstage3AirflowInlet 170 m3/h
setstate Mythz 2022-12-19 18:23:21 p40Fanstage1AirflowOutlet too m3/h
setstate Mythz 2022-12-19 18:17:58 p41Fanstage2AirflowOutlet 135 m3/h
setstate Mythz 2022-12-19 18:22:38 p42Fanstage3AirflowOutlet 170 m3/h
setstate Mythz 2022-12-19 18:12:50 p43UnschedVent3 60 min
setstate Mythz 2022-12-19 18:17:28 p44UnschedVent2 60 min
setstate Mythz 2022-12-19 18:26:48 p45UnschedVent1 60 min
setstate Mythz 2022-12-19 18:21:52 p46UnschedVent0 60 min
setstate Mythz 2022-12-19 18:12:44 p47CompressorRestartDelay 20 min
setstate Mythz 2022-12-19 18:22:16 p48MainFanSpeed 60 %
setstate Mythz 2022-12-19 18:17:22 p49SummerModeTemp 17 °C
setstate Mythz 2022-12-19 18:26:52 p50SummerModeHysteresis 2 K
setstate Mythz 2022-12-19 18:23:08 p54MinPumpCycles 1 /Day
setstate Mythz 2022-12-19 18:21:48 p55MaxPumpCycles 288 /Day
setstate Mythz 2022-12-19 18:17:48 p56OutTempMaxPumpCycles 15 °C
setstate Mythz 2022-12-19 18:22:22 p57OutTempMinPumpCycles 20 °C
setstate Mythz 2022-12-19 18:26:46 p58SuppressTempCaptPumpStart 60 s
setstate Mythz 2022-12-19 18:22:08 p75PassiveCooling 0
setstate Mythz 2022-12-19 18:26:52 p77OutTempFilterTime 1 h
setstate Mythz 2022-12-19 18:13:02 p78DualModePoint 0 °C
setstate Mythz 2022-12-19 18:13:04 p79BoosterTimeoutHC 20 min
setstate Mythz 2022-12-19 18:22:58 p80EnableSolar 0
setstate Mythz 2022-12-19 18:12:48 pAbsence pA0DurationUntilAbsenceStart: 0 pA0AbsenceDuration: 0 pA0EnableAbsenceProg: 0
setstate Mythz 2022-12-19 18:27:46 pCircPump p54MinPumpCycles: 1 p55MaxPumpCycles: 288 p56OutTempMaxPumpCycles: 15 p57OutTempMinPumpCycles: 20 p58SuppressTempCaptPumpStart: 60
setstate Mythz 2022-12-19 18:22:00 pClockDay 19
setstate Mythz 2022-12-19 18:12:30 pClockHour 18
setstate Mythz 2022-12-19 18:12:54 pClockMinutes 13
setstate Mythz 2022-12-19 18:23:06 pClockMonth 12
setstate Mythz 2022-12-19 18:20:22 pClockYear 22
setstate Mythz 2022-12-19 18:26:48 pDHW p32HystDHW: 2 p33BoosterTimeoutDHW: 90 p34TempLimitBoostDHW: -5 p35PasteurisationInterval: 30 p36MaxDurationDHWLoad: 12 pasteurisationTemp: 10 maxBoostStagesDHW: 3 p84EnableDHWBuffer: 0
setstate Mythz 2022-12-19 18:28:02 pDHWProg progDHWStartTime: 23:00 progDHWEndTime: 07:00 progDHWMonday: 1 progDHWTuesday: 1 progDHWWednesday: 1 progDHWThursday: 1 progDHWFriday: 1 progDHWSaturday: 1 progDHWSunday: 1 progDHWEnable: 0
setstate Mythz 2022-12-19 18:23:14 pDefrostAA MaxDefrostDurationAAExchenger: 60 DefrostStartThreshold: 4 VolumeFlowFilterReplacement: 90
setstate Mythz 2022-12-19 18:22:16 pDefrostEva UpTempLimitDefrostEvaporatorEnd: 15.1 MaxTimeDefrostEvaporator: 10 LimitTempCondenserElectBoost: 15 LimitTempCondenserDefrostTerm: 8.3 p47CompressorRestartDelay: 20 p48MainFanSpeed: 60
setstate Mythz 2022-12-20 06:59:19 pDryHeat p70StartDryHeat: 0 p71BaseTemp: 25 p72PeakTemp: 40 p73TempDuration: 2 p74TempIncrease: 1
setstate Mythz 2022-12-19 18:26:48 pFan p37Fanstage1AirflowInlet: 100 p38Fanstage2AirflowInlet: 135 p39Fanstage3AirflowInlet: 170 p40Fanstage1AirflowOutlet: 100 p41Fanstage2AirflowOutlet: 135 p42Fanstage3AirflowOutlet: 170 p43UnschedVent3: 60 p44UnschedVent2: 60 p45UnschedVent1: 60 p46UnschedVent0: 60 p75PassiveCooling: 0
setstate Mythz 2022-12-19 18:26:41 pFanProg progFAN1StartTime: 20:00 progFAN1EndTime: 09:00 progFAN1Monday: 1 progFAN1Tuesday: 1 progFAN1Wednesday: 1 progFAN1Thursday: 1 progFAN1Friday: 1 progFAN1Saturday: 1 progFAN1Sunday: 1 progFAN1Enable: 0 progFAN2StartTime: 13:30 progFAN2EndTime: 14:30 progFAN2Monday: 1 progFAN2Tuesday: 1 progFAN2Wednesday: 1 progFAN2Thursday: 1 progFAN2Friday: 1 progFAN2Saturday: 1 progFAN2Sunday: 1 progFAN2Enable: 0
setstate Mythz 2022-12-19 18:26:41 pHeat1 p13GradientHC1: 0.4 p14LowEndHC1: 3 p15RoomInfluenceHC1: 0 p16GradientHC2: 0.6 p17LowEndHC2: 0 p18RoomInfluenceHC2: 0 p19FlowProportionHC1: 30 p20FlowProportionHC2: 100 MaxSetHeatFlowTempHC1: 45 MinSetHeatFlowTempHC1: 5 MaxSetHeatFlowTempHC2: 35 MinSetHeatFlowTempHC2: 5
setstate Mythz 2022-12-19 18:26:50 pHeat2 p21Hyst1: 4 p22Hyst2: 3 p23Hyst3: 3 p24Hyst4: 2 p25Hyst5: 1 p26Hyst6: 1 p27Hyst7: 1 p28Hyst8: 1 p29HystAsymmetry: 2 p30integralComponent: 100 p31MaxBoostStages: 3 MaxHeatFlowTemp: 75 p49SummerModeTemp: 17 p50SummerModeHysteresis: 2 p77OutTempFilterTime: 1 p78DualModePoint: 0 p79BoosterTimeoutHC: 20
setstate Mythz 2022-12-19 18:23:08 pHeatProg progHC1StartTime: 23:00 progHC1EndTime: 07:00 progHC1Monday: 1 progHC1Tuesday: 1 progHC1Wednesday: 1 progHC1Thursday: 1 progHC1Friday: 1 progHC1Saturday: 0 progHC1Sunday: 0 progHC1Enable: 0 progHC2StartTime: 00:00 progHC2EndTime: 08:00 progHC2Monday: 0 progHC2Tuesday: 0 progHC2Wednesday: 0 progHC2Thursday: 0 progHC2Friday: 0 progHC2Saturday: 1 progHC2Sunday: 1 progHC2Enable: 0
setstate Mythz 2022-12-19 18:26:58 pRestart p59RestartBeforeSetbackEnd: 0
setstate Mythz 2022-12-19 18:22:58 pSolar p80EnableSolar: 0 p81DiffTempSolarLoading: 5 p82DelayCompStartSolar: 60 p84DHWTempSolarMode: 60 HystDiffTempSolar: 1 CollectLimitTempSolar: 60
setstate Mythz 2022-12-19 18:22:14 progDHWEnable 0
setstate Mythz 2022-12-19 18:22:34 progDHWEndTime 07:00
setstate Mythz 2022-12-19 18:12:08 progDHWFriday 1
setstate Mythz 2022-12-19 18:17:26 progDHWMonday 1
setstate Mythz 2022-12-19 18:22:02 progDHWSaturday 1
setstate Mythz 2022-12-19 18:18:00 progDHWStartTime 23:00
setstate Mythz 2022-12-19 18:22:50 progDHWSunday 1
setstate Mythz 2022-12-19 18:20:26 progDHWThursday 1
setstate Mythz 2022-12-19 18:12:56 progDHWTuesday 1
setstate Mythz 2022-12-19 18:22:20 progDHWWednesday 1
setstate Mythz 2022-12-19 18:22:06 progFAN1Enable 0
setstate Mythz 2022-12-19 18:23:00 progFAN1EndTime 09:00
setstate Mythz 2022-12-19 18:12:34 progFAN1Friday 1
setstate Mythz 2022-12-19 18:21:46 progFAN1Monday 1
setstate Mythz 2022-12-19 18:21:42 progFAN1Saturday 1
setstate Mythz 2022-12-19 18:12:06 progFAN1StartTime 20:00
setstate Mythz 2022-12-19 18:23:16 progFAN1Sunday 1
setstate Mythz 2022-12-19 18:18:06 progFAN1Thursday 1
setstate Mythz 2022-12-19 18:22:12 progFAN1Tuesday 1
setstate Mythz 2022-12-19 18:12:04 progFAN1Wednesday 1
setstate Mythz 2022-12-19 18:26:42 progFAN2Enable 0
setstate Mythz 2022-12-19 18:21:44 progFAN2EndTime 14:30
setstate Mythz 2022-12-19 18:26:54 progFAN2Friday 1
setstate Mythz 2022-12-19 18:22:54 progFAN2Monday 1
setstate Mythz 2022-12-19 18:22:56 progFAN2Saturday 1
setstate Mythz 2022-12-19 18:26:42 progFAN2StartTime 13:30
setstate Mythz 2022-12-19 18:12:16 progFAN2Sunday 1
setstate Mythz 2022-12-19 18:22:44 progFAN2Thursday 1
setstate Mythz 2022-12-19 18:26:41 progFAN2Tuesday 1
setstate Mythz 2022-12-19 18:26:46 progFAN2Wednesday 1
setstate Mythz 2022-12-19 18:12:22 progHC1Enable 0
setstate Mythz 2022-12-19 18:20:24 progHC1EndTime 07:00
setstate Mythz 2022-12-19 18:21:50 progHC1Friday 1
setstate Mythz 2022-12-19 18:22:24 progHC1Monday 1
setstate Mythz 2022-12-19 18:12:10 progHC1Saturday 0
setstate Mythz 2022-12-19 18:13:06 progHC1StartTime 23:00
setstate Mythz 2022-12-19 18:20:38 progHC1Sunday 0
setstate Mythz 2022-12-19 18:22:40 progHC1Thursday 1
setstate Mythz 2022-12-19 18:17:50 progHC1Tuesday 1
setstate Mythz 2022-12-19 18:17:24 progHC1Wednesday 1
setstate Mythz 2022-12-19 18:15:19 progHC2Enable
setstate Mythz 2022-12-19 18:22:52 progHC2EndTime 08:00
setstate Mythz 2022-12-19 18:12:26 progHC2Friday 0
setstate Mythz 2022-12-19 18:17:46 progHC2Monday 0
setstate Mythz 2022-12-19 18:22:10 progHC2Saturday 1
setstate Mythz 2022-12-19 18:17:54 progHC2StartTime 00:00
setstate Mythz 2022-12-19 18:22:36 progHC2Sunday 1
setstate Mythz 2022-12-19 18:20:32 progHC2Thursday 0
setstate Mythz 2022-12-19 18:13:12 progHC2Tuesday 0
setstate Mythz 2022-12-19 18:22:32 progHC2Wednesday 0
setstate Mythz 2022-12-20 07:03:21 sControl heatRequest: 2 heatRequest2: 2 hcStage: 2 dhwStage: 0 heatStageControlModul: 2 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 1 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
setstate Mythz 2022-12-20 16:21:52 sDHW dhwTemp: 49.7 outsideTemp: 6.3 dhwSetTemp: 48 compBlockTime: 0 out: 011C heatBlockTime: 0 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: normal x36: 78FF
setstate Mythz 2022-12-20 07:02:30 sFan statusAFC: 512 supplyFanSpeedCAL: 4.5 exhaustFanSpeedCAL: 157.866666666667 supplyFanAirflowCAL: 3.07 exhaustFanAirflowCAL: 220.16 supplyFanSpeed: 274 exhaustFanSpeed: 14336 supplyFanAirflowSet: 342 exhaustFanAirflowSet: 38144 supplyFanSpeedTarget: 0 exhaustFanSpeedTarget: 0 supplyFanSpeed0: 0 exhaustFanSpeed0: 1.4 supplyFanSpeed200: 411.8 exhaustFanSpeed200: 435.2 airflowTolerance: 135 airflowCalibrationInterval: 0 timeToCalibration: 135
setstate Mythz 2022-12-20 07:02:20 sFirmware version: 02.16
setstate Mythz 2022-12-20 16:18:01 sGlobal outsideTemp: 6.2 flowTemp: 27.6 returnTemp: 26.3 hotGasTemp: 36.6 dhwTemp: 49.8 flowTempHC2: 0 evaporatorTemp: 10.5 condenserTemp: 26.8 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 45 inputVentilatorPower: 45 mainVentilatorPower: 0 outputVentilatorSpeed: 25 inputVentilatorSpeed: 20 mainVentilatorSpeed: 0 outsideTempFiltered: 6.6 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 81 insideTemp: 0
setstate Mythz 2022-12-20 16:15:55 sHC1 outsideTemp: 6.3 x08: -47.8 returnTemp: 26.3 integralHeat: -33 flowTemp: 27.6 heatSetTemp: 29.4 heatTemp: 26.6 seasonMode: winter integralSwitch: 100 hcOpMode: normal roomSetTemp: 20.5 x60: 0 x64: 0 insideTempRC: 0 x72: 51.2 x76: 0 onHysteresisNo: 0 offHysteresisNo: 1 hcBoosterStage: 0
setstate Mythz 2022-12-19 18:17:32 sHC2 outsideTemp: 2.4 returnTemp: 29 vorlaufTemp: 0 heatSetTemp: 31.4 heatTemp: 29 stellgroesse: -100 seasonMode: winter hcOpMode: normal
setstate Mythz 2022-12-20 10:12:23 sHistory operatingHours1: 881 operatingHours2: 882 heatingHours: 27286 DHWhours: 12777 coolingHours: 0
setstate Mythz 2022-12-20 10:26:51 sLast10errors number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
setstate Mythz 2022-12-20 07:01:24 sProgram opMode: automatic ProgStateHC: normal ProgStateDHW: normal ProgStateFAN: normal BaseTimeAP0: 52770 StatusAP0: 0 StartTimeAP0: 0 EndTimeAP0: 0
setstate Mythz 2022-12-19 18:17:38 sSol collectorTemp: 81 dhwTemp: 51.1 flowTemp: 33.2 edSolPump: 0 out: 111C status: CE
setstate Mythz 2022-12-20 07:01:34 sSystem userSetFanStage: 0 userSetFanRemainingTime: 0 lastErrors:
setstate Mythz 2022-12-20 07:01:45 sTimedate Weekday: Tuesday pClockHour: 7 pClockMinutes: 2 Sec: 30 pClockYear: 22 pClockMonth: 12 pClockDay: 20
setstate Mythz 2022-12-19 18:10:58 state opened
setstate Mythz 2022-12-20 09:55:50 z_Last_fhem_err THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step1 -- F4 ->
Zitat von: joker4791 am 14 Dezember 2022, 12:34:29Dear Joker
at 11:28 I sent 'pClockHour' = '10', but as answer in the receiving dialog it says '11'. Also hen reading that parameter the value still is '11'.
Zitat von: sunrise am 20 Dezember 2022, 16:33:39fhem searches for a "CUL interface" connected via USB automatically
@immi
I have now installed FHEM on a VM (on a Synology DS920+) and it seems to function correctly with the THZ (very few "too slow" messages). The THZ is still connected via shielded cable (3 wires) and USB-serial adapter. On the VM client, ser2net runs on port 2000 (with 9600 baud). Can you please let me know what the below warnings and errors mean and if I have to do something about them? Thank you very much!
2022.12.19 17:59:46 1: usb create starting
2022.12.19 17:59:46 3: Probing CUL device /dev/ttyS0
2022.12.19 17:59:47 3: Probing CUL device /dev/ttyS1
Zitat von: immi am 21 Dezember 2022, 17:46:53That makes me wonder. I switch to daylight saving time in spring and back to normal time in autumn automatically without any issue. Works since years.
Dear Joker
thanks for sharing the issue;
the tecalor acknoledges the change on pClockHour, and ignores it afterwords :(
no idea why.
I reproduced the issue on my tecalor.
immi
Zitat von: willybauss am 21 Dezember 2022, 20:22:03interesting difference.
That makes me wonder. I switch to daylight saving time in spring and back to normal time in autumn automatically without any issue. Works since years.
Zitat von: willybauss am 21 Dezember 2022, 23:00:08My THZ 303 SOL does not automatically switch between CET and CEST, i.e. I have to adjust the clock via the (old) LCD panel. Maybe it depends on the firmware? I have 2.16.
Maybe I'm wrong. Does the THZ 303 SOL have a built-in option for setting daylight saving time? Maybe I do it using that feature. Can't remember currently.
Zitat von: immi am 21 Dezember 2022, 22:04:54Same here - also with the kids. ;D
interesting difference.
(in my case)
I can change pClockMinutes --- pClockDay, pClockHour, pClockMonth cannot be modified by fhem
it is like when you tell your children bed-time, they answer yes and ignore completely your order :) :)
Zitat von: robert82h am 30 März 2023, 19:31:48Does anybody have an idea how I could find the right addresses for these registers, so that I can extend 00_THZ.pm to read them?I see no correlation between ISGmodbus and serial reading.
I might also be able to guess the register addresses, but I would need a way to verify the values I read.
set Mythz programHC1_Fr_0 00:15--00:45
($arg !~ /^(?:\d|[01]\d|2[0-3]):[0-5]\d$/ )
ad is should not accept higher than 23:59
set Mythz programHC1_Tu_2 21:00--24:00
see the error herereturn "Argument does not match the allowed inerval Min $argMin ...... Max $argMax " if (($arg ne "n.a.") and ($arg1 ne "n.a.") and (($arg !~ /^(?:\d|[01]\d|2[0-3]):[0-5]\d$/ ) or ($arg1 !~ /^24:00|(?:\d|[01]\d|2[0-3]):[0-5]\d$/ )) ) ;
update fhem tomorrow and it should work Zitat von: willybauss am 24 Juni 2023, 16:23:44For clock synchronisation, setting minutes should be sufficient.That's right.
Zitat von: TheTrumpeter am 24 Juni 2023, 13:28:50For me setting of pClockHour does not work. I can read the actual value with "get" command, but when trying to "set" it does not change the value, the return-value is always the old value.same for me
When I change the value on the heatpump itself I get the new one with a "get".
Zitat von: TheTrumpeter am 24 Juni 2023, 19:01:45(Maybe it's not even required to wait until 12:00, I have to try that some other day.)I tried that today, it did not work:
Zitat von: rett_de am 18 August 2023, 07:14:10Hi all!Hi
Can somebody enhance the THZ Module with the following values? HC2 for cooling is not supported, actually. I think, using HC2 is needed for most installations.
0C0287 : p99CoolingHC2Switch, "on" sets it 0x0001 and "off" sets 0x0000
0C0582 : p99CoolingHC2SetTemp
0C0583 : p99CoolingHC2HystersisFlowTemp
0C0584 : p99CoolingHC2HystersisRoomTemp
0C0264 : sDewPointHC2
Zitat von: immi am 19 August 2023, 22:47:36Dear immi - exact. 5.39 is the firmware rev. Thanks for your support!Zitat von: rett_de am 18 August 2023, 07:14:10Hi all!Hi
Can somebody enhance the THZ Module with the following values? HC2 for cooling is not supported, actually. I think, using HC2 is needed for most installations.
0C0287 : p99CoolingHC2Switch, "on" sets it 0x0001 and "off" sets 0x0000
0C0582 : p99CoolingHC2SetTemp
0C0583 : p99CoolingHC2HystersisFlowTemp
0C0584 : p99CoolingHC2HystersisRoomTemp
0C0264 : sDewPointHC2
I expect you have 539 or higher.
am I right?
immi
Zitat von: immi am 21 August 2023, 10:28:44new code committedHi Immi - I tested it via direct downloading from svn. It works as expected with all the parameters. Thank you so much!
try this evening or tomorrow an update
Zitat von: TheTrumpeter am 05 September 2023, 15:36:48I remember a "set" command to clear the fault-memory which was available in earlier versions of THZ-module.hi
Was that removed some time back or is the memory in my brain corrupted?
Zitat von: immi am 05 September 2023, 18:07:04Thanks immi, I was not aware of separate "technican" option in firmware-attribute. I now changed from 4.39 to 4.39technican and "zResetLast10errors" is there now.Zitat von: TheTrumpeter am 05 September 2023, 15:36:48I remember a "set" command to clear the fault-memory which was available in earlier versions of THZ-module.hi
Was that removed some time back or is the memory in my brain corrupted?
I remember setting zResetLast10errors to 0
probably you need to change firmware attr to 4.39technician
outsideTemp: 11.1 flowTemp: 26.8 returnTemp: 26.6 hotGasTemp: 33.6 dhwTemp: 47.1 flowTempHC2: 0 evaporatorTemp: 22.4 condenserTemp: 27.3 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 0 boosterStage2: 0 boosterStage3: n.a. boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 24 inputVentilatorPower: 24 mainVentilatorPower: 0 outputVentilatorSpeed: 18 inputVentilatorSpeed: 23 mainVentilatorSpeed: 0 outsideTempFiltered: 9.3 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 28.1 insideTemp: 0
heatPipeValve {(split ' ',ReadingsVal("Mythz","sGlobal",0))[21]}
I get the result "heatPipeValveMythz:sGlobal.* set mqtt_io publish -r fhem/LWZ303sol/Readings/{((split(":","$EVTPART0"))[0])} {"{((split(":","$EVTPART0"))[0])}":{"{((split(":","$EVTPART1"))[0])}":$EVTPART2,"{((split(":","$EVTPART3"))[0])}":$EVTPART4,"{((split(":","$EVTPART5"))[0])}":$EVTPART6,"{((split(":","$EVTPART7"))[0])}":$EVTPART8,"{((split(":","$EVTPART9"))[0])}":$EVTPART10,"{((split(":","$EVTPART11"))[0])}":$EVTPART12","{((split(":","$EVTPART13"))[0])}":$EVTPART14","{((split(":","$EVTPART15"))[0])}":$EVTPART16,"{((split(":","$EVTPART17"))[0])}":$EVTPART18","{((split(":","$EVTPART19"))[0])}":$EVTPART20","{((split(":","$EVTPART21"))[0])}":$EVTPART22","{((split(":","$EVTPART23"))[0])}":$EVTPART24"}}
{"sGlobal":{"outsideTemp":11.1,"flowTemp":26.8,"returnTemp":26.6,"hotGasTemp":33.6,"dhwTemp":47.1,"flowTempHC2":0","evaporatorTemp":22.4","condenserTemp":27.3,"mixerOpen":0","mixerClosed":0","11.11":11.12","11.13":11.14"}}
Zitat von: abu18 am 18 Oktober 2023, 10:08:34So, do you think it is possible to implement "Stellventil WW"/control wave(?) WW for the firmware "5.39"?For sure it is possible. You just have to give me the hex address of this register.
Zitat von: immi am 18 Oktober 2023, 20:41:16For sure it is possible. You just have to give me the hex address of this register.
Zitat von: TheTrumpeter am 06 September 2023, 06:36:53Thanks immi, I was not aware of separate "technican" option in firmware-attribute. I now changed from 4.39 to 4.39technican and "zResetLast10errors" is there now.Hi immi,
As I've already resettet the error-memory manually yesterday in the afternoon I cannot try whether it works. I'll remember it and if the error occurs again I'll try that option.
[pre]3.10.25 16:55:29 1: Including fhem.cfg
2023.10.25 16:55:30 3: WEB: port 8083 opened
2023.10.25 16:55:30 3: WEBphone: port 8084 opened
2023.10.25 16:55:30 3: WEBtablet: port 8085 opened
2023.10.25 16:55:30 2: eventTypes: loaded 117 lines from ./log/eventTypes.txt
2023.10.25 16:55:30 3: Opening Mythz device /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0
2023.10.25 16:55:30 3: Setting Mythz serial parameters to 14400,8,N,1
2023.10.25 16:55:30 3: Mythz device opened
2023.10.25 16:55:30 1: Including /opt/fhem/log/fhem.save
2023.10.25 16:55:34 1: PERL WARNING: Use of uninitialized value $data{"currval2"} in concatenation (.) or string at (eval 8285) line 1.
2023.10.25 16:55:34 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:55:34 1: PERL WARNING: Use of uninitialized value $data{"currval3"} in concatenation (.) or string at (eval 8285) line 1.
2023.10.25 16:55:34 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:55:34 1: PERL WARNING: Use of uninitialized value $data{"currval4"} in concatenation (.) or string at (eval 8285) line 1.
2023.10.25 16:55:34 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:55:34 1: PERL WARNING: Use of uninitialized value $data{"currval5"} in concatenation (.) or string at (eval 8285) line 1.
2023.10.25 16:55:34 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:57:30 1: PERL WARNING: Use of uninitialized value $data{"currval2"} in concatenation (.) or string at (eval 8327) line 1.
2023.10.25 16:57:30 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:57:30 1: PERL WARNING: Use of uninitialized value $data{"currval3"} in concatenation (.) or string at (eval 8327) line 1.
2023.10.25 16:57:30 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:57:30 1: PERL WARNING: Use of uninitialized value $data{"currval4"} in concatenation (.) or string at (eval 8327) line 1.
2023.10.25 16:57:30 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 16:57:30 1: PERL WARNING: Use of uninitialized value $data{"currval5"} in concatenation (.) or string at (eval 8327) line 1.
2023.10.25 16:57:30 3: eval: { "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz" }
2023.10.25 17:08:15 3: THZ_Get: Error msg2: decode: new unknown answer -- FD -> 01829A171003[/pre]
Are these warnings due to me not having correctly defined something, or I have wrong calcs?### Plot 4
define Mythz_Plot4_Fans SVG FileLog_Mythz:thz4:CURRENT
setuuid Mythz_Plot4_Fans xxxxx
attr Mythz_Plot4_Fans label "Zu-Soll $data{currval1}%, Zu-Ist $data{currval2}Hz, Ab-Soll $data{currval3}%, Ab-Ist $data{currval4}Hz, Fort-Ist $data{currval5}Hz"
attr Mythz_Plot4_Fans plotsize 840,210
attr Mythz_Plot4_Fans room Heizung_Plot
attr WEB JavaScripts codemirror/fhem_codemirror.js
Zitat von: abu18 am 19 Oktober 2023, 11:45:40And can you give me a hint how I can determine the hex address?Hi abu
Zitat von: sunrise am 28 Oktober 2023, 06:43:43Hi immi,
Can you please give me a hint what is wrong here?
The Plot looks ok (to me), though. Or what might I be overseeing?
thz4plot_2023-10-25.png
Thanks a lot for your help! 👍
sFirmware | version: 02.16 |
firmware | 2.06 |
ZitatTecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2
Zitat von: TheTrumpeter am 22 Oktober 2023, 18:47:555.39technicanimplemented
021001000A0910031002100100E309009D009D6F633994000000000010031002100100FDFC100310021001006DFC00040C211A17000B03100310
Zitat2023.11.01 23:55:04 3: GetsHeatRecoveredDay: Unknown argument sHeatRecoveredDay, choose one of inputVentilatorPower:noArg inputVentilatorSpeed:noArg mainVentilatorPower:noArg mainVentilatorSpeed:noArg outputVentilatorPower:noArg outputVentilatorSpeed:noArg p01-p12:noArg p01RoomTempDay:noArg p02RoomTempNight:noArg p03RoomTempStandby:noArg p04DHWsetTempDay:noArg p05DHWsetTempNight:noArg p06DHWsetTempStandby:noArg p07FanStageDay:noArg p08FanStageNight:noArg p09FanStageStandby:noArg p10HCTempManual:noArg p11DHWsetTempManual:noArg p12FanStageManual:noArg p13GradientHC1:noArg p14LowEndHC1:noArg p15RoomInfluenceHC1:noArg p16GradientHC2:noArg p17LowEndHC2:noArg p18RoomInfluenceHC2:noArg p19FlowProportionHC1:noArg p20FlowProportionHC2:noArg p21Hyst1:noArg p22Hyst2:noArg p23Hyst3:noArg p24Hyst4:noArg p25Hyst5:noArg p29HystAsymmetry:noArg p30integralComponent:noArg p32HystDHW:noArg p33BoosterTimeoutDHW:noArg p34TempLimitBoostDHW:noArg p35PasteurisationInterval:noArg p36MaxDurationDHWLoad:noArg p37Fanstage1AirflowInlet:noArg p38Fanstage2AirflowInlet:noArg p39Fanstage3AirflowInlet:noArg p40Fanstage1AirflowOutlet:noArg p41Fanstage2AirflowOutlet:noArg p42Fanstage3AirflowOutlet:noArg p43UnschedVent3:noArg p44UnschedVent2:noArg p45UnschedVent1:noArg p46UnschedVent0:noArg p47CompressorRestartDelay:noArg p48MainFanSpeed:noArg p49SummerModeTemp:noArg p50SummerModeHysteresis:noArg p54MinPumpCycles:noArg p55MaxPumpCycles:noArg p56OutTempMaxPumpCycles:noArg p57OutTempMinPumpCycles:noArg p58SuppressTempCaptPumpStart:noArg p75PassiveCooling:noArg p77OutTempFilterTime:noArg p78DualModePoint:noArg p79BoosterTimeoutHC:noArg p80EnableSolar:noArg pAbsence:noArg pCircPump:noArg pClockDay:noArg pClockHour:noArg pClockMinutes:noArg pClockMonth:noArg pClockYear:noArg pDHW:noArg pDHWProg:noArg pDefrostAA:noArg pDefrostEva:noArg pDryHeat:noArg pFan:noArg pFanProg:noArg pHeat1:noArg pHeat2:noArg pHeatProg:noArg pRestart:noArg pSolar:noArg progDHWEnable:noArg progDHWEndTime:noArg progDHWFriday:noArg progDHWMonday:noArg progDHWSaturday:noArg progDHWStartTime:noArg progDHWSunday:noArg progDHWThursday:noArg progDHWTuesday:noArg progDHWWednesday:noArg progFAN1Enable:noArg progFAN1EndTime:noArg progFAN1Friday:noArg progFAN1Monday:noArg progFAN1Saturday:noArg progFAN1StartTime:noArg progFAN1Sunday:noArg progFAN1Thursday:noArg progFAN1Tuesday:noArg progFAN1Wednesday:noArg progFAN2Enable:noArg progFAN2EndTime:noArg progFAN2Friday:noArg progFAN2Monday:noArg progFAN2Saturday:noArg progFAN2StartTime:noArg progFAN2Sunday:noArg progFAN2Thursday:noArg progFAN2Tuesday:noArg progFAN2Wednesday:noArg progHC1Enable:noArg progHC1EndTime:noArg progHC1Friday:noArg progHC1Monday:noArg progHC1Saturday:noArg progHC1StartTime:noArg progHC1Sunday:noArg progHC1Thursday:noArg progHC1Tuesday:noArg progHC1Wednesday:noArg progHC2Enable:noArg progHC2EndTime:noArg progHC2Friday:noArg progHC2Monday:noArg progHC2Saturday:noArg progHC2StartTime:noArg progHC2Sunday:noArg progHC2Thursday:noArg progHC2Tuesday:noArg progHC2Wednesday:noArg sControl:noArg sDHW:noArg sFan:noArg sFirmware:noArg sGlobal:noArg sHC1:noArg sHC2:noArg sHistory:noArg sLast10errors:noArg sProgram:noArg sSol:noArg sSystem:noArg sTimedate:noArg zBackupParameters:noArg
Zitat von: sunrise am 03 November 2023, 12:35:49What's the best way to find out about the (subtle?) differences between my FW 2.16 and the FW versions 2.06 and 2.14 that you consider in your code?the best way is to ask tecalor for a documentation of their registers :)Code Auswählen021001000A0910031002100100E309009D009D6F633994000000000010031002100100FDFC100310021001006DFC00040C211A17000B03100310
Zitat02 hi heatpump, I want to talk2) interprete 009D009D6F6339940000000000
10 OK
0100 0A09 1003 I would like to read register 09, my checksum is 0A
10 OK
02 sending answer
10 OK
0100 E309 009D009D6F6339940000000000 1003 I send you register 09 with checksum E3
10 OK
Zitat von: sunrise am 04 November 2023, 14:53:39Fine, but where in your code do I find the codes that you already have?
Zitat von: immi am 04 November 2023, 10:03:19line 113 from andre.k in https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/00_THZ.pmyou can contact andre.k
Zitat von: immi am 30 Oktober 2023, 10:12:10Thanks a lot!Zitat von: TheTrumpeter am 22 Oktober 2023, 18:47:555.39technicanimplemented
Zitat von: abu18 am 18 Oktober 2023, 10:08:34Now, I am looking for a solution to activate "Stellventil WW" (control wave?) in the "Fachmann" level with fhem.
"zControlValve_DHW" => {cmd2=>"0A0653", argMin => "0", argMax => "1", type =>"1clean", unit =>""},
Zitat von: abu18 am 18 Oktober 2023, 10:08:34Now, my idea is to set the "Stellventil WW" when starting WW heating.
Zitat"zFlowRate" => {cmd2=>"0A01DA", type =>"5temp", unit =>"l/min"}
2023.11.18 00:11:00 3: THZ_Get: Error msg2: THZ_ReadAnswer: InterfaceNotRespondig. Maybe too slow THZ_Get_Com: error found at step0 -- 0A0176 ->
operatingHours1: 283 operatingHours2: 283 heatingHours: 28532 DHWhours: 14751 coolingHours: 0
operatingHours1: 502 operatingHours2: 501 heatingHours: 28593 DHWhours: 14765 coolingHours: 0
compressorHeating: 7175 compressorCooling: 1204 compressorDHW: 1887 boosterDHW: 5 boosterHeating: 31
heatRequest: 5 heatRequest2: 5 hcStage: 0 dhwStage: 0 heatStageControlModul: 0 compBlockTime: 0 pasteurisationMode: 0 defrostEvaporator: 10 boosterStage2: 0 solarPump: 0 boosterStage1: 0 compressor: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 mixerOpen: 0 mixerClosed: 0 sensorBits1: 01 sensorBits2: 01 boostBlockTimeAfterPumpStart: 0 boostBlockTimeAfterHD: 0
010002011003-01-68010064008700AA0064008700AA0000003C000000000000
01000A091003-09-010901F701F66FB239AE0000000000
010017161003-16-151602FA01CF020900000A003C1200CF00
0100D2D11003-D1-6DD1030300170138064A000F07EE090600170454096A000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0100D3D21003-D2-0100D3D21003-UpTempLimitDefrostEvaporatorEnd: 5499.4 MaxTimeDefrostEvaporator: 4099-decode: command not known
0100E9E81003-E8-0100E9E81003-018255D21003-decode: new unknown answer
0100EAE91003-E9-D2E90000000000000000000003E80000000000121CCE0000000000000000000100
0100F3F21003-F2-1BF20000000202000000101200010100000000
0100F4F31003-F3-A6F301CF003B01A40000121C0F08020100011E9B
0100F5F41003-F4-A1F4003BFF1101DCFFFE0209012201E900010001120000960100000000D200000000000002000000F0
0100F6F51003-F5-68F5003B01DC0000013601DCFC180001121C0100000200000000
0100F7F61003-F6-07F600000000FF1000FFFF0100000000000200000000
0100F9F81003-F8-0100F9F81003-UpTempLimitDefrostEvaporatorEnd: 6476 MaxTimeDefrostEvaporator: 4099-decode: command not known
0100FCFB1003-FB-FBFB02FA003B020901DC03A801CF00000000FFE901F1121C393999CD241B11000031000000000000000202
0100FDFC1003-FC-8EFC000509222D17000B12
0100FEFD1003-FD-D6FD00D8
0100FFFE1003-FE-0100FFFE1003-UpTempLimitDefrostEvaporatorEnd: 76.6 MaxTimeDefrostEvaporator: 4099-decode: command not known
010000FF1003-FF-010000FF1003-UpTempLimitDefrostEvaporatorEnd: 102.3 MaxTimeDefrostEvaporator: 4099-decode: command not known
Zitat von: zdravec am 18 November 2023, 08:43:22I was using one year an old raspberry 3a+, but it was slow and often the ui was unresponsive.Did you just take the SD-card from 3A+ out and put it into 4B or did you start with a complete new installation with maybe a newer version of OS?
Some weeks ago I changed to raspberry 4b and the ui is fast, but since 3 days I have different problem.
Nov 17 21:47:57 fhem kernel: cp210x ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -3
. I have to search, what exactly the reason for this can be. I changed now to an usb3 port, let see, if it is more stable.
Zitatthat the Pi's USB ports can supply a maximum of 6 watts (5V at up to 1.2A, which is shared by all USB ports in use). If the total of all of your USB devices is more than 1.2A they won't work reliably (if at all)(https://forums.raspberrypi.com/viewtopic.php?p=2038055&#p2038055)
p59RestartBeforeSetbackEnd: 0
So P59 is not available for set and get but only as part of pRestart. Same question here: Would you mind adding it separately? Or how could I change its setting via FHEM/THZ module?ZitatDie Schalthysteresen H1 bis H5 sind symmetrisch um den Heizkreistemperatur-Sollwert angelegt. Sinkt die Heizkreistemperatur, wird bei Heizkreissolltemperatur - Hysterese H1 eine Leistungsstufe zugeschaltet. Bei Heizkreisolltemperatur - H1 - H2 wird eine weitere Stufe zugeschaltet. Steigt die Heizkreistemperatur, so wird bei Heizkreissolltemperatur + H1 eine Leistungsstufe weggeschaltet. Übersteigt die Heizkreistemperatur die Heizkreissolltemperatur + H1 + H2, wird eine weitere Stufe weggeschaltet. Im Normalfall wird die Heizung im eingeschwungenen Zustand zwischen zwei Stufen hin- und herschalten. Unter Umständen können große Abweichungen vom Sollwert auftreten, wenn die Heizkreistemperatur z.B. nach einer Sperrzeit des Elektrizitätsversorgers weit unterhalb des Sollwertes liegt oder wenn sich der Sollwert z.B. nach einer Absenkzeit sprunghaft ändert. Bevor die Abweichung vom Sollwert zu groß wird, werden durch den Integralanteil (s. P30) die Heizstufen zeitabhängig zu- oder weggeschaltet.
"pClockDay" => {parent=>"sTimedate",argMin => "1", argMax => "31", type =>"pclean", unit =>""},
"pClockMonth" => {parent=>"sTimedate",argMin => "1", argMax => "12", type =>"pclean", unit =>""},
"pClockYear" => {parent=>"sTimedate",argMin => "12", argMax => "20", type =>"pclean", unit =>""},
"pClockHour" => {parent=>"sTimedate",argMin => "0", argMax => "23", type =>"pclean", unit =>""},
"pClockMinutes" => {parent=>"sTimedate",argMin => "0", argMax => "59", type =>"pclean", unit =>""},
(lines 705 (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/00_THZ.pm#L705) ff. in trunk)
Zitat von: abu18 am 12 November 2023, 17:40:34"zControlValveDHW" => {cmd2=>"0A0653", argMin => "0", argMax => "1", type =>"1clean", unit =>""},I can add zControlValveDHW, if you want
Zitat von: abu18 am 18 Oktober 2023, 10:08:34"zFlowRate" => {cmd2=>"0A01DA", type =>"5temp", unit =>"l/min"}I do not like the name zFlowRate: it should start with "s" if read only and it is to similar to sFlowRate
ZitatcompressorHeating: 938 compressorCooling: 0 compressorDHW: 89 boosterDHW: 0 boosterHeating: 0
ZitatoperatingHours1: 283 operatingHours2: 283 heatingHours: 28532 DHWhours: 14751 coolingHours: 0
Zitat2023-11-27_15:40:05 Mythz sHistory: operatingHours1: 717 operatingHours2: 717 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_15:45:05 Mythz sHistory: operatingHours1: 718 operatingHours2: 717 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_15:50:05 Mythz sHistory: operatingHours1: 718 operatingHours2: 717 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_15:55:05 Mythz sHistory: operatingHours1: 718 operatingHours2: 717 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_16:00:06 Mythz sHistory: operatingHours1: 718 operatingHours2: 717 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_16:05:06 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_16:10:06 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_16:15:06 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14782 coolingHours: 0
2023-11-27_16:20:06 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:25:11 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:30:11 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:35:14 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:40:14 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:45:14 Mythz sHistory: operatingHours1: 718 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:50:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_16:55:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_17:00:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 718 heatingHours: 28648 DHWhours: 14783 coolingHours: 0
2023-11-27_17:05:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 718 heatingHours: 28649 DHWhours: 14783 coolingHours: 0
2023-11-27_17:10:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 719 heatingHours: 28649 DHWhours: 14783 coolingHours: 0
2023-11-27_17:15:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 719 heatingHours: 28649 DHWhours: 14783 coolingHours: 0
2023-11-27_17:20:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 719 heatingHours: 28649 DHWhours: 14783 coolingHours: 0
2023-11-27_17:25:14 Mythz sHistory: operatingHours1: 719 operatingHours2: 719 heatingHours: 28649 DHWhours: 14783 coolingHours: 0
Zitat von: sunrise am 28 November 2023, 14:34:21Is it possible that you change the time stamps of the THZ module (currently 2023.11.28 13:53:44) so it matches FHEM's time stamp (2023-11-28_13:53:44)? It would help quickly comparing and finding certain events in both logs. Thanks for your consideration.THZ has no timestamp.
Zitat von: immi am 20 November 2023, 21:19:56I can add zControlValveDHW, if you want
Zitat von: immi am 20 November 2023, 21:19:56I do not like the name zFlowRate: it should start with "s" if read only and it is to similar to sFlowRate
boosterStage3: 1 boosterStage2: 0 boosterStage1: 1
Zitat von: abu18 am 30 November 2023, 23:45:13Hi immi,zControlValveDHW committed
Yes, please :-)
Zitat von: sunrise am 30 November 2023, 16:10:54Are you aware of projects in MicroPython that handle a serial communication with handshake etc. as is necessary for the THZ?there are several implementation in c of ser2net with esp32 or esp8266 working with fhem
my %getsonly539 = ( #info from belu and godmorgon
806 "sFlowRate" => {cmd2=>"0A033B", type =>"1clean", unit =>" cl/min"},
...
810 "sComprRelPower" => {cmd2=>"0A069B", type =>"1clean", unit =>" %"},
Zitat von: immi am 07 Dezember 2023, 21:00:05zControlValveDHW committed
Zitat von: mwuerr am 18 Dezember 2023, 15:12:54can anyone with a THZ 504 or a different inverter base system who uses getsonly539 confirm my findings?
Zitat von: abu18 am 19 Dezember 2023, 08:01:47@mwuerr: For me (LWZ 304 Trend/5.39technician) sFlowRate is correct...Hi mwuerr,
Zitat von: immi am 29 Dezember 2023, 11:51:56With abu18 contraddiction, I cannot change the code for 5.39
Zitat von: immi am 29 Dezember 2023, 11:51:56If you see more differences and aggregate them, I can make you a version like 5.39mwuerrI will monitor it, gather and contact you. Thanks.
Zitat von: TheTrumpeter am 11 Januar 2024, 13:05:42up to 30 °C. I guess that's the same for all versions and firmwares.
Zitat von: mwuerr am 06 Januar 2024, 23:43:46After talking privately to immi I have agreed with him that we will improve the wiki article.There are some first "results".
...
Zitat von: mwuerr am 12 Januar 2024, 23:45:37I would appreciate it if someone could review...Related to that:
* https://wiki.fhem.de/wiki/Benutzer:Mwuerr/Parameter_THZ#sDisplay
Zitat von: mwuerr am 13 Januar 2024, 00:04:12My THZ504 has 2 additional "Picture symbols on the display":
* Aufheizen / Heat-up: This symbol shows when the dry heating (screed drying)
program runs.
* EVU-Sperre / Power-OFF: This symbol lights up if the appliance has no enable signal
from the power supply utility.
ZitatModbus Adresse: 2001
Objekt-bezeichung: BETRIEBSSTATUS
LWZ LWA: x x
Bemerkung: bitcodiert
Min. Wert: 0
Max. Wert: 65535
Daten- typ: 6
Schreiben/ Lesen (w/r): r
Codierung Option
SCHALTPROGRAMM-AKTIV B0
VERDICHTER B1
HEIZEN B2
KUEHLEN B3
WARMWASSERBEREITUNG B4
ELEKTRISCHE-NACHERWAERMUNG B5
SERVICE B6
EVU-SPERRE B7
FILTERWECHSEL-BEIDE B8
LUEFTUNG B9
HEIZKREISPUMPE B10
ABTAUEN-VERDAMPFER B11
FILTERWECHSEL-ABLUFT B12
FILTERWECHSEL-ZULUFT B13
AUFHEIZPROGRAMM-AKTIV B14
"0A0176Dis" =>
[["switchingProg: ", 11, 1, "bit0", 1], // SCHALTPROGRAMM-AKTIV B0
[" compressor: ", 11, 1, "bit1", 1], // VERDICHTER B1
[" heatingHC: ", 11, 1, "bit2", 1], // HEIZEN B2
[" cooling: ", 11, 1, "bit3", 1], // KUEHLEN B3 <<reordered
[" heatingDHW: ", 10, 1, "bit0", 1], // WARMWASSERBEREITUNG B4
[" boosterHC: ", 10, 1, "bit1", 1], // ELEKTRISCHE-NACHERWAERMUNG B5
[" service: ", 10, 1, "bit2", 1], // SERVICE B6 <<reordered
missing // EVU-SPERRE B7
[" filterBoth: ", 9, 1, "bit0", 1], // FILTERWECHSEL-BEIDE B8
[" ventStage: ", 9, 1, "bit1", 1], // LUEFTUNG B9
[" pumpHC: ", 9, 1, "bit2", 1], // HEIZKREISPUMPE B10
[" defrost: ", 9, 1, "bit3", 1], // ABTAUEN-VERDAMPFER B11
[" filterUp: ", 8, 1, "bit0", 1], // FILTERWECHSEL-ABLUFT B12
[" filterDown: ", 8, 1, "bit1", 1], // FILTERWECHSEL-ZULUFT B13
missing // AUFHEIZPROGRAMM-AKTIV B14
,
[" powerOff: ", 10, 1, "bit3", 1], // EVU-SPERRE B7 / Power-OFF
[" heatUp: ", 8, 1, "bit2", 1] // AUFHEIZPROGRAMM-AKTIV B14 / Heat-up
5002 REGLERKENNUNG LWZ 303/403 Integral/
SOL 103
LWA 403 103
LWZ 304/404 Trend 103
LWZ 304/404 FLEX 103
LWZ Smart 103
LWZ 604 Air 103
LWZ 5 S Plus 103
LWZ 5 S Trend 103
LWZ 5 S Smart 103
LWZ 304/404 SOL 104
LWZ 504 104
LWZ 5/8 CS Premium 104
WPM 3 390
WPM 3i 391
WPMsystem 449
Zitat von: mwuerr am 06 Januar 2024, 12:32:23Thanks @abu18 for mentioning that yours is a LWZ 304 Trend. Can you please provide your firmware version.
Zitat von: mwuerr am 13 Januar 2024, 00:04:12I would need a raw value of 0A0176Dis / 0A0176 in order to see the change. How can I get 00_THZ.pm to print me the raw value into annother reading?easy way: set the mythz attribute verbose to 5, read/write the register and look at the fhem logfile
2024.01.25 13:36:49.362 5: THZ_Get: Try to get 'sDisplay'
.......
2024.01.25 13:36:49.400 5: Parse message: 830A01760001
in this case 83 is the checksum; 0A0176 is the register; 0001 is the raw answerZitat von: mwuerr am 16 Januar 2024, 00:44:33reading further in the ISG manual I have stubled accross something else that sounds very interesting and that could help us here in the long run.LWZ 8 CS Premium = THZ504.Code Auswählen5002 REGLERKENNUNG LWZ 303/403 Integral/
...
LWZ 5/8 CS Premium 104
Zitat von: mwuerr am 29 Januar 2024, 00:50:04parameter Gerätetyp in Menu/Einstellungen/Inbetriebnahme/Regler/Gerätetyp. english: "APPLIANCE TYPE"
Zitat von: mwuerr am 29 Januar 2024, 00:59:50Still confirmation from anyone would be nice.I can confirm that my display on the LWZ has the ability to change the parameter "Gerätetyp". For my LWZ404SOL it's configured as "LWZ 404". In the manual the default-value is described as "1" (possible options are "LWZ 304" and "LWZ 404"), which points to the direction that "LWZ 304" might have the raw-value 0x01 as described above by you.
(Beware: DON't write this parameter. The risks is minimal as it should be protected from accidential write by a special service code).
Zitat von: TheTrumpeter am 29 Januar 2024, 07:14:02For my LWZ404SOL it's configured as "LWZ 404". In the manual the default-value is described as "1" (possible options are "LWZ 304" and "LWZ 404"), which points to the direction that "LWZ 304" might have the raw-value 0x01 as described above by you.The manual you are refering to is covering LWZ304 SOL and LWZ404 SOL?
Zitat von: mwuerr am 29 Januar 2024, 00:50:04Menu/Einstellungen/Inbetriebnahme/Regler/GerätetypChecked this with my old THZ 303 SOL - menu doesn't exist here. The only visible identifier in "Inbetriebnahme" menu is "Softwarestand" which is set to 4.1.9.
Zitat von: mwuerr am 29 Januar 2024, 21:01:53LWZ404 vs LWZ404SOL? Ah now i see, this is annother case of Stiebel rebranding stuff it has already sold. 2010 desigend and sold als LWZ404, then ~2015 LWZ404 got renamed to LWZ404SOL probably when LWZ404Trend was designed.No that's not correct, I bought it in 2011 and got it 2021 as "LWZ 404 SOL".
Zitat von: mwuerr am 29 Januar 2024, 21:01:53What document date does yours have?Creation-date as per PDF-metadata is March 11th 2011.
Zitat von: TheTrumpeter am 30 Januar 2024, 16:43:13On last page there's a text next to the brand-logo "291865-36114-8635".
FilterBoth:sDisplay.* {(split ' ',ReadingsVal("Mythz","sDisplay",0))[11]},
Zitat von: andre.k am 08 Februar 2018, 19:55:31Das Register sDisplay existiert höchstwahrscheinlich gar nicht in der alten Firmware. Bei mir in v2.14 wird der Filterwechsel als Fehler angezeigt und kann über das Register sSystem ausgelesen werden. Ich weiss nicht, ob es das Register auch in 2.06 gibt. Auf jeden Fall können in 2.06 laut Programmcode die Fehler darüberhinaus über sLast10errors gelesen werden. Das wäre doch ein Lösungsansatz für Deine Aufgabe.
2024-02-25_09:02:42 Mythz sSystem: userSetFanStage: 0 userSetFanRemainingTime: 0 lastErrors:
pDefrostAA: MaxDefrostDurationAAExchenger: 60 DefrostStartThreshold: 4 VolumeFlowFilterReplacement: 90
Zitat von: sunrise am 25 Februar 2024, 09:36:21How can I find out when that FILT message was triggered and then in a next step find out if/how I can define an alarm programatically?Dear Sunrise
Zitat von: daywood am 03 März 2024, 05:56:45Hallo zusammen,
ich nutze das Modul erfolgreich zur Überwachung und Steuerung der Heizung über ioBroker.
Ich bin aktuell auf ein Problem gestoßen, welches sicher kein großes Problem ist, ich aber nicht gelöst bekomme.
Ich möchte bei PV Überschuss warmes Wasser mit Hilfe des Heizstabes erzeugen. Das funktioniert auch schon alles einwandfrei. Allerdings ist der maximale Wert, den ich für "p04DHWsetTempDay" bei 55 Grad. In der Heizung selbst kann ich bis auf 65 Grad gehen.
Ich vermute, das kommt hier her: https://github.com/mhop/fhem-mirror/blob/291e6753cf56a9ea12ae18312e2231ff6be8e2b3/fhem/FHEM/00_THZ.pm#L434C3-L434C109
Ich habe aber keine Idee, ob, wie und wo ich dieses argMax anpassen kann.
Kann mir hier jemand helfen?
Vielen Dank und ein schönes Wochenende.
Zitat von: willybauss am 03 März 2024, 16:57:41[...]Ich habe eine Stiebel Eltron LWZ 5S Plus mit Softwareversion 5.5.
Wenn Du uns noch verrätst, welche Wärmepumpe und welche Firmwareversion Du verwendest, dann kann immi sicher schnell eine korrigierte Version des THZ-Moduls bauen.
Oder hast Du evtl. eine falsche Firmwareversion eingestellt, die nicht zu Deiner Anlage passt? Dafür gibts das Attribut "firmware".
Zitat von: daywood am 05 März 2024, 05:24:23Ich habe eine Stiebel Eltron LWZ 5S Plus mit Softwareversion 5.5.in my heatpump (firmware in fhem 4.39) "p04DHWsetTempDay" setting higher than 55° give me an error. Therefore the limitation to 55.
Das habe ich so auch eingestellt.
Zitat von: immi am 10 März 2024, 09:27:00As per installation manual it's imited to 55 °C for x04 SOL. I also use FW 5.39, so it would most probably cause the same error.Zitat von: daywood am 05 März 2024, 05:24:23Ich habe eine Stiebel Eltron LWZ 5S Plus mit Softwareversion 5.5.in my heatpump (firmware in fhem 4.39) "p04DHWsetTempDay" setting higher than 55° give me an error. Therefore the limitation to 55.
Das habe ich so auch eingestellt.
if more people with newer 5.39 confirm no error with 65°, I will enable it
Zitat von: willybauss am 10 März 2024, 17:19:32Mag sein, dass so ein selten benutzter Wert (eigentlich stellt man den nur einmal im Leben ein und fasst ihn dann nie mehr an) nicht implementiert ist.Ich würde gerne, je nach PV Überschuss, regeln können, ob ich mit Stufe 1 oder 2 zuheize.
Zitat von: daywood am 11 März 2024, 07:06:23immi baut neue Parameter immer recht rasch ein, d.h. Du musst ihm nur sagen an welcher Speicheradresse das zu finden ist. Weiter vorne in dem Thema ist auch erklärt wie man sich "auf die Suche danach" machen kann.Zitat von: willybauss am 10 März 2024, 17:19:32Mag sein, dass so ein selten benutzter Wert (eigentlich stellt man den nur einmal im Leben ein und fasst ihn dann nie mehr an) nicht implementiert ist.Ich würde gerne, je nach PV Überschuss, regeln können, ob ich mit Stufe 1 oder 2 zuheize.
Zitat von: TheTrumpeter am 11 März 2024, 07:23:48Weiter vorne in dem Thema ist auch erklärt wie man sich "auf die Suche danach" machen kann.Ich habe die 83 Seiten jetzt mal quer gelesen, konnte dazu aber nicht wirklich was finden.
Zitat von: daywood am 17 März 2024, 20:49:18Hast du einen Tipp/Link?Der Befehl heißt "readRAWRegisters". Die genaue Anleitung habe ich auf die Schnelle auch nicht gefunden, zumal die Suchfunktion offenbar nicht richtig funktioniert. Blätter' mal durch den Thread hier und suche danach, dann wird's Dir unterkommen. Wo/wie man es genau aufruft, kann ich mich auch nicht mehr erinnern, ich habe es schon sehr lange nicht benutzt.