diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index 2fac13755..946e62ac1 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -113,6 +113,7 @@ sub CUL_HM_qStateUpdatIfEnab($@); sub CUL_HM_getAttrInt($@); sub CUL_HM_appFromQ($$); sub CUL_HM_autoReadReady($); +sub CUL_HM_calcDisWm($$$); # ----------------modul globals----------------------- my $respRemoved; # used to control trigger of stack processing @@ -893,6 +894,24 @@ sub CUL_HM_hmInitMsgUpdt($){ #update device init msg for HMLAN ,"threeStateSensor"=>{"00"=>"closed" ,"64"=>"tilted" ,"C8"=>"open"} } ); + + my %disColor=(white=>0,red=>1,orange=>2,yellow=>3,green=>4,blue=>5); + my %disIcon=( off =>0, on=>1, open=>2, closed=>3, error=>4, ok=>5 + ,info=>6, newMsg=>7, serviceMsg=>8 + ,sigGreen=>9, sigYellow=>10, sigRed=>11 + ,ic12=>12, ic13=>13 + ,noIcon=>99 + ); + my %disBtn=( txt01_1=>0, txt01_2=>1, txt02_1=>2, txt02_2=>3, txt03_1=>4 + , txt03_2=>5, txt04_1=>6, txt04_2=>7, txt05_1=>8, txt05_2=>9 + , txt06_1=>10,txt06_2=>11,txt07_1=>12,txt07_2=>13,txt08_1=>14 + , txt08_2=>15,txt09_1=>16,txt09_2=>17,txt10_1=>18,txt10_2=>19 + ); + + + + + sub CUL_HM_Parse($$) {######################################################### my ($iohash, $msgIn) = @_; @@ -1816,6 +1835,8 @@ sub CUL_HM_Parse($$) {######################################################### push @evtEt,[$devH,1,"state:$btnName $state$target"]; if($md eq "HM-Dis-WM55"){ my $type = $trigType eq "Short"?"s":"l"; + Log 1,"General got trigger"; + CUL_HM_calcDisWm($chnHash,$devH->{NAME},($trigType eq "Long"?"l":"s")); CUL_HM_PushCmdStack($shash,"++A011$id$src$_")foreach (@{$chnHash->{helper}{disp}{$type}}); } } @@ -3982,24 +4003,10 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ elsif($cmd eq "displayWM" ) { ############################################### $state = ""; # textNo color icon - my %color=(white=>0,red=>1,orange=>2,yellow=>3,green=>4,blue=>5); - my %icon=( off =>0, on=>1, open=>2, closed=>3, error=>4, ok=>5 - ,info=>6, newMsg=>7, serviceMsg=>8 - ,sigGreen=>9, sigYellow=>10, sigRed=>11 - ,ic12=>12, ic13=>13 - ,noIcon=>99 - ); - my %btn=( txt01_1=>0, txt01_2=>1, txt02_1=>2, txt02_2=>3, txt03_1=>4 - , txt03_2=>5, txt04_1=>6, txt04_2=>7, txt05_1=>8, txt05_2=>9 - , txt06_1=>10,txt06_2=>11,txt07_1=>12,txt07_2=>13,txt08_1=>14 - , txt08_2=>15,txt09_1=>16,txt09_2=>17,txt10_1=>18,txt10_2=>19 - ); - - my $param = (scalar(@a)-2); if ($a[2] eq "help"){ my $ret = "text :\n max 2 char"; - foreach (sort keys %btn){ + foreach (sort keys %disBtn){ my (undef,$ch,undef,$ln) = unpack('A3A2A1A1',$_); $ch = sprintf("%02X",$ch); $ret .= "\n $_ ->" @@ -4007,9 +4014,9 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ ,"text$ln","unkown"); } $ret .= "\n off nc(no change)" - ."\ncolor:".join(",",sort keys %color) + ."\ncolor:".join(",",sort keys %disColor) ."\n nc(no change)" - ."\nicon :".join(",",sort keys %icon) + ."\nicon :".join(",",sort keys %disIcon) ; return $ret; } @@ -4027,6 +4034,13 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ if ($a[4] eq "off"){ #no display in this line delete $dh->{txt}; } + elsif($a[4] =~ m/^e:/){ # equation + $dh->{d} = 2; # mark as equation + $dh->{exe} = $a[4]; + $dh->{exe} =~ s/^e://; + ($dh->{txt},$a[5],$a[6]) = eval $dh->{exe}; + return "define eval must return 3 values:" if(!defined $a[6]); + } elsif($a[4] ne "nc"){ # new text return "text too long " .$a[4] if (length($a[4])>12); $dh->{txt}=$a[4]; @@ -4037,7 +4051,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ delete $dh->{col}; } elsif($a[5] ne "nc"){ # set new color - return "color wrong $a[5] use:".join(",",sort keys %color) if (!defined $color{$a[5]}); + return "color wrong $a[5] use:".join(",",sort keys %disColor) if (!defined $disColor{$a[5]}); $dh->{col}=$a[5]; } } @@ -4047,7 +4061,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ delete $dh->{icn}; } elsif($a[6] ne "nc"){ # new icon - return "icon wrong $a[6] use:".join(",",sort keys %icon) if (!defined $icon {$a[6]}); + return "icon wrong $a[6] use:".join(",",sort keys %disIcon) if (!defined $disIcon {$a[6]}); $dh->{icn}=$a[6]; } } @@ -4059,8 +4073,8 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ my $lnNr = int($cnt/3); $hash->{helper}{dispi}{$type}{"l$lnNr"}{d}=1;#define this hash my $dh = $hash->{helper}{dispi}{$type}{"l$lnNr"}; - return "color wrong ".$a[$cnt+1]." use:".join(",",sort keys %color) if (!defined $color{$a[$cnt+1]}); - return "icon wrong " .$a[$cnt+2]." use:".join(",",sort keys %icon) if (!defined $icon {$a[$cnt+2]}); + return "color wrong ".$a[$cnt+1]." use:".join(",",sort keys %disColor) if (!defined $disColor{$a[$cnt+1]}); + return "icon wrong " .$a[$cnt+2]." use:".join(",",sort keys %disIcon) if (!defined $disIcon {$a[$cnt+2]}); return "text too long " .$a[$cnt+0] if (length($a[$cnt+0])>12); if ($a[$cnt+0] eq "nc") {} # nc = no change elsif ($a[$cnt+0] eq "off"){ delete $dh->{txt} } # off = no text display @@ -4071,50 +4085,9 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ delete $dh->{icn} if ($a[$cnt+2] eq "noIcon"); } } + foreach my $t (keys %{$hash->{helper}{dispi}}){ # prepare the messages - my $msg; - my $ts = $t eq "s"?"short":"long"; - foreach my $l (sort keys %{$hash->{helper}{dispi}{$t}}){ - my $dh = $hash->{helper}{dispi}{$t}{"$l"}; - my (undef,$ch,undef,$ln) = unpack('A3A2A1A1',$dh->{txt}); - $ch = sprintf("%02X",$ch); - my $rd = ($dh->{txt}?"$dh->{txt} ":"- ") - .($dh->{col}?"$dh->{col} ":"- ") - .($dh->{icn}?"$dh->{icn} ":"- ") - ; - $rd .= "->". ReadingsVal(InternalVal($devName,"channel_$ch","no") - ,"text$ln","unkown") - if (defined $btn{$dh->{txt} }); - readingsSingleUpdate($hash,"disp_${ts}_$l" - ,$rd - ,0); - - if($dh->{txt}){ - if (defined $btn{$dh->{txt} }){ - $msg .= sprintf("12%02X",$btn{$dh->{txt} }+0x80); - } - else{ - $msg .= "12"; - $msg .= uc( unpack("H*",$dh->{txt})) if ($dh->{txt}); - } - } - else{ - $msg .= "12"; - } - - $msg .= sprintf("11%02X",$color{$dh->{col}}+0x80)if ($dh->{col}); - $msg .= sprintf("13%02X",$icon{$dh->{icn} }+0x80)if ($dh->{icn}); - $msg .= "0A";# end of line indicator - } - - my $msgh = "800102"; - $msg .= "03"; - my @txtMsg2; - foreach (unpack('(A28)*',$msg)){ - push @txtMsg2,$msgh.$_; - $msgh = "8001"; - } - $hash->{helper}{disp}{$t} = \@txtMsg2; + CUL_HM_calcDisWm($hash,$devName,$t); } } @@ -5066,6 +5039,72 @@ sub CUL_HM_getConfig($){ } } +sub CUL_HM_calcDisWmSet($){ + my $dh = shift; + my ($txt,$col,$icon) = eval $dh->{exe}; + if ($txt eq "off") { delete $dh->{txt};} + elsif($txt ne "nc"){ + if (length($txt)>12){ delete $dh->{txt};} + else { $dh->{txt} = $txt; } + } + + if($col eq "off") { delete $dh->{col};} + elsif($col ne "nc"){ + if (!defined $disColor{$col}){ delete $dh->{col};} + else { $dh->{col}=$col; } + } + + if($icon eq "noIcon"){ delete $dh->{icn};} + elsif($icon ne "nc"){ + if (!defined $disIcon {$icon}){delete $dh->{icn}} + else {$dh->{icn}=$icon;} + } +} +sub CUL_HM_calcDisWm($$$){ + my ($hash,$devName,$t)= @_; # t = s or l + my $msg; + my $ts = $t eq "s"?"short":"long"; + foreach my $l (sort keys %{$hash->{helper}{dispi}{$t}}){ + my $dh = $hash->{helper}{dispi}{$t}{"$l"}; + CUL_HM_calcDisWmSet($dh) if ($dh->{d} == 2); + + my ($ch,$ln); + if($dh->{txt}){ + (undef,$ch,undef,$ln) = unpack('A3A2A1A1',$dh->{txt}); + $ch = sprintf("%02X",$ch); + my $rd = ($dh->{txt}?"$dh->{txt} ":"- ") + .($dh->{col}?"$dh->{col} ":"- ") + .($dh->{icn}?"$dh->{icn} ":"- ") + ; + $rd .= "->". ReadingsVal(InternalVal($devName,"channel_$ch","no") + ,"text$ln","unkown") + if (defined $disBtn{$dh->{txt} }); + readingsSingleUpdate($hash,"disp_${ts}_$l" + ,$rd + ,0); + if (defined $disBtn{$dh->{txt} }){ + $msg .= sprintf("12%02X",$disBtn{$dh->{txt} }+0x80); + } + else{ + $msg .= "12"; + $msg .= uc( unpack("H*",$dh->{txt})) if ($dh->{txt}); + } + } + + $msg .= sprintf("11%02X",$disColor{$dh->{col}}+0x80)if ($dh->{col}); + $msg .= sprintf("13%02X",$disIcon{$dh->{icn} }+0x80)if ($dh->{icn}); + $msg .= "0A";# end of line indicator + } + my $msgh = "800102"; + $msg .= "03"; + my @txtMsg2; + foreach (unpack('(A28)*',$msg)){ + push @txtMsg2,$msgh.$_; + $msgh = "8001"; + } + $hash->{helper}{disp}{$t} = \@txtMsg2; +} + sub CUL_HM_RemoveHMPair($) {#################################################### my($in ) = shift; my(undef,$name) = split(':',$in); diff --git a/fhem/FHEM/HMConfig.pm b/fhem/FHEM/HMConfig.pm index 4d427641c..c4213e3cd 100644 --- a/fhem/FHEM/HMConfig.pm +++ b/fhem/FHEM/HMConfig.pm @@ -477,6 +477,8 @@ my $K_actDetID = '000000'; # id of actionDetector # BL1TPBU 02:01 21:FF # Dim1TPBU 02:01 21:FF 22:00 # HM-MOD-Re-8 30:49 +# tx: D1E8 9158 + #Keymatic 3.3 unknown, seen 1 here #--- list 1, Channel level------------------ @@ -657,14 +659,14 @@ my $K_actDetID = '000000'; # id of actionDetector displayTemp =>{a=> 1.1,s=>0.1,l=>5,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"" ,lit=>{actual=>0,setpoint=>1}}, displayTempUnit =>{a=> 1.2,s=>0.1,l=>5,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"" ,lit=>{celsius=>0,fahrenheit=>1}}, controlMode =>{a=> 1.3,s=>0.2,l=>5,min=>0 ,max=>3 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"" ,lit=>{manual=>0,auto=>1,central=>2,party=>3}}, - decalcDay =>{a=> 1.5,s=>0.3,l=>5,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"Decalc weekday" ,lit=>{Sat=>0,Sun=>1,Mon=>2,Tue=>3,Wed=>4,Thu=>5,Fri=>6}}, + decalcDay =>{a=> 1.5,s=>0.3,l=>5,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Decalc weekday" ,lit=>{Sat=>0,Sun=>1,Mon=>2,Tue=>3,Wed=>4,Thu=>5,Fri=>6}}, mdTempValve =>{a=> 2.6,s=>0.2,l=>5,min=>0 ,max=>2 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"" ,lit=>{auto=>0,close=>1,open=>2}}, "day-temp" =>{a=> 3 ,s=>0.6,l=>5,min=>6 ,max=>30 ,c=>'' ,f=>2 ,u=>'C' ,d=>1,t=>"comfort or day temperatur"}, "night-temp" =>{a=> 4 ,s=>0.6,l=>5,min=>6 ,max=>30 ,c=>'' ,f=>2 ,u=>'C' ,d=>1,t=>"lower or night temperatur"}, tempWinOpen =>{a=> 5 ,s=>0.6,l=>5,min=>6 ,max=>30 ,c=>'' ,f=>2 ,u=>'C' ,d=>1,t=>"Temperature for Win open"}, "party-temp" =>{a=> 6 ,s=>0.6,l=>5,min=>6 ,max=>30 ,c=>'' ,f=>2 ,u=>'C' ,d=>1,t=>"Temperature for Party"}, - decalMin =>{a=> 8 ,s=>0.3,l=>5,min=>0 ,max=>50 ,c=>'' ,f=>0.1 ,u=>'min' ,d=>1,t=>"Decalc min"}, - decalHr =>{a=> 8.3,s=>0.5,l=>5,min=>0 ,max=>23 ,c=>'' ,f=>'' ,u=>'h' ,d=>1,t=>"Decalc hour"}, + decalMin =>{a=> 8 ,s=>0.3,l=>5,min=>0 ,max=>50 ,c=>'' ,f=>0.1 ,u=>'min' ,d=>0,t=>"Decalc min"}, + decalHr =>{a=> 8.3,s=>0.5,l=>5,min=>0 ,max=>23 ,c=>'' ,f=>'' ,u=>'h' ,d=>0,t=>"Decalc hour"}, partyEndHr =>{a=> 97 ,s=>0.6,l=>6,min=>0 ,max=>23 ,c=>'' ,f=>'' ,u=>'h' ,d=>1,t=>"Party end hour. Use cmd partyMode to set"}, partyEndMin =>{a=> 97.7,s=>0.1,l=>6,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'min' ,d=>1,t=>"Party end min. Use cmd partyMode to set" ,lit=>{"00"=>0,"30"=>1}}, @@ -675,12 +677,12 @@ my $K_actDetID = '000000'; # id of actionDetector dayTemp =>{a=> 1 ,s=>0.6,l=>7,min=>15 ,max=>30 ,c=>'' ,f=>'2' ,u=>'C' ,d=>1,t=>"comfort or day temperatur"}, nightTemp =>{a=> 2 ,s=>0.6,l=>7,min=>5 ,max=>25 ,c=>'' ,f=>'2' ,u=>'C' ,d=>1,t=>"lower or night temperatur"}, - tempMin =>{a=> 3 ,s=>0.6,l=>7,min=>4.5,max=>14.5 ,c=>'' ,f=>'2' ,u=>'C' ,d=>1,t=>"minimum temperatur"}, - tempMax =>{a=> 4 ,s=>0.6,l=>7,min=>15 ,max=>30.5 ,c=>'' ,f=>'2' ,u=>'C' ,d=>1,t=>"maximum temperatur"}, - winOpnTemp =>{a=> 5 ,s=>0.6,l=>7,min=>5 ,max=>30 ,c=>'' ,f=>'2' ,u=>'C' ,d=>1,t=>"lowering temp whenWindow is opened"}, - winOpnPeriod =>{a=> 6 ,s=>0.4,l=>7,min=>0 ,max=>60 ,c=>'' ,f=>'0.2' ,u=>'min' ,d=>1,t=>"period lowering when window is open"}, - decalcWeekday =>{a=> 7 ,s=>0.3,l=>7,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"decalc at day" ,lit=>{Sat=>0,Sun=>1,Mon=>2,Tue=>3,Wed=>4,Thu=>5,Fri=>6}}, - decalcTime =>{a=> 8 ,s=>0.6,l=>7,min=>0 ,max=>1410 ,c=>'min2time' ,f=>'' ,u=>'' ,d=>1,t=>"decalc at hour"}, + tempMin =>{a=> 3 ,s=>0.6,l=>7,min=>4.5,max=>14.5 ,c=>'' ,f=>'2' ,u=>'C' ,d=>0,t=>"minimum temperatur"}, + tempMax =>{a=> 4 ,s=>0.6,l=>7,min=>15 ,max=>30.5 ,c=>'' ,f=>'2' ,u=>'C' ,d=>0,t=>"maximum temperatur"}, + winOpnTemp =>{a=> 5 ,s=>0.6,l=>7,min=>5 ,max=>30 ,c=>'' ,f=>'2' ,u=>'C' ,d=>0,t=>"lowering temp whenWindow is opened"}, + winOpnPeriod =>{a=> 6 ,s=>0.4,l=>7,min=>0 ,max=>60 ,c=>'' ,f=>'0.2' ,u=>'min' ,d=>0,t=>"period lowering when window is open"}, + decalcWeekday =>{a=> 7 ,s=>0.3,l=>7,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"decalc at day" ,lit=>{Sat=>0,Sun=>1,Mon=>2,Tue=>3,Wed=>4,Thu=>5,Fri=>6}}, + decalcTime =>{a=> 8 ,s=>0.6,l=>7,min=>0 ,max=>1410 ,c=>'min2time' ,f=>'' ,u=>'' ,d=>0,t=>"decalc at hour"}, tempOffset =>{a=> 9 ,s=>0.4,l=>7,min=>0 ,max=>15 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"temperature offset" ,lit=>{"-3.5K"=>0,"-3.0K"=>1,"-2.5K"=>2,"-2.0K"=>3,"-1.5K"=>4,"-1.0K"=>5,"-0.5K"=>6, "0.0K"=>7, "0.5K"=>8, "1.0K"=>9, "1.5K"=>10, "2.0K"=>11, "2.5K"=>12, "3.0K"=>13, "3.5K"=>14}}, btnNoBckLight =>{a=> 9.4,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"button response without backlight" ,lit=>{off=>0,on=>1}}, @@ -689,17 +691,17 @@ my $K_actDetID = '000000'; # id of actionDetector sendWeatherData =>{a=> 9.7,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"send weather data" ,lit=>{off=>0,on=>1}}, boostPos =>{a=> 10.0,s=>0.5,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'0.2' ,u=>'%' ,d=>1,t=>"valve boost position"}, - boostPeriod =>{a=> 10.5,s=>0.3,l=>7,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'min' ,d=>1,t=>"boost period [min]" ,lit=>{0=>0,5=>1,10=>2,15=>3,20=>4,25=>5,30=>6}}, + boostPeriod =>{a=> 10.5,s=>0.3,l=>7,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'min' ,d=>0,t=>"boost period [min]" ,lit=>{0=>0,5=>1,10=>2,15=>3,20=>4,25=>5,30=>6}}, valveOffsetRt =>{a=> 11 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"offset for valve"}, - valveMaxPos =>{a=> 12 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve maximum position"}, - valveErrPos =>{a=> 13 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve error position"}, + valveMaxPos =>{a=> 12 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>0,t=>"valve maximum position"}, + valveErrPos =>{a=> 13 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>0,t=>"valve error position"}, daylightSaveTime=>{a=> 14 ,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"set daylight saving time" ,lit=>{off=>0,on=>1}}, regAdaptive =>{a=> 14.1,s=>0.2,l=>7,min=>0 ,max=>2 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"adaptive regu on or off with default or determined values",lit=>{offDefault=>0,offDeter=>1,on=>2}}, showInfo =>{a=> 14.3,s=>0.2,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"show date or time" ,lit=>{time=>0,date=>1}}, winOpnBoost =>{a=> 14.5,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"boost after window closed" ,lit=>{off=>0,on=>1}}, noMinMax4Manu =>{a=> 14.6,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"min/max is irrelevant for manual mode",lit=>{off=>0,on=>1}}, - showWeekday =>{a=> 14.7,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"show weekday" ,lit=>{off=>0,on=>1}}, + showWeekday =>{a=> 14.7,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"show weekday" ,lit=>{off=>0,on=>1}}, hyst2point =>{a=> 15.0,s=>0.5,l=>7,min=>0 ,max=>2 ,c=>'' ,f=>'10' ,u=>'C' ,d=>1,t=>"hysteresis range",}, heatCool =>{a=> 15.7,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"select heating or cooling" ,lit=>{heating=>0,cooling=>1}}, @@ -708,15 +710,15 @@ my $K_actDetID = '000000'; # id of actionDetector modePrioParty =>{a=> 18.0,s=>0.3,l=>7,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"allow tempChange for party only by: " ,lit=>{RT_TC_SC_SELF=>0,all=>1,RT_TC_CCU_SELF=>2,CCU=>3,self=>4}}, modePrioManu =>{a=> 18.3,s=>0.3,l=>7,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"allow tempChange for manual only by: ",lit=>{RT_TC_SC_SELF=>0,all=>1,RT_TC_CCU_SELF=>2,CCU=>3,self=>4}}, - winOpnMode =>{a=> 19.5,s=>0.3,l=>7,min=>0 ,max=>4 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"enable internal Windoe open in modes: ",lit=>{off=>0,auto=>1,auto_manu=>2,auto_party=>3,on=>4}}, - winOpnDetFall =>{a=> 19.0,s=>0.5,l=>7,min=>0.5,max=>2.5 ,c=>'' ,f=>'10' ,u=>'K' ,d=>1,t=>"detect Window Open if temp falls more then..."}, + winOpnMode =>{a=> 19.5,s=>0.3,l=>7,min=>0 ,max=>4 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"enable internal Windoe open in modes: ",lit=>{off=>0,auto=>1,auto_manu=>2,auto_party=>3,on=>4}}, + winOpnDetFall =>{a=> 19.0,s=>0.5,l=>7,min=>0.5,max=>2.5 ,c=>'' ,f=>'10' ,u=>'K' ,d=>0,t=>"detect Window Open if temp falls more then..."}, - reguIntI =>{a=>202.0,s=>1 ,l=>7,min=>10 ,max=>20 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator I-param internal mode"}, - reguIntP =>{a=>203.0,s=>1 ,l=>7,min=>25 ,max=>35 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator P-param internal mode"}, - reguIntPstart =>{a=>204.0,s=>1 ,l=>7,min=>5 ,max=>45 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator P-param internal mode start value"}, - reguExtI =>{a=>205.0,s=>1 ,l=>7,min=>10 ,max=>20 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator I-param extern mode"}, - reguExtP =>{a=>206.0,s=>1 ,l=>7,min=>25 ,max=>35 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator P-param extern mode"}, - reguExtPstart =>{a=>207.0,s=>1 ,l=>7,min=>5 ,max=>45 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"regulator P-param extern mode start value"}, + reguIntI =>{a=>202.0,s=>1 ,l=>7,min=>10 ,max=>20 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator I-param internal mode"}, + reguIntP =>{a=>203.0,s=>1 ,l=>7,min=>25 ,max=>35 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator P-param internal mode"}, + reguIntPstart =>{a=>204.0,s=>1 ,l=>7,min=>5 ,max=>45 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator P-param internal mode start value"}, + reguExtI =>{a=>205.0,s=>1 ,l=>7,min=>10 ,max=>20 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator I-param extern mode"}, + reguExtP =>{a=>206.0,s=>1 ,l=>7,min=>25 ,max=>35 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator P-param extern mode"}, + reguExtPstart =>{a=>207.0,s=>1 ,l=>7,min=>5 ,max=>45 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"regulator P-param extern mode start value"}, ); #'THSensor' @@ -802,7 +804,8 @@ my $K_actDetID = '000000'; # id of actionDetector ,sensRain =>{ transmDevTryMax =>1,localResDis =>1} ,tipTronic =>{ cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,localResDis =>1,RS485IdleTime =>1} ,powerMeter =>{ intKeyVisib =>1,localResDis =>1} - ,powerSensor =>{ mtrType =>1,mtrConstIr =>1,mtrConstGas =>1,mtrConstLed =>1 + ,powerSensor =>{ transmitTryMax =>1,transmDevTryMax =>1 + ,mtrType =>1,mtrConstIr =>1,mtrConstGas =>1,mtrConstLed =>1 ,mtrSensIr =>1 } );