2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-08 13:24:56 +00:00

CUL_HM:extend dis wm with dynamic text

git-svn-id: https://svn.fhem.de/fhem/trunk@7912 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2015-02-08 08:46:27 +00:00
parent c77fd3513d
commit bd0f10b438
2 changed files with 128 additions and 86 deletions

View File

@ -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 <text> 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);

View File

@ -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
}
);