diff --git a/fhem/FHEM/00_THZ.pm b/fhem/FHEM/00_THZ.pm index 2261b2488..35948d4c0 100644 --- a/fhem/FHEM/00_THZ.pm +++ b/fhem/FHEM/00_THZ.pm @@ -1,8 +1,8 @@ ############################################## # 00_THZ # $Id$ -# by immi 12/2020 -my $thzversion = "0.193"; +# by immi 03/2021 +my $thzversion = "0.195"; # this code is based on the hard work of Robert; I just tried to port it # http://robert.penz.name/heat-pump-lwz/ ######################################################################################## @@ -65,59 +65,59 @@ sub THZ_Val($;$$); my %parsinghash = ( #msgtype => parsingrule - "01pxx206" => [["p37Fanstage1AirflowInlet: ", 4, 4, "hex", 1], [" p38Fanstage2AirflowInlet: ", 8, 4, "hex", 1], [" p39Fanstage3AirflowInlet: ", 12, 4, "hex", 1], - [" p40Fanstage1AirflowOutlet: ", 16, 4, "hex", 1], [" p41Fanstage2AirflowOutlet: ", 20, 4, "hex", 1], [" p42Fanstage3AirflowOutlet: ", 24, 4, "hex", 1], - [" p43UnschedVent3: ", 28, 4, "hex", 1], [" p44UnschedVent2: ", 32, 4, "hex", 1], [" p45UnschedVent1: ", 36, 4, "hex", 1], + "01pxx206" => [["p37Fanstage1AirflowInlet: ", 4, 4, "hex", 1], [" p38Fanstage2AirflowInlet: ", 8, 4, "hex", 1], [" p39Fanstage3AirflowInlet: ", 12, 4, "hex", 1], + [" p40Fanstage1AirflowOutlet: ", 16, 4, "hex", 1], [" p41Fanstage2AirflowOutlet: ", 20, 4, "hex", 1], [" p42Fanstage3AirflowOutlet: ", 24, 4, "hex", 1], + [" p43UnschedVent3: ", 28, 4, "hex", 1], [" p44UnschedVent2: ", 32, 4, "hex", 1], [" p45UnschedVent1: ", 36, 4, "hex", 1], [" p46UnschedVent0: ", 40, 4, "hex", 1], [" p75PassiveCooling: ", 44, 4, "hex", 1] ], - "01pxx214" => [["p37Fanstage1AirflowInlet: ", 4, 2, "hex", 1], [" p38Fanstage2AirflowInlet: ", 6, 2, "hex", 1], [" p39Fanstage3AirflowInlet: ", 8, 2, "hex", 1], + "01pxx214" => [["p37Fanstage1AirflowInlet: ", 4, 2, "hex", 1], [" p38Fanstage2AirflowInlet: ", 6, 2, "hex", 1], [" p39Fanstage3AirflowInlet: ", 8, 2, "hex", 1], [" p40Fanstage1AirflowOutlet: ", 10, 2, "hex", 1], [" p41Fanstage2AirflowOutlet: ", 12, 2, "hex", 1], [" p42Fanstage3AirflowOutlet: ", 14, 2, "hex", 1], - [" p43UnschedVent3: ", 16, 4, "hex", 1], [" p44UnschedVent2: ", 20, 4, "hex", 1], [" p45UnschedVent1: ", 24, 4, "hex", 1], - [" p46UnschedVent0: ", 28, 4, "hex", 1], [" p75PassiveCooling: ", 32, 2, "hex", 1] + [" p43UnschedVent3: ", 16, 4, "hex", 1], [" p44UnschedVent2: ", 20, 4, "hex", 1], [" p45UnschedVent1: ", 24, 4, "hex", 1], + [" 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], [" 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] + "04pxx206" => [["MaxDefrostDurationAAExchenger: ", 4, 2, "hex", 1], [" DefrostStartThreshold: ", 6, 4, "hex", 10], [" VolumeFlowFilterReplacement: ", 10, 4, "hex", 1] ], - "05pxx206" => [["p13GradientHC1: ", 4, 4, "hex", 10], [" p14LowEndHC1: ", 8, 4, "hex", 10], [" p15RoomInfluenceHC1: ", 12, 2, "hex", 10], - [" p16GradientHC2: ", 14, 4, "hex", 10], [" p17LowEndHC2: ", 18, 4, "hex", 10], [" p18RoomInfluenceHC2: ", 22, 2, "hex", 10], - [" p19FlowProportionHC1: ", 24, 4, "hex", 1], [" p20FlowProportionHC2: ", 28, 4, "hex", 1], [" MaxSetHeatFlowTempHC1: ", 32, 4, "hex", 10], - [" MinSetHeatFlowTempHC1: ", 36, 4, "hex", 10], [" MaxSetHeatFlowTempHC2: ", 40, 4, "hex", 10], [" MinSetHeatFlowTempHC2: ", 44, 4, "hex", 10], + "05pxx206" => [["p13GradientHC1: ", 4, 4, "hex", 10], [" p14LowEndHC1: ", 8, 4, "hex", 10], [" p15RoomInfluenceHC1: ", 12, 2, "hex", 10], + [" p16GradientHC2: ", 14, 4, "hex", 10], [" p17LowEndHC2: ", 18, 4, "hex", 10], [" p18RoomInfluenceHC2: ", 22, 2, "hex", 10], + [" p19FlowProportionHC1: ",24, 4, "hex", 1], [" p20FlowProportionHC2: ", 28, 4, "hex", 1], [" MaxSetHeatFlowTempHC1: ", 32, 4, "hex", 10], + [" MinSetHeatFlowTempHC1: ",36, 4, "hex", 10], [" MaxSetHeatFlowTempHC2: ", 40, 4, "hex", 10], [" MinSetHeatFlowTempHC2: ", 44, 4, "hex", 10], ], - "06pxx206" => [["p21Hyst1: ", 4, 2, "hex", 10], [" p22Hyst2: ", 6, 2, "hex", 10], [" p23Hyst3: ", 8, 2, "hex", 10], + "06pxx206" => [["p21Hyst1: ", 4, 2, "hex", 10], [" p22Hyst2: ", 6, 2, "hex", 10], [" p23Hyst3: ", 8, 2, "hex", 10], [" 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], [" p77OutTempFilterTime: ",40, 4, "hex", 1], - [" p78DualModePoint: ", 44, 4, "hex2int", 10], [" p79BoosterTimeoutHC: ", 48, 2, "hex", 1] + [" 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], [" 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], + "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], [" p84EnableDHWBuffer: ", 22, 2, "hex", 1] ], - "08pxx206" => [["p80EnableSolar: ", 4, 2, "hex", 1], [" p81DiffTempSolarLoading: ", 6, 4, "hex", 10], [" p82DelayCompStartSolar: ",10, 2, "hex", 1], - [" p84DHWTempSolarMode: ", 12, 4, "hex", 10], [" HystDiffTempSolar: ", 16, 4, "hex", 10], [" CollectLimitTempSolar: ",20, 4, "hex", 10] + "08pxx206" => [["p80EnableSolar: ", 4, 2, "hex", 1], [" p81DiffTempSolarLoading: ", 6, 4, "hex", 10], [" p82DelayCompStartSolar: ", 10, 2, "hex", 1], + [" p84DHWTempSolarMode: ",12, 4, "hex", 10], [" HystDiffTempSolar: ", 16, 4, "hex", 10], [" CollectLimitTempSolar: ", 20, 4, "hex", 10] ], "09his" => [["compressorHeating: ", 4, 4, "hex", 1], [" compressorCooling: ", 8, 4, "hex", 1], - [" compressorDHW: ", 12, 4, "hex", 1], [" boosterDHW: ", 16, 4, "hex", 1], + [" compressorDHW: ", 12, 4, "hex", 1], [" boosterDHW: ", 16, 4, "hex", 1], [" boosterHeating: ", 20, 4, "hex", 1] ], - "09his206" => [["operatingHours1: ", 4, 4, "hex", 1], [" operatingHours2: ", 8, 4, "hex", 1], - [" heatingHours: ", 12, 4, "hex", 1], [" DHWhours: ", 16, 4, "hex", 1], - [" coolingHours: ", 20, 4, "hex", 1] + "09his206" => [["operatingHours1: ", 4, 4, "hex", 1], [" operatingHours2: ", 8, 4, "hex", 1], + [" heatingHours: ", 12, 4, "hex", 1], [" DHWhours: ", 16, 4, "hex", 1], + [" coolingHours: ", 20, 4, "hex", 1] ], - "0Apxx206" => [["p54MinPumpCycles: ", 4, 2, "hex", 1], [" p55MaxPumpCycles: ", 6, 4, "hex", 1], [" p56OutTempMaxPumpCycles: ", 10, 4, "hex", 10], + "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" => [["progHC1StartTime: ", 4, 4, "hex2time", 1], [" progHC1EndTime: ", 8, 4, "hex2time", 1], - [" progHC1Monday: ", 13, 1, "bit0", 1], [" progHC1Tuesday: ", 13, 1, "bit1", 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], + [" 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] ], @@ -127,14 +127,14 @@ my %parsinghash = ( [" progDHWFriday: ", 12, 1, "bit0", 1], [" progDHWSaturday: ", 12, 1, "bit1", 1], [" progDHWSunday: ", 12, 1, "bit2", 1], [" progDHWEnable: ", 14, 2, "hex", 1], ], - "0Dpxx206" => [["progFAN1StartTime: ", 4, 4, "hex2time", 1], [" progFAN1EndTime: ", 8, 4, "hex2time", 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], + [" 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], + [" 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], + [" 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] ], @@ -142,19 +142,19 @@ my %parsinghash = ( ], "0Fpxx206" => [["pA0DurationUntilAbsenceStart: ", 4, 4, "hex", 10], [" pA0AbsenceDuration: ", 8, 4, "hex", 10], [" pA0EnableAbsenceProg: ", 12, 2, "hex", 1] ], - "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] + "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" => [["collectorTemp: ", 4, 4, "hex2int", 10], [" dhwTemp: ", 8, 4, "hex2int", 10], + "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] + [" 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], [" 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], [" p10HCTempManual: ", 34, 4, "hex", 10], - [" p11DHWsetTempManual: ", 38, 4, "hex", 10], [" p12FanStageManual: ", 42, 2, "hex", 1], + [" p11DHWsetTempManual: ",38, 4, "hex", 10], [" p12FanStageManual: ", 42, 2, "hex", 1], ], "D1last" => [["number_of_faults: ", 4, 2, "hex", 1], [" fault0CODE: ", 8, 2, "faultmap", 1], [" fault0TIME: ", 12, 4, "turnhex2time", 1], [" fault0DATE: ", 16, 4, "turnhexdate", 1], @@ -168,120 +168,120 @@ my %parsinghash = ( [" 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] ], - "E8fan" => [[" inputFanSpeed: ", 58, 2, "hex", 1], # like in sGlobal + "E8fan" => [[" inputFanSpeed: ", 58, 2, "hex", 1], # like in sGlobal [" outputFanSpeed: ", 60, 2, "hex", 1], # like in sGlobal [" pFanstageXAirflowInlet: ", 62, 4, "hex", 1], # m3/h corresponding to p37Fanstage1AirflowInlet or p38Fanstage2AirflowInlet [" pFanstageXAirflowOutlet: ", 66, 4, "hex", 1], # m3/h corresponding to p40Fanstage1AirflowOutlet or p41Fanstage2AirflowOutlet [" inputFanPower: ", 70, 2, "hex", 1], # like in sGlobal [" outputFanPower: ", 72, 2, "hex", 1], # like in sGlobal ], - "E8fan206" => [["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 + "E8fan206" => [["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 + [" 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], + [" 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 + [" airflowCalibrationInterval: ",66, 2, "hex", 1], # calibration interval + [" timeToCalibration: ", 68, 2, "hex", 1] # days to next calibration ], - "EEprg206" => [["opMode: ", 4, 2, "opmode2", 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] ], - "F2ctrl" => [["heatRequest: ", 4, 2, "hex", 1], # 0=DHW 2=heat 5=off 6=defrostEva - [" heatRequest2: ", 6, 2, "hex", 1], # same as heatRequest + "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 + [" 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 + [" 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 + [" solarPump: ", 22, 1, "bit2", 1], # solar pump [" boosterStage1: ", 22, 1, "bit1", 1], # booster 1 - [" compressor: ", 22, 1, "bit0", 1], # compressor + [" 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 + [" 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) + [" 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] # ?? ], "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], + [" 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], + "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], + [" 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] ], - "F4hc1214" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" x08: ", 8, 4, "raw", 1], + "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], [" x60: ", 60, 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], + [" 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] ], - "F5hc2" => [["outsideTemp: ", 4, 4, "hex2int", 10], [" returnTemp: ", 8, 4, "hex2int", 10], - [" vorlaufTemp: ", 12, 4, "hex2int", 10], [" heatSetTemp: ", 16, 4, "hex2int", 10], + "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], [" hcOpMode: ", 36, 2, "opmodehc", 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], + "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], [" mixerOpen: ", 45, 1, "bit0", 1], [" mixerClosed: ", 45, 1, "bit1", 1], - [" heatPipeValve: ", 45, 1, "bit2", 1], [" diverterValve: ", 45, 1, "bit3", 1], - [" dhwPump: ", 44, 1, "bit0", 1], [" heatingCircuitPump: ", 44, 1, "bit1", 1], - [" solarPump: ", 44, 1, "bit3", 1], [" compressor: ", 47, 1, "bit3", 1], - [" boosterStage3: ", 46, 1, "bit0", 1], [" boosterStage2: ", 46, 1, "bit1", 1], - [" boosterStage1: ", 46, 1, "bit2", 1], [" highPressureSensor: ", 49, 1, "nbit0", 1], + [" heatPipeValve: ", 45, 1, "bit2", 1], [" diverterValve: ", 45, 1, "bit3", 1], + [" dhwPump: ", 44, 1, "bit0", 1], [" heatingCircuitPump: ",44, 1, "bit1", 1], + [" solarPump: ", 44, 1, "bit3", 1], [" compressor: ", 47, 1, "bit3", 1], + [" boosterStage3: ", 46, 1, "bit0", 1], [" boosterStage2: ", 46, 1, "bit1", 1], + [" boosterStage1: ", 46, 1, "bit2", 1], [" highPressureSensor: ",49, 1, "nbit0", 1], [" lowPressureSensor: ", 49, 1, "nbit1", 1], [" evaporatorIceMonitor: ",49, 1, "bit2", 1], - [" signalAnode: ", 49, 1, "bit3", 1], [" evuRelease: ", 48, 1, "bit0", 1], - [" ovenFireplace: ", 48, 1, "bit1", 1], [" STB: ", 48, 1, "bit2", 1], - [" 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], + [" signalAnode: ", 49, 1, "bit3", 1], [" evuRelease: ", 48, 1, "bit0", 1], + [" ovenFireplace: ", 48, 1, "bit1", 1], [" STB: ", 48, 1, "bit2", 1], + [" 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], + [" 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], + [" collectorTemp: ", 4, 4, "hex2int", 10], [" insideTemp: ", 32, 4, "hex2int", 10], [" 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 + [" quickAirVent: ", 48, 1, "bit3", 1], # board X15-8 clamp X4-SL (SchnellLüftung): quickAirVent - signal in 230V [" flowRate: ", 110, 4, "hex", 100], # board X51 sensor P5 (on newer models B1 flow temp as well) changed to l/min as suggested by TheTrumpeter Antwort #771 [" p_HCw: ", 114, 4, "hex", 100], # board X4-1..3 sensor P4 HC water pressure [" humidityAirOut: ", 154, 4, "hex", 100] # board X4-4..6 sensor B15 @@ -291,52 +291,52 @@ my %parsinghash = ( [" 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], + [" 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], - [" boosterStage2: ", 44, 1, "bit3", 1], [" boosterStage3: ", 44, 1, "n.a.", 1], - [" boosterStage1: ", 44, 1, "bit1", 1], [" highPressureSensor: ", 54, 1, "bit3", 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], + [" 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] + [" 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], + [" 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], - [" 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] + [" 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] ], "FCtime" => [["Weekday: ", 5, 1, "weekday", 1], [" Hour: ", 6, 2, "hex", 1], - [" Min: ", 8, 2, "hex", 1], [" Sec: ", 10, 2, "hex", 1], + [" Min: ", 8, 2, "hex", 1], [" Sec: ", 10, 2, "hex", 1], [" Date: ", 12, 2, "year", 1], ["/", 14, 2, "hex", 1], ["/", 16, 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] + "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, "hexdate", 1] ], @@ -346,9 +346,9 @@ my %parsinghash = ( "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], [" cooling: ", 11, 1, "bit3", 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], [" cooling: ", 11, 1, "bit3", 1], [" service: ", 10, 1, "bit2", 1] ], "0clean" => [["", 8, 2, "hex", 1] @@ -363,9 +363,9 @@ my %parsinghash = ( ], "6gradient" => [["", 8, 4, "hex", 100] ], - "7prog" => [["", 8, 2, "quater", 1], ["--", 10, 2, "quater", 1] + "7prog" => [["", 8, 2, "quater", 1], ["--", 10, 2, "quater", 1] ], - "8party" => [["", 10, 2, "quater", 1], ["--", 8, 2, "quater", 1] + "8party" => [["", 10, 2, "quater", 1], ["--", 8, 2, "quater", 1] ], "9holy" => [["", 10, 2, "quater", 1] ] @@ -391,29 +391,29 @@ my %sets439539common = ( "pOpMode" => {cmd2=>"0A0112", type => "2opmode"}, # 1 Standby bereitschaft; 11 in Automatic; 3 DAYmode; SetbackMode; DHWmode; Manual; Emergency "p01RoomTempDayHC1" => {cmd2=>"0B0005", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, "p02RoomTempNightHC1" => {cmd2=>"0B0008", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, - "p03RoomTempStandbyHC1" => {cmd2=>"0B013D", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, + "p03RoomTempStandbyHC1" => {cmd2=>"0B013D", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, "p01RoomTempDayHC1SummerMode" => {cmd2=>"0B0569", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, - "p02RoomTempNightHC1SummerMode" => {cmd2=>"0B056B", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, - "p03RoomTempStandbyHC1SummerMode" => {cmd2=>"0B056A", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, + "p02RoomTempNightHC1SummerMode"=> {cmd2=>"0B056B", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, + "p03RoomTempStandbyHC1SummerMode"=> {cmd2=>"0B056A", argMin => "12", argMax => "30", type =>"5temp", unit =>" °C"}, "p13GradientHC1" => {cmd2=>"0B010E", argMin => "0.1", argMax => "5", type =>"6gradient", unit =>""}, # 0..5 rappresentato/100 - "p14LowEndHC1" => {cmd2=>"0B059E", argMin => "0", argMax => "10", type =>"5temp", unit =>" K"}, #in °K 0..20°K rappresentato/10 + "p14LowEndHC1" => {cmd2=>"0B059E", argMin => "0", argMax => "10", type =>"5temp", unit =>" K"}, #in °K 0..20°K rappresentato/10 "p15RoomInfluenceHC1" => {cmd2=>"0B010F", argMin => "0", argMax => "100", type =>"0clean", unit =>" %"}, - "p19FlowProportionHC1" => {cmd2=>"0B059D", argMin => "0", argMax => "100", type =>"1clean", unit =>" %"}, #in % 0..100% + "p19FlowProportionHC1" => {cmd2=>"0B059D", argMin => "0", argMax => "100", type =>"1clean", unit =>" %"}, #in % 0..100% "p01RoomTempDayHC2" => {cmd2=>"0C0005", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, "p02RoomTempNightHC2" => {cmd2=>"0C0008", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, - "p03RoomTempStandbyHC2" => {cmd2=>"0C013D", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, + "p03RoomTempStandbyHC2" => {cmd2=>"0C013D", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, "p01RoomTempDayHC2SummerMode" => {cmd2=>"0C0569", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, - "p02RoomTempNightHC2SummerMode" => {cmd2=>"0C056B", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, - "p03RoomTempStandbyHC2SummerMode" => {cmd2=>"0C056A", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, + "p02RoomTempNightHC2SummerMode"=> {cmd2=>"0C056B", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, + "p03RoomTempStandbyHC2SummerMode"=> {cmd2=>"0C056A", argMin => "12", argMax => "28", type =>"5temp", unit =>" °C"}, "p16GradientHC2" => {cmd2=>"0C010E", argMin => "0.1", argMax => "5", type =>"6gradient", unit =>""}, # /100 - "p17LowEndHC2" => {cmd2=>"0C059E", argMin => "0", argMax => "10", type =>"5temp", unit =>" K"}, + "p17LowEndHC2" => {cmd2=>"0C059E", argMin => "0", argMax => "10", type =>"5temp", unit =>" K"}, "p18RoomInfluenceHC2" => {cmd2=>"0C010F", argMin => "0", argMax => "100", type =>"0clean", unit =>" %"}, "p04DHWsetDayTemp" => {cmd2=>"0A0013", argMin => "10", argMax => "55", type =>"5temp", unit =>" °C"}, "p05DHWsetNightTemp" => {cmd2=>"0A05BF", argMin => "10", argMax => "55", type =>"5temp", unit =>" °C"}, "p83DHWsetSolarTemp" => {cmd2=>"0A05BE", argMin => "10", argMax => "75", type =>"5temp", unit =>" °C"}, - "p06DHWsetStandbyTemp" => {cmd2=>"0A0581", argMin => "10", argMax => "55", type =>"5temp", unit =>" °C"}, + "p06DHWsetStandbyTemp" => {cmd2=>"0A0581", argMin => "10", argMax => "55", type =>"5temp", unit =>" °C"}, "p11DHWsetManualTemp" => {cmd2=>"0A0580", argMin => "10", argMax => "55", type =>"5temp", unit =>" °C"}, - "p36DHWMaxTime" => {cmd2=>"0A0180", argMin => "6", argMax => "12", type =>"1clean", unit =>""}, + "p36DHWMaxTime" => {cmd2=>"0A0180", argMin => "6", argMax => "12", type =>"1clean", unit =>""}, "p07FanStageDay" => {cmd2=>"0A056C", argMin => "0", argMax => "3", type =>"1clean", unit =>""}, "p08FanStageNight" => {cmd2=>"0A056D", argMin => "0", argMax => "3", type =>"1clean", unit =>""}, "p09FanStageStandby" => {cmd2=>"0A056F", argMin => "0", argMax => "3", type =>"1clean", unit =>""}, @@ -424,10 +424,10 @@ my %sets439539common = ( "p24Hyst4" => {cmd2=>"0A05C3", argMin => "0", argMax => "5", type =>"5temp", unit =>" K"}, "p25Hyst5" => {cmd2=>"0A05C4", argMin => "0", argMax => "5", type =>"5temp", unit =>" K"}, "p29HystAsymmetry" => {cmd2=>"0A05C5", argMin => "1", argMax => "5", type =>"1clean", unit =>""}, - "p30integralComponent" => {cmd2=>"0A0162", argMin => "10", argMax => "999", type =>"1clean", unit =>" Kmin"}, + "p30integralComponent" => {cmd2=>"0A0162", argMin => "10", argMax => "999", type =>"1clean", unit =>" Kmin"}, "p31MaxBoosterStgHtg" => {cmd2=>"0A059F", argMin => "0", argMax => "3", type =>"1clean", unit =>""}, "p32HystDHW" => {cmd2=>"0A0140", argMin => "0", argMax => "10", type =>"5temp", unit =>" K"}, - "p33BoosterTimeoutDHW" => {cmd2=>"0A0588", argMin => "0", argMax => "200", type =>"1clean", unit =>" min"}, #during DHW heating + "p33BoosterTimeoutDHW" => {cmd2=>"0A0588", argMin => "0", argMax => "200", type =>"1clean", unit =>" min"}, #during DHW heating "p79BoosterTimeoutHC" => {cmd2=>"0A05A0", argMin => "0", argMax => "60", type =>"1clean", unit =>" min"}, #delayed enabling of booster heater "p46UnschedVent0" => {cmd2=>"0A0571", argMin => "0", argMax => "1000", type =>"1clean", unit =>" min"}, #in min "p45UnschedVent1" => {cmd2=>"0A0572", argMin => "0", argMax => "1000", type =>"1clean", unit =>" min"}, #in min @@ -446,13 +446,13 @@ my %sets439539common = ( "p55MaxPumpCycles" => {cmd2=>"0A05B7", argMin => "25", argMax => "288", type =>"1clean", unit =>""}, "p56OutTempMaxPumpCycles" => {cmd2=>"0A05B9", argMin => "0", argMax => "20", type =>"5temp", unit =>" °C"}, "p57OutTempMinPumpCycles" => {cmd2=>"0A05BA", argMin => "0", argMax => "25", type =>"5temp", unit =>" °C"}, - "p58SuppressTempCaptPumpStart" => {cmd2=>"0A0611", argMin => "0", argMax => "120", type =>"1clean", unit =>" s"}, - "p76RoomThermCorrection" => {cmd2=>"0A0109", argMin => "-5", argMax => "5", type =>"4temp", unit =>" K"}, - "p77OutThermFilterTime" => {cmd2=>"0A010C", argMin => "1", argMax => "24", type =>"0clean", unit =>" h"}, + "p58SuppressTempCaptPumpStart"=> {cmd2=>"0A0611", argMin => "0", argMax => "120", type =>"1clean", unit =>" s"}, + "p76RoomThermCorrection" => {cmd2=>"0A0109", argMin => "-5", argMax => "5", type =>"4temp", unit =>" K"}, + "p77OutThermFilterTime" => {cmd2=>"0A010C", argMin => "1", argMax => "24", type =>"0clean", unit =>" h"}, "p35PasteurisationInterval" => {cmd2=>"0A0586", argMin => "1", argMax => "30", type =>"1clean", unit =>""}, "p80EnableSolar" => {cmd2=>"0A03C1", argMin => "0", argMax => "1", type =>"1clean", unit =>""}, - "p35PasteurisationTemp" => {cmd2=>"0A0587", argMin => "10", argMax => "65", type =>"5temp", unit =>" °C"}, - "p34BoosterDHWTempAct" => {cmd2=>"0A0589", argMin => "-10", argMax => "10", type =>"5temp", unit =>" °C"}, + "p35PasteurisationTemp" => {cmd2=>"0A0587", argMin => "10", argMax => "65", type =>"5temp", unit =>" °C"}, + "p34BoosterDHWTempAct" => {cmd2=>"0A0589", argMin => "-10", argMax => "10", type =>"5temp", unit =>" °C"}, "p99DHWmaxFlowTemp" => {cmd2=>"0A058C", argMin => "10", argMax => "75", type =>"5temp", unit =>" °C"}, "p99HC1maxFlowTemp" => {cmd2=>"0A0027", argMin => "10", argMax => "75", type =>"5temp", unit =>" °C"}, "p89DHWeco" => {cmd2=>"0A058D", argMin => "0", argMax => "1", type =>"1clean", unit =>""}, @@ -463,7 +463,7 @@ my %sets439539common = ( "pClockMonth" => {cmd2=>"0A0123", argMin => "1", argMax => "12", type =>"0clean", unit =>""}, "pClockYear" => {cmd2=>"0A0124", argMin => "12", argMax => "20", type =>"0clean", unit =>""}, "pClockHour" => {cmd2=>"0A0125", argMin => "0", argMax => "23", type =>"0clean", unit =>""}, - "pClockMinutes" => {cmd2=>"0A0126", argMin => "0", argMax => "59", type =>"0clean", unit =>""}, + "pClockMinutes" => {cmd2=>"0A0126", argMin => "0", argMax => "59", type =>"0clean", unit =>""}, "pHolidayBeginDay" => {cmd2=>"0A011B", argMin => "1", argMax => "31", type =>"0clean", unit =>""}, "pHolidayBeginMonth" => {cmd2=>"0A011C", argMin => "1", argMax => "12", type =>"0clean", unit =>""}, "pHolidayBeginYear" => {cmd2=>"0A011D", argMin => "12", argMax => "20", type =>"0clean", unit =>""}, @@ -597,8 +597,9 @@ my %sets439539common = ( #OFF/ N-O_CONTACT_OFF/ N-C_CONTACT_OFF/ N-O_MONITORING/ N-C_MONITORING #LLWT = LuftLuftWärmeTauscher - AirAirHeatExchanger "p85MaxDefrostDur" => {cmd2=>"0A057D", argMin => "60", argMax => "250", type =>"1clean", unit =>" min"}, - "p85DefrStartThreshold" => {cmd2=>"0A057E", argMin => "0", argMax => "50", type =>"1clean", unit =>" %"}, #LLWT_Abtaubeginnschwelle (%) - - "p85FilterSpeed" => {cmd2=>"0A057F", argMin => "0", argMax => "100", type =>"1clean", unit =>" %"} #LLWT_DrehzahlFilter (%) - increase in VentSpeed to indicate dirt / replacement needed + "p85DefrStartThreshold" => {cmd2=>"0A057E", argMin => "0", argMax => "50", type =>"1clean", unit =>" %"}, #LLWT_Abtaubeginnschwelle (%) - + "p85FilterSpeed" => {cmd2=>"0A057F", argMin => "0", argMax => "100", type =>"1clean", unit =>" %"}, #LLWT_DrehzahlFilter (%) - increase in VentSpeed to indicate dirt / replacement needed + "p86OutTempCorrection" => {cmd2=>"0A05A3", argMin => "-5", argMax => "5", type =>"5temp", unit =>" K"} ); @@ -608,13 +609,13 @@ my %sets439only =( ); my %sets539only =( - "p75passiveCooling" => {cmd2=>"0A0575", argMin => "0", argMax => "4", type =>"1clean", unit =>""}, - "p99PumpRateHC" => {cmd2=>"0A02CB", argMin => "0", argMax => "100", type =>"5temp", unit =>" %"}, + "p75passiveCooling" => {cmd2=>"0A0575", argMin => "0", argMax => "4", type =>"1clean", unit =>""}, + "p99PumpRateHC" => {cmd2=>"0A02CB", argMin => "0", argMax => "100", type =>"5temp", unit =>" %"}, "p99PumpRateDHW" => {cmd2=>"0A02CC", argMin => "0", argMax => "100", type =>"5temp", unit =>" %"} , - "p99CoolingHC1Switch" => {cmd2=>"0B0287", argMin => "0", argMax => "1", type =>"1clean", unit =>""}, - "p99CoolingHC1SetTemp" => {cmd2=>"0B0582", argMin => "12", argMax => "27", type =>"5temp", unit =>" °C"}, #suggested by TheTrumpeter - "p99CoolingHC1HystersisFlowTemp" => {cmd2=>"0B0583", argMin => "0.5", argMax => "5", type =>"5temp", unit =>" K"}, #suggested by TheTrumpeter - "p99CoolingHC1HystersisRoomTemp" => {cmd2=>"0B0584", argMin => "0.5", argMax => "3", type =>"5temp", unit =>" K"} #suggested by TheTrumpeter + "p99CoolingHC1Switch" => {cmd2=>"0B0287", argMin => "0", argMax => "1", type =>"1clean", unit =>""}, + "p99CoolingHC1SetTemp" => {cmd2=>"0B0582", argMin => "12", argMax => "27", type =>"5temp", unit =>" °C"}, #suggested by TheTrumpeter + "p99CoolingHC1HysterFlowTemp" => {cmd2=>"0B0583", argMin => "0.5", argMax => "5", type =>"5temp", unit =>" K"}, #suggested by TheTrumpeter + "p99CoolingHC1HysterRoomTemp" => {cmd2=>"0B0584", argMin => "0.5", argMax => "3", type =>"5temp", unit =>" K"} #suggested by TheTrumpeter ); @@ -624,7 +625,7 @@ my %sets206 = ( "p03RoomTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "30", type =>"pclean", unit =>" °C"}, "p04DHWsetTempDay" => {parent=>"p01-p12", argMin => "10", argMax => "55", type =>"pclean", unit =>" °C"}, "p05DHWsetTempNight" => {parent=>"p01-p12", argMin => "10", argMax => "55", type =>"pclean", unit =>" °C"}, - "p06DHWsetTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "55", type =>"pclean", unit =>" °C"}, + "p06DHWsetTempStandby" => {parent=>"p01-p12", argMin => "10", argMax => "55", type =>"pclean", unit =>" °C"}, "p07FanStageDay" => {parent=>"p01-p12", argMin => "0", argMax => "3", type =>"pclean", unit =>""}, "p08FanStageNight" => {parent=>"p01-p12", argMin => "0", argMax => "3", type =>"pclean", unit =>""}, "p09FanStageStandby" => {parent=>"p01-p12", argMin => "0", argMax => "3", type =>"pclean", unit =>""}, @@ -632,23 +633,23 @@ my %sets206 = ( "p11DHWsetTempManual" => {parent=>"p01-p12", argMin => "10", argMax => "65", type =>"pclean", unit =>" °C"}, "p12FanStageManual" => {parent=>"p01-p12", argMin => "0", argMax => "3", type =>"pclean", unit =>""}, "p13GradientHC1" => {parent=>"pHeat1", argMin => "0", argMax => "5", type =>"pclean", unit =>""}, - "p14LowEndHC1" => {parent=>"pHeat1", argMin => "0", argMax => "20", type =>"pclean", unit =>" K"}, + "p14LowEndHC1" => {parent=>"pHeat1", argMin => "0", argMax => "20", type =>"pclean", unit =>" K"}, "p15RoomInfluenceHC1" => {parent=>"pHeat1", argMin => "0", argMax => "10", type =>"pclean", unit =>""}, "p16GradientHC2" => {parent=>"pHeat1", argMin => "0", argMax => "5", type =>"pclean", unit =>""}, - "p17LowEndHC2" => {parent=>"pHeat1", argMin => "0", argMax => "10", type =>"pclean", unit =>" K"}, + "p17LowEndHC2" => {parent=>"pHeat1", argMin => "0", argMax => "10", type =>"pclean", unit =>" K"}, "p18RoomInfluenceHC2" => {parent=>"pHeat1", argMin => "0", argMax => "10", type =>"pclean", unit =>""}, - "p19FlowProportionHC1" => {parent=>"pHeat1", argMin => "0", argMax => "100", type =>"pclean", unit =>" %"}, - "p20FlowProportionHC2" => {parent=>"pHeat1", argMin => "0", argMax => "100", type =>"pclean", unit =>" %"}, + "p19FlowProportionHC1" => {parent=>"pHeat1", argMin => "0", argMax => "100", type =>"pclean", unit =>" %"}, + "p20FlowProportionHC2" => {parent=>"pHeat1", argMin => "0", argMax => "100", type =>"pclean", unit =>" %"}, "p21Hyst1" => {parent=>"pHeat2", argMin => "0", argMax => "10", type =>"pclean", unit =>" K"}, "p22Hyst2" => {parent=>"pHeat2", argMin => "0", argMax => "10", type =>"pclean", unit =>" K"}, "p23Hyst3" => {parent=>"pHeat2", argMin => "0", argMax => "5", type =>"pclean", unit =>" K"}, "p24Hyst4" => {parent=>"pHeat2", argMin => "0", argMax => "5", type =>"pclean", unit =>" K"}, "p25Hyst5" => {parent=>"pHeat2", argMin => "0", argMax => "5", type =>"pclean", unit =>" K"}, "p29HystAsymmetry" => {parent=>"pHeat2", argMin => "1", argMax => "5", type =>"pclean", unit =>""}, - "p30integralComponent" => {parent=>"pHeat2", argMin => "10", argMax => "999", type =>"pclean", unit =>" Kmin"}, + "p30integralComponent" => {parent=>"pHeat2", argMin => "10", argMax => "999", type =>"pclean", unit =>" Kmin"}, "p32HystDHW" => {parent=>"pDHW", argMin => "2", argMax => "10", type =>"pclean", unit =>" K"}, - "p33BoosterTimeoutDHW" => {parent=>"pDHW", argMin => "0", argMax => "240", type =>"pclean", unit =>" min"}, - "p34TempLimitBoostDHW" => {parent=>"pDHW", argMin => "-10", argMax => "10", type =>"pclean", unit =>" °C"}, + "p33BoosterTimeoutDHW" => {parent=>"pDHW", argMin => "0", argMax => "240", type =>"pclean", unit =>" min"}, + "p34TempLimitBoostDHW" => {parent=>"pDHW", argMin => "-10",argMax => "10", type =>"pclean", unit =>" °C"}, "p35PasteurisationInterval" => {parent=>"pDHW", argMin => "3", argMax => "30", type =>"pclean", unit =>" Days"}, "p36MaxDurationDHWLoad" => {parent=>"pDHW", argMin => "6", argMax => "12", type =>"pclean", unit =>" h"}, "p37Fanstage1AirflowInlet" => {parent=>"pFan", argMin => "60", argMax => "250", type =>"pclean", unit =>" m3/h"}, @@ -657,61 +658,61 @@ my %sets206 = ( "p40Fanstage1AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", type =>"pclean", unit =>" m3/h"}, "p41Fanstage2AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", type =>"pclean", unit =>" m3/h"}, "p42Fanstage3AirflowOutlet" => {parent=>"pFan", argMin => "60", argMax => "250", type =>"pclean", unit =>" m3/h"}, - "p43UnschedVent3" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, - "p44UnschedVent2" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, - "p45UnschedVent1" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, - "p46UnschedVent0" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, - "p47CompressorRestartDelay" => {parent=>"pDefrostEva", argMin => "0", argMax => "20", type =>"pclean", unit =>" min"}, - "p48MainFanSpeed" => {parent=>"pDefrostEva", argMin => "0", argMax => "100", type =>"pclean", unit =>" %"}, - "p49SummerModeTemp" => {parent=>"pHeat2", argMin => "10", argMax => "24", type =>"pclean", unit =>" °C"}, - "p50SummerModeHysteresis" => {parent=>"pHeat2", argMin => "1", argMax => "5", type =>"pclean", unit =>" K"}, - "p54MinPumpCycles" => {parent=>"pCircPump", argMin => "1", argMax => "24", type =>"pclean", unit =>" /Day"}, - "p55MaxPumpCycles" => {parent=>"pCircPump", argMin => "25", argMax => "288", type =>"pclean", unit =>" /Day"}, - "p56OutTempMaxPumpCycles" => {parent=>"pCircPump", argMin => "0", argMax => "20", type =>"pclean", unit =>" °C"}, - "p57OutTempMinPumpCycles" => {parent=>"pCircPump", argMin => "0", argMax => "25", type =>"pclean", unit =>" °C"}, - "p58SuppressTempCaptPumpStart" => {parent=>"pCircPump", argMin => "0", argMax => "120", type =>"pclean", unit =>" s"}, + "p43UnschedVent3" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, + "p44UnschedVent2" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, + "p45UnschedVent1" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, + "p46UnschedVent0" => {parent=>"pFan", argMin => "0", argMax => "1000", type =>"pclean", unit =>" min"}, + "p47CompressorRestartDelay" => {parent=>"pDefrostEva",argMin => "0",argMax => "20", type =>"pclean", unit =>" min"}, + "p48MainFanSpeed" => {parent=>"pDefrostEva",argMin => "0",argMax => "100", type =>"pclean", unit =>" %"}, + "p49SummerModeTemp" => {parent=>"pHeat2", argMin => "10", argMax => "24", type =>"pclean", unit =>" °C"}, + "p50SummerModeHysteresis" => {parent=>"pHeat2", argMin => "1", argMax => "5", type =>"pclean", unit =>" K"}, + "p54MinPumpCycles" => {parent=>"pCircPump",argMin => "1", argMax => "24", type =>"pclean", unit =>" /Day"}, + "p55MaxPumpCycles" => {parent=>"pCircPump",argMin => "25", argMax => "288", type =>"pclean", unit =>" /Day"}, + "p56OutTempMaxPumpCycles" => {parent=>"pCircPump",argMin => "0", argMax => "20", type =>"pclean", unit =>" °C"}, + "p57OutTempMinPumpCycles" => {parent=>"pCircPump",argMin => "0", argMax => "25", type =>"pclean", unit =>" °C"}, + "p58SuppressTempCaptPumpStart"=> {parent=>"pCircPump",argMin => "0", argMax => "120", type =>"pclean", unit =>" s"}, "p75PassiveCooling" => {parent=>"pFan", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "p77OutTempFilterTime" => {parent=>"pHeat2", argMin => "0", argMax => "24", type =>"pclean", unit =>" h"}, - "p78DualModePoint" => {parent=>"pHeat2", argMin => "-10", argMax => "20", type =>"pclean", unit =>" °C"}, - "p79BoosterTimeoutHC" => {parent=>"pHeat2", argMin => "0", argMax => "60", type =>"pclean", unit =>" min"}, - "p80EnableSolar" => {parent=>"pSolar", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "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 =>""}, - "progDHWStartTime" => {parent=>"pDHWProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progDHWEndTime" => {parent=>"pDHWProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progDHWEnable" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progDHWMonday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "p77OutTempFilterTime" => {parent=>"pHeat2", argMin => "0", argMax => "24", type =>"pclean", unit =>" h"}, + "p78DualModePoint" => {parent=>"pHeat2", argMin => "-10",argMax => "20", type =>"pclean", unit =>" °C"}, + "p79BoosterTimeoutHC" => {parent=>"pHeat2", argMin => "0", argMax => "60", type =>"pclean", unit =>" min"}, + "p80EnableSolar" => {parent=>"pSolar", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "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 =>""}, + "progDHWStartTime" => {parent=>"pDHWProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progDHWEndTime" => {parent=>"pDHWProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progDHWEnable" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progDHWMonday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progDHWTuesday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progDHWWednesday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progDHWThursday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progDHWFriday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progDHWFriday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progDHWSaturday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progDHWSunday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1StartTime" => {parent=>"pHeatProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progHC1EndTime" => {parent=>"pHeatProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progHC1Enable" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Monday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Tuesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Wednesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Thursday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Friday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Saturday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC1Sunday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2StartTime" => {parent=>"pHeatProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progHC2EndTime" => {parent=>"pHeatProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progHC2Enable" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Monday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Tuesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Wednesday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Thursday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Friday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Saturday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progHC2Sunday" => {parent=>"pHeatProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progFAN1StartTime" => {parent=>"pFanProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progFAN1EndTime" => {parent=>"pFanProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, + "progDHWSunday" => {parent=>"pDHWProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1StartTime" => {parent=>"pHeatProg",argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progHC1EndTime" => {parent=>"pHeatProg",argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progHC1Enable" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Monday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Tuesday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Wednesday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Thursday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Friday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Saturday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC1Sunday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2StartTime" => {parent=>"pHeatProg",argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progHC2EndTime" => {parent=>"pHeatProg",argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progHC2Enable" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Monday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Tuesday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Wednesday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Thursday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Friday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Saturday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progHC2Sunday" => {parent=>"pHeatProg",argMin => "0", argMax => "1", type =>"pclean", unit =>""}, + "progFAN1StartTime" => {parent=>"pFanProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progFAN1EndTime" => {parent=>"pFanProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, "progFAN1Enable" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN1Monday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN1Tuesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, @@ -720,8 +721,8 @@ my %sets206 = ( "progFAN1Friday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN1Saturday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN1Sunday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, - "progFAN2StartTime" => {parent=>"pFanProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, - "progFAN2EndTime" => {parent=>"pFanProg", argMin =>"00:00", argMax =>"23:59", type =>"ptime", unit =>""}, + "progFAN2StartTime" => {parent=>"pFanProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, + "progFAN2EndTime" => {parent=>"pFanProg", argMin =>"00:00",argMax =>"23:59", type =>"ptime", unit =>""}, "progFAN2Enable" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN2Monday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, "progFAN2Tuesday" => {parent=>"pFanProg", argMin => "0", argMax => "1", type =>"pclean", unit =>""}, @@ -745,30 +746,30 @@ my %setsonly214 = ( my %getsonly439 = ( #"debug_read_raw_register_slow" => { }, - "sSol" => {cmd2=>"16", type =>"16sol", unit =>""}, + "sSol" => {cmd2=>"16", type =>"16sol", unit =>""}, "sHistory" => {cmd2=>"09", type =>"09his", unit =>""}, - "sLast10errors" => {cmd2=>"D1", type =>"D1last", unit =>""}, + "sLast10errors" => {cmd2=>"D1", type =>"D1last", unit =>""}, "sFan" => {cmd2=>"E8", type =>"E8fan", unit =>""}, - "sDHW" => {cmd2=>"F3", type =>"F3dhw", unit =>""}, - "sHC1" => {cmd2=>"F4", type =>"F4hc1", unit =>""}, - "sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""}, + "sDHW" => {cmd2=>"F3", type =>"F3dhw", unit =>""}, + "sHC1" => {cmd2=>"F4", type =>"F4hc1", unit =>""}, + "sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""}, "sControl" => {cmd2=>"F2", type =>"F2ctrl", unit =>""}, "sGlobal" => {cmd2=>"FB", type =>"FBglob", unit =>""}, #allFB "sTimedate" => {cmd2=>"FC", type =>"FCtime", unit =>""}, "sFirmware" => {cmd2=>"FD", type =>"FDfirm", unit =>""}, - "sFirmware-Id" => {cmd2=>"FE", type =>"FEfirmId", unit =>""}, + "sFirmware-Id" => {cmd2=>"FE", type =>"FEfirmId", unit =>""}, "sDisplay" => {cmd2=>"0A0176", type =>"0A0176Dis", unit =>""}, "sBoostDHWTotal" => {cmd2=>"0A0924", cmd3=>"0A0925", type =>"1clean", unit =>" kWh"}, - "sBoostHCTotal" => {cmd2=>"0A0928", cmd3=>"0A0929", type =>"1clean", unit =>" kWh"}, + "sBoostHCTotal" => {cmd2=>"0A0928", cmd3=>"0A0929", type =>"1clean", unit =>" kWh"}, "sHeatRecoveredDay" => {cmd2=>"0A03AE", cmd3=>"0A03AF", type =>"1clean", unit =>" Wh"}, "sHeatRecoveredTotal" => {cmd2=>"0A03B0", cmd3=>"0A03B1", type =>"1clean", unit =>" kWh"}, "sHeatDHWDay" => {cmd2=>"0A092A", cmd3=>"0A092B", type =>"1clean", unit =>" Wh"}, - "sHeatDHWTotal" => {cmd2=>"0A092C", cmd3=>"0A092D", type =>"1clean", unit =>" kWh"}, + "sHeatDHWTotal" => {cmd2=>"0A092C", cmd3=>"0A092D", type =>"1clean", unit =>" kWh"}, "sHeatHCDay" => {cmd2=>"0A092E", cmd3=>"0A092F", type =>"1clean", unit =>" Wh"}, - "sHeatHCTotal" => {cmd2=>"0A0930", cmd3=>"0A0931", type =>"1clean", unit =>" kWh"}, - "sElectrDHWDay" => {cmd2=>"0A091A", cmd3=>"0A091B", type =>"1clean", unit =>" Wh"}, + "sHeatHCTotal" => {cmd2=>"0A0930", cmd3=>"0A0931", type =>"1clean", unit =>" kWh"}, + "sElectrDHWDay" => {cmd2=>"0A091A", cmd3=>"0A091B", type =>"1clean", unit =>" Wh"}, "sElectrDHWTotal" => {cmd2=>"0A091C", cmd3=>"0A091D", type =>"1clean", unit =>" kWh"}, - "sElectrHCDay" => {cmd2=>"0A091E", cmd3=>"0A091F", type =>"1clean", unit =>" Wh"}, + "sElectrHCDay" => {cmd2=>"0A091E", cmd3=>"0A091F", type =>"1clean", unit =>" Wh"}, "sElectrHCTotal" => {cmd2=>"0A0920", cmd3=>"0A0921", type =>"1clean", unit =>" kWh"}, "party-time" => {cmd2=>"0A05D1", argMin =>"00:00", argMax =>"23:59", type =>"8party", unit =>""} # value 1Ch 28dec is 7 ; value 1Eh 30dec is 7:30 ); @@ -777,66 +778,66 @@ my %getsonly439 = ( 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 =>" %"}, + "sHumThreshold" => {cmd2=>"0A0650", type =>"1clean", unit =>" %"}, "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"} + "sCoolHCTotal" => {cmd2=>"0A0648", cmd3 =>"0A0649", type =>"1clean", unit =>" kWh"}, + "sDewPointHC1" => {cmd2=>"0B0264", type =>"5temp", unit =>" °C"} ); %getsonly539=(%getsonly539, %getsonly439); my %getsonly2xx = ( - "pDefrostEva" => {cmd2=>"03", type =>"03pxx206", unit =>""}, - "pDefrostAA" => {cmd2=>"04", type =>"04pxx206", unit =>""}, - "pHeat1" => {cmd2=>"05", type =>"05pxx206", unit =>""}, - "pHeat2" => {cmd2=>"06", type =>"06pxx206", unit =>""}, - "pDHW" => {cmd2=>"07", type =>"07pxx206", unit =>""}, - "pSolar" => {cmd2=>"08", type =>"08pxx206", unit =>""}, - "sHistory" => {cmd2=>"09", type =>"09his206", unit =>""}, - "pCircPump" => {cmd2=>"0A", type =>"0Apxx206", unit =>""}, - "pHeatProg" => {cmd2=>"0B", type =>"0Bpxx206", unit =>""}, - "pDHWProg" => {cmd2=>"0C", type =>"0Cpxx206", unit =>""}, - "pFanProg" => {cmd2=>"0D", type =>"0Dpxx206", unit =>""}, - "pRestart" => {cmd2=>"0E", type =>"0Epxx206", unit =>""}, - "pAbsence" => {cmd2=>"0F", type =>"0Fpxx206", unit =>""}, - "pDryHeat" => {cmd2=>"10", type =>"10pxx206", unit =>""}, - "sSol" => {cmd2=>"16", type =>"16sol", unit =>""}, - "p01-p12" => {cmd2=>"17", type =>"17pxx206", unit =>""}, - "sProgram" => {cmd2=>"EE", type =>"EEprg206", unit =>""}, - "sFan" => {cmd2=>"E8", type =>"E8fan206", unit =>""}, - "sControl" => {cmd2=>"F2", type =>"F2ctrl", unit =>""}, - "sDHW" => {cmd2=>"F3", type =>"F3dhw", unit =>""}, - "sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""}, - "sSystem" => {cmd2=>"F6", type =>"F6sys206", 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 =>" %"}, + "pDefrostEva" => {cmd2=>"03", type =>"03pxx206", unit =>""}, + "pDefrostAA" => {cmd2=>"04", type =>"04pxx206", unit =>""}, + "pHeat1" => {cmd2=>"05", type =>"05pxx206", unit =>""}, + "pHeat2" => {cmd2=>"06", type =>"06pxx206", unit =>""}, + "pDHW" => {cmd2=>"07", type =>"07pxx206", unit =>""}, + "pSolar" => {cmd2=>"08", type =>"08pxx206", unit =>""}, + "sHistory" => {cmd2=>"09", type =>"09his206", unit =>""}, + "pCircPump" => {cmd2=>"0A", type =>"0Apxx206", unit =>""}, + "pHeatProg" => {cmd2=>"0B", type =>"0Bpxx206", unit =>""}, + "pDHWProg" => {cmd2=>"0C", type =>"0Cpxx206", unit =>""}, + "pFanProg" => {cmd2=>"0D", type =>"0Dpxx206", unit =>""}, + "pRestart" => {cmd2=>"0E", type =>"0Epxx206", unit =>""}, + "pAbsence" => {cmd2=>"0F", type =>"0Fpxx206", unit =>""}, + "pDryHeat" => {cmd2=>"10", type =>"10pxx206", unit =>""}, + "sSol" => {cmd2=>"16", type =>"16sol", unit =>""}, + "p01-p12" => {cmd2=>"17", type =>"17pxx206", unit =>""}, + "sProgram" => {cmd2=>"EE", type =>"EEprg206", unit =>""}, + "sFan" => {cmd2=>"E8", type =>"E8fan206", unit =>""}, + "sControl" => {cmd2=>"F2", type =>"F2ctrl", unit =>""}, + "sDHW" => {cmd2=>"F3", type =>"F3dhw", unit =>""}, + "sHC2" => {cmd2=>"F5", type =>"F5hc2", unit =>""}, + "sSystem" => {cmd2=>"F6", type =>"F6sys206", 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 =>""}, - "pFan" => {cmd2=>"01", type =>"01pxx206", unit =>""}, - "sLast10errors" => {cmd2=>"D1", type =>"D1last206", unit =>""}, - "sFirmware" => {cmd2=>"FD", type =>"FDfirm", unit =>""}, - "sGlobal" => {cmd2=>"FB", type =>"FBglob206", unit =>""} + "sHC1" => {cmd2=>"F4", type =>"F4hc1", unit =>""}, + "pFan" => {cmd2=>"01", type =>"01pxx206", unit =>""}, + "sLast10errors" => {cmd2=>"D1", type =>"D1last206",unit =>""}, + "sFirmware" => {cmd2=>"FD", type =>"FDfirm", unit =>""}, + "sGlobal" => {cmd2=>"FB", type =>"FBglob206",unit =>""} ); 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 =>""}, - "sGlobal" => {cmd2=>"FB", type =>"FBglob214", unit =>""} + "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 =>""}, + "sGlobal" => {cmd2=>"FB", type =>"FBglob214",unit =>""} ); @@ -1075,12 +1076,12 @@ sub THZ_Read($) { if ($msg ne "10") {$err .= " THZ_Get_Com: error found at step0 $msg"; $err .=" NAK!!" if ($msg eq "15"); THZ_Resethelper($hash);} else { THZ_Write($hash, $hash->{helper}{cmdHex}); $hash->{helper}{step}="step1"; $hash->{helper}{PARTIAL}=""; } } - elsif ($hash->{helper}{step} eq "step1") { #Expectedanswer1 is "1002", DLE data link escape -- STX start of text + elsif ($hash->{helper}{step} eq "step1") { #Expectedanswer1 is "1002", DLE data link escape -- STX start of text if ($msg eq "10") { } elsif ($msg eq "15") { $err .= " THZ_Get_Com: error found at step1 NAK!! "; THZ_Resethelper($hash); } elsif ($msg eq "1002" || $msg eq "02") {THZ_Write($hash, "10"); $hash->{helper}{step}="step2"; $hash->{helper}{PARTIAL}=""; } } - elsif ($hash->{helper}{step} eq "step2") { #Expectedanswer2 is message from the heatpump + elsif ($hash->{helper}{step} eq "step2") { #Expectedanswer2 is message from the heatpump ($err, $msg) = THZ_decode($msg); $msg.=THZ_Parse1($hash,$msg); THZ_Write($hash, "10"); @@ -1427,7 +1428,6 @@ sub THZ_Get($@) { return $err; } my $cmdhash = $gets{$cmd}; - #return "Unknown argument $cmd, choose one of " . join(" ", sort keys %gets) if(!defined($cmdhash)); if(!defined($cmdhash)) { my $getList; foreach my $key (sort keys %gets) {$getList .= "$key:noArg ";} @@ -1496,26 +1496,29 @@ sub THZ_Get_Comunication($$) { 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", "");} - select(undef, undef, undef, 0.001); - THZ_Write($hash, "02"); # step0 --> STX start of text + + # ---------step0 --> STX start of text + THZ_Write($hash, "02"); ($err, $msg) = THZ_ReadAnswer($hash); #Expectedanswer0 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); - } + + # ---------step1 --> send request SOH start of heading -- Null -- ?? -- DLE data link escape -- EOT End of Text + THZ_Write($hash, $cmdHex); + ($err, $msg) = THZ_ReadAnswer($hash); if (defined($err)) {$err .= " THZ_Get_Com: error found at step1 "; select(undef, undef, undef, 0.1); return($err, $msg) ;} # Expectedanswer1 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 send DLE data link escape - ($err, $msg) = THZ_ReadAnswer($hash); # Expectedanswer2 // read from the heatpump - THZ_Write($hash, "10"); - } - if (defined($err)) {$err .= " THZ_Get_Com: error found at step2"; select(undef, undef, undef, 0.1);} - else {($err, $msg) = THZ_decode($msg);} #clean up and remove footer and header + if ($msg eq "10") {($err, $msg) = THZ_ReadAnswer($hash);} # read again sometimes "10" pause "02" + if ($msg ne "1002" and $msg ne "02") {$err .= " THZ_Get_Com: error found at step1 $msg"; $err .=" NAK!!" if ($msg eq "15"); select(undef, undef, undef, 0.1); return($err, $msg) ;} + + # ---------step2 send DLE data link escape + THZ_Write($hash, "10"); + ($err, $msg) = THZ_ReadAnswer($hash); + THZ_Write($hash, "10"); + if (defined($err)) {$err .= " THZ_Get_Com: error found at step2"; select(undef, undef, undef, 0.1);return($err, $msg) ;} + # Expectedanswer2 // read from the heatpump + + ($err, $msg) = THZ_decode($msg); #clean up and remove footer and header return($err, $msg); } @@ -1887,7 +1890,7 @@ sub THZ_Parse1($$) { } ######################################################################################## -# only for debug +# only for debug; start with "get Mythz debug_read_raw_register_slow" # ######################################################################################## sub THZ_debugread($){ @@ -1901,6 +1904,7 @@ sub THZ_debugread($){ #my @numbers = (1..256); #my @numbers = (1..65535); #my @numbers = (1..3179); + #my @numbers = ('01', '09'); my $indice= "FF"; unlink("data.txt"); #delete debuglog #my $i=0; @@ -1910,7 +1914,10 @@ sub THZ_debugread($){ #my $cmd = sprintf("%04X", $indice); #my $cmd = "0A" . sprintf("%04X", $indice); my $cmd = $indice; - my $cmdHex2 = THZ_encodecommand($cmd,"get"); + my $cmdHex2 = THZ_encodecommand($cmd,"get"); + #$cmd="0B013D00D2"; #set temp standby to D2hex = 210 dec to be decided by 10 --> 21°C + #$cmd="D10000"; #delete last 10 errors + #my $cmdHex2 = THZ_encodecommand($cmd,"set",); #($err, $msg) = THZ_Get_Comunication($hash, $cmdHex2); #STX start of text THZ_Write($hash, "02");