THZ Tecalor (LWZ Stiebel Eltron) module support and code improvement.

Begonnen von immi, 02 Februar 2015, 11:42:16

Vorheriges Thema - Nächstes Thema

TheTrumpeter

Zitat von: immi am 05 September 2023, 18:07:04
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.
Was that removed some time back or is the memory in my brain corrupted?
hi
I remember setting zResetLast10errors to 0
probably you need to change firmware attr to 4.39technician
Thanks 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.
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.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

roliko

Ín general I´m new in FHEM and I user FHEM to connect my LWZ303sol to my homeautomation using HomeAssistant. To connect both systems I us MQTT.
in the first stage, I only send the information from FHEM to HomeAssistant. In the second stage I try to control the heatpump.

My System:
SE LWZ303sol (solar is disabled)
FW: 2.16 -> attr firmware configuration version 2.14
Connection: serial interface, speed 14400 (with 14400 it runs more stable as with 9600)

Connection is successful. Reading of most interested data is possible (some values seems to be not decoded correcttly). Setting of the values is also possible.

At the moment I prepare the data to sent them over MQTT. With the Variable sGlobal I have have a strange behavior:

command: get Mythz sGlobal
response:
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

With userReadings with following command: heatPipeValve {(split ' ',ReadingsVal("Mythz","sGlobal",0))[21]} I get the result "heatPipeValve
0".

But when using a notification to sent data to the MQTTBridge with Internals - DEF
Mythz: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"}}

the data sent to MQTT server is following

{"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"}}

The data with "11.11":11.12" should be "heatPipeValve": "0".
Also the next elements are showing the same or similar behavior.

I also tried so send the whole sGlobals over MQTT, but with the same result. Names and data are shown as "values" which are also changed.

Does anybody known how to solve this?
Thanks and best regards,
Roland

immi

I Roland
disclaimer: I do not use mqtt

neverstheless... I would divide the long registers like sGlobal with userreadings
and then send them automatically with MQTT_GENERIC_BRIDGE, which should not need notify.
If you need more help, search in the mqtt forum part
b.r.
immi

abu18

Hi,

at first: great work :-) I am using this module to completely control my LWZ 304 trend since a few years...

Now, I am looking for a solution to activate "Stellventil WW" (control wave?) in the "Fachmann" level with fhem. I have a 304 Trend and am using the firmware "5.39". In the firmware "4.39technician" there is a parameter "zPumpDHW". I think this is not what I am looking for, but I think this is also a function in the "Fachmann" level? So, do you think it is possible to implement "Stellventil WW"/control wave(?) WW for the firmware "5.39"?

Background: Since two months or so, I have the problem that the heating circuit (and the house :-)) gets warm during making WW. As quick solution, I just closed the heating circuit and it was OK then. But the cold period is coming and so this solution won't work any more. I also did some tests with switching from WW to heating circuit and back multiple times as suggested in the manual, but this didn't help. But: Whenever I set "Stellventil WW", it worked (flowrate sinks from ~24.5 to ~22.5 and the heating circuit gets cold). Now, my idea is to set the "Stellventil WW" when starting WW heating.

immi

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.

abu18

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.

And can you give me a hint how I can determine the hex address?

TheTrumpeter

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.
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.
Hi immi,

Resetting of the fault memory works now. Unfortunately I realised that I used 5.39 earlier that holds some additional parameters for cooling that I discovered some years back. Would you mind merging the set-command for resetting the fault memory into 5.39 or create a 5.39technican?
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

sunrise

@roliko
Hi Roland, have you made progress with MQTT and Home Assistant ? I also use HA (though on a separate Raspberry Pi than the one where FHEM runs - and I cannot change this) but was unable to get the connection working.
Viele Grüße/kind regards
sunrise
_________________
Tecalor 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

sunrise

Hi immi,

Can you please give me a hint what is wrong here?
[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

The Plot looks ok (to me), though. Or what might I be overseeing?

Du darfst diesen Dateianhang nicht ansehen.

Thanks a lot for your help! 👍
Viele Grüße/kind regards
sunrise
_________________
Tecalor 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

sunrise

By the way, is this known already? Add this to fhem.cfg:

attr WEB JavaScripts codemirror/fhem_codemirror.js
When editing e.g. fhem.cfg99_myUtils.pm, etc., the editor looks like this, which makes editing easier (IMO).
Viele Grüße/kind regards
sunrise
_________________
Tecalor 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

immi

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
Good connections to a tecalor firmware developer or reverse eng your heatpump and find the right cmd2=>"0A0XXX" by trial and error
If you want to try, there is a hidden function "debug_read_raw_register_slow"  in the 00_thz.pm
Some hints if you search in the forum
https://forum.fhem.de/index.php/topic,33452.msg526493.html#msg526493

immi

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?

Du darfst diesen Dateianhang nicht ansehen.

Thanks a lot for your help! 👍

I would start by understanding why you get the error
THZ_Get: Error msg2:  decode: new unknown answer  -- FD -> 01829A171003
It looks like you have set the wrong firmware model in fhem 214 vs 206


sunrise

#1167
Oh my bad - thank you! The type sticker on my THZ has "2.16" written by hand (maybe by the guys who installed it back in 2008). How could I confirm that it's really 2.16? Is it also written on the board (behind the electrics cover)?

Indeed under Readings I have:
sFirmwareversion: 02.16

But under Attributes I have:
firmware2.06

PS - please also note my sig - well, here it is:
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

I used both of your versions (2.06 and 2.14) 2-3 years back but then abandoned the whole topic of FHEM (temporarily), and now started all over again. Is my memory correct that your code for firmware version 2.06 is closer than your version 2.14 to my firmware version 2.16?
Viele Grüße/kind regards
sunrise
_________________
Tecalor 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


sunrise

#1169
Hi immi!

What'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?

I have a serial sniffer that shows (besides ASCII) also HEX code. E.g., when triggering the "Betriebszustand", the following is shown (not sure which format makes sense here, sorry, if it doesn't):

021001000A0910031002100100E309009D009D6F633994000000000010031002100100FDFC100310021001006DFC00040C211A17000B03100310

PS: Are LogFile messages like this a result of firmware version mismatch?
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
Viele Grüße/kind regards
sunrise
_________________
Tecalor 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