mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
message statistics, bug fixes, restrict statusRequest command, fix text for device
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@4218 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
11b0644cf1
commit
980e10b55b
@ -165,6 +165,11 @@ sub CUL_HM_Initialize($) {
|
||||
$hash->{helper}{qReqStatWu} = \@statQWuArr;
|
||||
$hash->{helper}{qReqConf} = \@confQArr;
|
||||
$hash->{helper}{qReqConfWu} = \@confQWuArr;
|
||||
#statistics
|
||||
$hash->{stat}{s}{dummy}=0;
|
||||
$hash->{stat}{r}{dummy}=0;
|
||||
InternalTimer(gettimeofday()+3600*20,"CUL_HM_statCntRfresh","StatCntRfresh", 0);
|
||||
|
||||
CUL_HM_initRegHash();
|
||||
$hash->{hmIoMaxDly} = 60;# poll timeout - stop poll and discard
|
||||
$hash->{hmAutoReadScan} = 4; # delay autoConf readings
|
||||
@ -189,8 +194,7 @@ sub CUL_HM_updateConfig($){
|
||||
if ( $hash->{helper}{role}{dev}
|
||||
&& AttrVal($name,"subType","") ne "virtual"){
|
||||
$attr{$name}{expert} = AttrVal($name,"expert" ,"2_full");
|
||||
$attr{$name}{autoReadReg}= AttrVal($name,"autoReadReg","4_reqStatus")
|
||||
if(CUL_HM_getRxType($hash)&0xEB);
|
||||
$attr{$name}{autoReadReg}= AttrVal($name,"autoReadReg","4_reqStatus");
|
||||
}
|
||||
CUL_HM_Attr("attr",$name,"expert",$attr{$name}{expert});#need update after readings are available
|
||||
}
|
||||
@ -529,6 +533,7 @@ sub CUL_HM_Parse($$) {##############################
|
||||
# $shash will be replaced for multichannel commands
|
||||
my $shash = $modules{CUL_HM}{defptr}{$src};
|
||||
my $dhash = $modules{CUL_HM}{defptr}{$dst};
|
||||
CUL_HM_statCnt($ioName,"r");
|
||||
|
||||
$respRemoved = 0; #set to 'no response in this message' at start
|
||||
if(!$shash) { # Unknown source
|
||||
@ -1066,11 +1071,13 @@ sub CUL_HM_Parse($$) {##############################
|
||||
push @event, "timedOn:".(($err&0x40)?"running":"off");
|
||||
|
||||
if ($st ne "switch"){
|
||||
push @event, "$eventName:up:$vs" if(($err&0x30) == 0x10);
|
||||
push @event, "$eventName:down:$vs" if(($err&0x30) == 0x20);
|
||||
push @event, "$eventName:stop:$vs" if(($err&0x30) == 0x00);
|
||||
my $dir = $err&0x30;
|
||||
if ($dir == 0x10){push @event, "$eventName:up:$vs" ;}
|
||||
elsif($dir == 0x20){push @event, "$eventName:down:$vs";}
|
||||
elsif($dir == 0x00){push @event, "$eventName:stop:$vs";}
|
||||
elsif($dir == 0x30){push @event, "$eventName:err:$vs";}
|
||||
if (!$rSUpdt){#dont touch if necessary for dimmer
|
||||
if(($err&0x30) != 0x00){CUL_HM_stateUpdatDly($shash->{NAME},120);}
|
||||
if($dir != 0x00){CUL_HM_stateUpdatDly($shash->{NAME},120);}
|
||||
else {CUL_HM_unQEntity($shash->{NAME},"qReqStat");}
|
||||
}
|
||||
}
|
||||
@ -1576,6 +1583,7 @@ sub CUL_HM_parseCommon(@){#####################################################
|
||||
foreach (keys%{$shash->{helper}{prt}{rspWaitSec}}); #back to original message
|
||||
delete $shash->{helper}{prt}{rspWaitSec};
|
||||
IOWrite($shash, "", $shash->{helper}{prt}{rspWait}{cmd}); # and send
|
||||
CUL_HM_statCnt($shash->{IODev}{NAME},"s");
|
||||
#General set timer
|
||||
return "done"
|
||||
}
|
||||
@ -1675,10 +1683,11 @@ sub CUL_HM_parseCommon(@){#####################################################
|
||||
$idstr =~ s/(..)/sprintf("%02X%s",$s++,$1)/ge;
|
||||
CUL_HM_pushConfig($shash, $id, $src,0,0,0,0, "0201$idstr");
|
||||
CUL_HM_ProcessCmdStack($shash); # start processing immediately
|
||||
CUL_HM_qAutoRead($shash->{NAME},0);
|
||||
CUL_HM_appFromQ($shash->{NAME},"cf");# stack cmds if waiting
|
||||
|
||||
}
|
||||
elsif(CUL_HM_getRxType($shash) & 0x04){# nothing to pair - maybe send config
|
||||
CUL_HM_qAutoRead($shash->{NAME},0);
|
||||
CUL_HM_appFromQ($shash->{NAME},"cf"); # stack cmds if waiting
|
||||
if (hex($mFlg)&0x20){CUL_HM_SndCmd($shash,$mNo."8002".$id.$src."00");}
|
||||
else{ CUL_HM_ProcessCmdStack($shash);} ;#config
|
||||
@ -2215,7 +2224,7 @@ sub CUL_HM_Set($@) {
|
||||
elsif($cmd eq "text") { ################################################# reg
|
||||
my ($bn,$l1, $l2) = ($chn,$a[2],$a[3]); # Create CONFIG_WRITE_INDEX string
|
||||
if (!$roleC){# if used on device.
|
||||
return "$a[2] is not a button number" if($a[2] !~ m/^\d$/ || $a[2] < 1);
|
||||
return "$a[2] is not a button number" if($a[2] !~ m/^\d*$/ || $a[2] < 1);
|
||||
return "$a[3] is not on or off" if($a[3] !~ m/^(on|off)$/);
|
||||
$bn = $a[2]*2-($a[3] eq "on" ? 0 : 1);
|
||||
($l1, $l2) = ($a[4],$a[5]);
|
||||
@ -3690,11 +3699,58 @@ sub CUL_HM_SndCmd($$) {
|
||||
}
|
||||
$cmd = sprintf("As%02X%02X%s", length($cmd2)/2+1, $mn, $cmd2);
|
||||
IOWrite($hash, "", $cmd);
|
||||
CUL_HM_statCnt($ioName,"s");
|
||||
CUL_HM_eventP($hash,"Snd");
|
||||
CUL_HM_responseSetup($hash,$cmd);
|
||||
$cmd =~ m/As(..)(..)(..)(..)(......)(......)(.*)/;
|
||||
CUL_HM_DumpProtocol("SND", $io, ($1,$2,$3,$4,$5,$6,$7));
|
||||
}
|
||||
sub CUL_HM_statCnt($$) {# set msg statistics for (r)ecive (s)end or (u)pdate
|
||||
my ($ioName,$dir) = @_;
|
||||
my $stat = $modules{CUL_HM}{stat};
|
||||
if (!$stat->{$ioName}){
|
||||
$stat->{r}{$ioName}{h}{$_} = 0 foreach(0..23);
|
||||
$stat->{r}{$ioName}{d}{$_} = 0 foreach(0..6);
|
||||
$stat->{s}{$ioName}{h}{$_} = 0 foreach(0..23);
|
||||
$stat->{s}{$ioName}{d}{$_} = 0 foreach(0..6);
|
||||
$stat->{$ioName}{last} = 0;
|
||||
}
|
||||
my @l = localtime(gettimeofday());
|
||||
|
||||
if ($l[2] != $stat->{$ioName}{last}){#next field
|
||||
my $end = $l[2];
|
||||
if ($l[2] < $stat->{$ioName}{last}){#next day
|
||||
$end += 24;
|
||||
my $recentD = ($l[6]+6)%7;
|
||||
foreach my $ud ("r","s"){
|
||||
$stat->{$ud}{$ioName}{d}{$recentD} = 0;
|
||||
$stat->{$ud}{$ioName}{d}{$recentD} += $stat->{$ud}{$ioName}{h}{$_}
|
||||
foreach (0..23);
|
||||
}
|
||||
}
|
||||
foreach (($stat->{$ioName}{last}+1)..$end){
|
||||
$stat->{r}{$ioName}{h}{$_%24} = 0;
|
||||
$stat->{s}{$ioName}{h}{$_%24} = 0;
|
||||
}
|
||||
$stat->{$ioName}{last} = $l[2];
|
||||
}
|
||||
$stat->{$dir}{$ioName}{h}{$l[2]}++ if ($dir ne "u");
|
||||
}
|
||||
sub CUL_HM_statCntRfresh($) {# update statistic once a day
|
||||
my ($ioName,$dir) = @_;
|
||||
foreach (keys %{$modules{CUL_HM}{stat}{r}}){
|
||||
if (!$defs{$ioName}){#IO device is deleted, clear counts
|
||||
delete $modules{CUL_HM}{stat}{$ioName};
|
||||
delete $modules{CUL_HM}{stat}{r}{$ioName}{h};
|
||||
delete $modules{CUL_HM}{stat}{r}{$ioName}{d};
|
||||
delete $modules{CUL_HM}{stat}{s}{$ioName}{h};
|
||||
delete $modules{CUL_HM}{stat}{s}{$ioName}{d};
|
||||
next;
|
||||
}
|
||||
CUL_HM_statCnt($_,"u") if ($_ ne "dummy");
|
||||
}
|
||||
InternalTimer(gettimeofday()+3600*20,"CUL_HM_statCntRfresh","StatCntRfrh",0);
|
||||
}
|
||||
|
||||
sub CUL_HM_respPendRm($) {#del response related entries in messageing entity
|
||||
my ($hash) = @_;
|
||||
@ -3757,6 +3813,7 @@ sub CUL_HM_respPendTout($) {
|
||||
else{# normal device resend
|
||||
CUL_HM_eventP($hash,"Resnd");
|
||||
IOWrite($hash, "", $pHash->{rspWait}{cmd});
|
||||
CUL_HM_statCnt($hash->{IODev}{NAME},"s");
|
||||
$pHash->{rspWait}{reSent}++;
|
||||
Log GetLogLevel($name,4),"CUL_HM_Resend: ".$name. " nr ".$pHash->{rspWait}{reSent};
|
||||
InternalTimer(gettimeofday()+rand(20)/10+4,"CUL_HM_respPendTout","respPend:$hash->{DEF}", 0);
|
||||
|
@ -249,6 +249,44 @@ use warnings;
|
||||
return sort(@names);
|
||||
}
|
||||
|
||||
sub HMinfo_getMsgStat() { #####################################################
|
||||
my ($hr,$dr,$hs,$ds);
|
||||
$hr = sprintf("\n %-14s:","receive hour");
|
||||
$hs = sprintf("\n %-14s:","send hour");
|
||||
$dr = sprintf("\n %-14s:","receive day");
|
||||
$ds = sprintf("\n %-14s:","send day");
|
||||
$hr .= sprintf("| %02d",$_) foreach (0..23);
|
||||
$hs .= sprintf("| %02d",$_) foreach (0..23);
|
||||
$dr .= sprintf("|%4s",$_) foreach ("Mon","Tue","Wed","Thu","Fri","Sat","Sun","# tdy");
|
||||
$ds .= sprintf("|%4s",$_) foreach ("Mon","Tue","Wed","Thu","Fri","Sat","Sun","# tdy");
|
||||
foreach my $ioD(keys %{$modules{CUL_HM}{stat}{r}}){
|
||||
next if ($ioD eq "dummy");
|
||||
$hr .= sprintf("\n %-10s:",$ioD);
|
||||
$hs .= sprintf("\n %-10s:",$ioD);
|
||||
$dr .= sprintf("\n %-10s:",$ioD);
|
||||
$ds .= sprintf("\n %-10s:",$ioD);
|
||||
$hr .= sprintf("|%3d",$modules{CUL_HM}{stat}{r}{$ioD}{h}{$_}) foreach (0..23);
|
||||
$hs .= sprintf("|%3d",$modules{CUL_HM}{stat}{s}{$ioD}{h}{$_}) foreach (0..23);
|
||||
$dr .= sprintf("|%4d",$modules{CUL_HM}{stat}{r}{$ioD}{d}{$_}) foreach (0..6);
|
||||
$ds .= sprintf("|%4d",$modules{CUL_HM}{stat}{s}{$ioD}{d}{$_}) foreach (0..6);
|
||||
|
||||
my ($tdr,$tds);
|
||||
$tdr += $modules{CUL_HM}{stat}{r}{$ioD}{h}{$_} foreach (0..23);
|
||||
$tds += $modules{CUL_HM}{stat}{s}{$ioD}{h}{$_} foreach (0..23);
|
||||
$dr .= sprintf("|#%4d",$tdr);
|
||||
$ds .= sprintf("|#%4d",$tds);
|
||||
}
|
||||
my @l = localtime(gettimeofday());
|
||||
my $tsts = "\n |";
|
||||
$tsts .= "----" foreach (1..$l[2]);
|
||||
$tsts .= ">*" ;
|
||||
return "msg statistics\n"
|
||||
.$tsts
|
||||
.$hr.$hs
|
||||
.$tsts
|
||||
.$dr.$ds
|
||||
;
|
||||
}
|
||||
sub HMinfo_SetFn($@) {#########################################################
|
||||
my ($hash,$name,$cmd,@a) = @_;
|
||||
my ($opt,$optEmpty,$filter) = ("",1,"");
|
||||
@ -274,10 +312,20 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
}
|
||||
elsif($cmd eq "clear" ) {##actionImmediate: clear parameter--------------
|
||||
my ($type) = @a;
|
||||
if ($type eq "msgStat"){
|
||||
foreach (keys %{$modules{CUL_HM}{stat}{r}}){
|
||||
next if ($_ ne "dummy");
|
||||
delete $modules{CUL_HM}{stat}{$_};
|
||||
delete $modules{CUL_HM}{stat}{r}{$_};
|
||||
delete $modules{CUL_HM}{stat}{s}{$_};
|
||||
}
|
||||
return;
|
||||
}
|
||||
else{
|
||||
return "unknown parameter - use Protocol, readings, msgStat, register or rssi"
|
||||
if ($type !~ m/^(Protocol|readings|register|rssi)$/);
|
||||
$opt .= "d" if ($type !~ m/(readings|register)/);# readings apply to all, others device only
|
||||
my @entities;
|
||||
return "unknown parameter - use Protocol, readings, register or rssi"
|
||||
if ($type !~ m/^(Protocol|readings|register|rssi)$/);
|
||||
$type = "msgEvents" if ($type eq "Protocol");# translate parameter
|
||||
foreach my $dName (HMinfo_getEntities($opt."v",$filter)){
|
||||
push @entities,$dName;
|
||||
@ -286,6 +334,7 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
return $cmd.$type." done:" ."\n cleared" ."\n ".(join "\n ",sort @entities)
|
||||
;
|
||||
}
|
||||
}
|
||||
elsif($cmd eq "autoReadReg"){##actionImmediate: re-issue register Read-------
|
||||
my @entities;
|
||||
foreach my $dName (HMinfo_getEntities($opt."dv",$filter)){
|
||||
@ -357,6 +406,9 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
}
|
||||
$ret .= "\n IODevs:".(join"\n ",HMinfo_noDup(@IOlist));
|
||||
}
|
||||
elsif($cmd eq "msgStat") {##print message statistics----------------------
|
||||
$ret = HMinfo_getMsgStat();
|
||||
}
|
||||
elsif($cmd eq "rssi") {##print RSSI protocol-events--------------------
|
||||
my @rssiList;
|
||||
foreach my $dName (HMinfo_getEntities($opt."dv",$filter)){
|
||||
@ -551,6 +603,7 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
."\n peerXref [<typeFilter>] # peer cross-reference"
|
||||
."\n models [<typeFilter>] # list of models incl native parameter"
|
||||
."\n protoEvents [<typeFilter>] [short|long] # protocol status - names can be filtered"
|
||||
."\n msgStat # view message statistic"
|
||||
."\n param [<typeFilter>] [<param1>] [<param2>] ... # displays params for all entities as table"
|
||||
."\n rssi [<typeFilter>] # displays receive level of the HM devices"
|
||||
."\n last: most recent"
|
||||
@ -558,11 +611,12 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
."\n range: min to max value"
|
||||
."\n count: number of events in calculation"
|
||||
."\n ---clear status---"
|
||||
."\n clear [<typeFilter>] [Protocol|Readings|Rssi]"
|
||||
."\n clear [<typeFilter>] [Protocol|readings|msgStat|register|rssi]"
|
||||
."\n Protocol # delete all protocol-events"
|
||||
."\n readings # delete all readings"
|
||||
."\n register # delete all register-readings"
|
||||
."\n rssi # delete all rssi data"
|
||||
."\n msgStat # delete message statistics"
|
||||
."\n ---help---"
|
||||
."\n help #"
|
||||
."\n ***footnote***"
|
||||
@ -627,7 +681,7 @@ sub HMinfo_SetFnDly($) {#######################################################
|
||||
else{
|
||||
return "autoReadReg clear "
|
||||
."configCheck param peerCheck peerXref "
|
||||
."protoEvents models regCheck register rssi saveConfig update "
|
||||
."protoEvents msgStat:view,clear models regCheck register rssi saveConfig update "
|
||||
."cpRegs templateChk templateDef templateList templateSet";
|
||||
}
|
||||
return $ret;
|
||||
@ -1230,12 +1284,14 @@ sub HMinfo_noDup(@) {#return list with no duplicates
|
||||
<li><a name="#HMinfoautoReadReg">autoReadReg</a> <a href="HMinfoFilter">[filter]</a><br>
|
||||
schedules a read of the configuration for the CUL_HM devices with attribut autoReadReg set to 1 or higher.
|
||||
</li>
|
||||
<li><a name="#HMinfoclear">clear [Protocol|Readings|Rssi]</a> <a href="HMinfoFilter">[filter]</a><br>
|
||||
<li><a name="#HMinfoclear">clear [Protocol|readings|msgStat|register|rssi]</a> <a href="HMinfoFilter">[filter]</a><br>
|
||||
executes a set clear ... on all HM entities<br>
|
||||
<ul>
|
||||
<li>Protocol relates to set clear msgEvents</li>
|
||||
<li>Readings relates to set clear readings</li>
|
||||
<li>Rssi clears all rssi counters </li>
|
||||
<li>readings relates to set clear readings</li>
|
||||
<li>rssi clears all rssi counters </li>
|
||||
<li>msgStat clear HM general message statistics</li>
|
||||
<li>register clears all register-entries in readings</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a name="#HMinfosaveConfig">saveConfig</a> <a href="HMinfoFilter">[filter]</a><br>
|
||||
|
327
FHEM/HMConfig.pm
327
FHEM/HMConfig.pm
@ -520,9 +520,10 @@ my %culHmRegDefine = (
|
||||
# SEC-WM55 08:01 (AES on?)
|
||||
# SEC-WDS 34:0x64 ?
|
||||
# SEC-SC 08:00 ?
|
||||
# RC19 08:00 ?
|
||||
# RC19 08:00 ? RC19 Button 08:08
|
||||
# Bl1PBU 08:00 09:00 10:00
|
||||
|
||||
|
||||
# logicCombination=>{a=> 89.0,s=>0.5,l=>1,min=>0 ,max=>16 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"".
|
||||
# "inactive=>unused\n".
|
||||
# "or =>max(state,chan)\n".
|
||||
@ -551,8 +552,8 @@ my %culHmRegDefine = (
|
||||
#--- list 4, link level for Button ------------------
|
||||
peerNeedsBurst =>{a=> 1.0,s=>0.1,l=>4,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"peer expects burst",lit=>{off=>0,on=>1}},
|
||||
expectAES =>{a=> 1.7,s=>0.1,l=>4,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"expect AES" ,lit=>{off=>0,on=>1}},
|
||||
lcdSymb =>{a=> 2.0,s=>0.1,l=>4,min=>0 ,max=>255 ,c=>'hex' ,f=>'' ,u=>'' ,d=>0,t=>"bitmask which symbol to display on message"},
|
||||
lcdLvlInterp =>{a=> 3.0,s=>0.1,l=>4,min=>0 ,max=>255 ,c=>'hex' ,f=>'' ,u=>'' ,d=>0,t=>"bitmask for symbols"},
|
||||
lcdSymb =>{a=> 2.0,s=>0.1,l=>4,min=>0 ,max=>8 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"symbol to display on message",lit=>{"none"=>0,"bulb"=>1,"switch"=>2,"window"=>3,"door"=>4,"blind"=>5,"scene"=>6,"phone"=>7,"bell"=>8}},
|
||||
lcdLvlInterp =>{a=> 3.0,s=>0.1,l=>4,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"bitmask for symbols",lit=>{"none"=>0,"light"=>1,"blind"=>2,"marquee"=>3,"door"=>4,"window"=>5}},
|
||||
|
||||
fillLvlUpThr =>{a=> 4.0,s=>1 ,l=>4,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"fill level upper threshold"},
|
||||
fillLvlLoThr =>{a=> 5.0,s=>1 ,l=>4,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"fill level lower threshold"},
|
||||
@ -640,182 +641,182 @@ my %culHmRegGeneral = (
|
||||
pairCentral=>1,
|
||||
);
|
||||
my %culHmRegType = (
|
||||
swi =>{peerNeedsBurst =>1,expectAES =>1},
|
||||
remote =>{peerNeedsBurst =>1,expectAES =>1,dblPress =>1,longPress =>1,
|
||||
sign =>1
|
||||
swi =>{ peerNeedsBurst =>1,expectAES =>1},
|
||||
remote =>{ peerNeedsBurst =>1,expectAES =>1,dblPress =>1,longPress =>1
|
||||
,sign =>1
|
||||
},
|
||||
blindActuator =>{intKeyVisib =>1,
|
||||
driveUp =>1,driveDown =>1,driveTurn =>1,refRunCounter =>1,
|
||||
sign =>1,
|
||||
MaxTimeF =>1,
|
||||
OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1,
|
||||
OffLevel =>1,OnLevel =>1,
|
||||
ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,DriveMode =>1,
|
||||
BlJtOn =>1,BlJtOff =>1,BlJtDlyOn =>1,BlJtDlyOff =>1,
|
||||
BlJtRampOn =>1,BlJtRampOff =>1,BlJtRefOn =>1,BlJtRefOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtDlyOn =>1,CtRampOn =>1,CtRefOn =>1,
|
||||
CtOff =>1,CtDlyOff =>1,CtRampOff =>1,CtRefOff =>1,
|
||||
lgMultiExec =>1
|
||||
blindActuator =>{ intKeyVisib =>1
|
||||
,driveUp =>1,driveDown =>1,driveTurn =>1,refRunCounter =>1
|
||||
,sign =>1
|
||||
,MaxTimeF =>1
|
||||
,OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1
|
||||
,OffLevel =>1,OnLevel =>1
|
||||
,ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,DriveMode =>1
|
||||
,BlJtOn =>1,BlJtOff =>1,BlJtDlyOn =>1,BlJtDlyOff =>1
|
||||
,BlJtRampOn =>1,BlJtRampOff =>1,BlJtRefOn =>1,BlJtRefOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtDlyOn =>1,CtRampOn =>1,CtRefOn =>1
|
||||
,CtOff =>1,CtDlyOff =>1,CtRampOff =>1,CtRefOff =>1
|
||||
,lgMultiExec =>1
|
||||
},
|
||||
dimmer =>{intKeyVisib =>1,
|
||||
transmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,powerUpAction =>1,
|
||||
OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1,
|
||||
OffDlyBlink =>1,OnLvlPrio =>1,OnDlyMode =>1,
|
||||
ActionTypeDim =>1,OnTimeMode =>1,OffTimeMode =>1,
|
||||
OffLevel =>1,OnMinLevel =>1,OnLevel =>1,
|
||||
RampSstep =>1,RampOnTime =>1,RampOffTime =>1,
|
||||
DimMinLvl =>1,DimMaxLvl =>1,DimStep =>1,
|
||||
DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1,
|
||||
DimJtDlyOff =>1,DimJtRampOn =>1,DimJtRampOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtDlyOn =>1,CtRampOn =>1,
|
||||
CtOff =>1,CtDlyOff =>1,CtRampOff =>1,
|
||||
OffDlyNewTime =>1,OffDlyOldTime =>1,
|
||||
lgMultiExec =>1
|
||||
dimmer =>{ intKeyVisib =>1
|
||||
,transmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,powerUpAction =>1
|
||||
,OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1
|
||||
,OffDlyBlink =>1,OnLvlPrio =>1,OnDlyMode =>1
|
||||
,ActionTypeDim =>1,OnTimeMode =>1,OffTimeMode =>1
|
||||
,OffLevel =>1,OnMinLevel =>1,OnLevel =>1
|
||||
,RampSstep =>1,RampOnTime =>1,RampOffTime =>1
|
||||
,DimMinLvl =>1,DimMaxLvl =>1,DimStep =>1
|
||||
,DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1
|
||||
,DimJtDlyOff =>1,DimJtRampOn =>1,DimJtRampOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtDlyOn =>1,CtRampOn =>1
|
||||
,CtOff =>1,CtDlyOff =>1,CtRampOff =>1
|
||||
,OffDlyNewTime =>1,OffDlyOldTime =>1
|
||||
,lgMultiExec =>1
|
||||
},
|
||||
switch =>{intKeyVisib =>1,sign =>1,
|
||||
OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1,
|
||||
SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1,
|
||||
ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,
|
||||
lgMultiExec =>1
|
||||
switch =>{ intKeyVisib =>1,sign =>1
|
||||
,OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1
|
||||
,SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1
|
||||
,ActionType =>1,OnTimeMode =>1,OffTimeMode =>1
|
||||
,lgMultiExec =>1
|
||||
},
|
||||
winMatic =>{signal =>1,signalTone =>1,keypressSignal =>1},
|
||||
keyMatic =>{signal =>1,signalTone =>1,keypressSignal =>1,
|
||||
holdTime =>1,holdPWM =>1,setupDir =>1,setupPosition =>1,
|
||||
angelOpen =>1,angelMax =>1,angelLocked =>1,
|
||||
ledFlashUnlocked=>1,ledFlashLocked =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtOff =>1,
|
||||
KeyJtOn =>1,KeyJtOff =>1,
|
||||
OnTime =>1
|
||||
winMatic =>{ signal =>1,signalTone =>1,keypressSignal =>1},
|
||||
keyMatic =>{ signal =>1,signalTone =>1,keypressSignal =>1
|
||||
,holdTime =>1,holdPWM =>1,setupDir =>1,setupPosition =>1
|
||||
,angelOpen =>1,angelMax =>1,angelLocked =>1
|
||||
,ledFlashUnlocked=>1,ledFlashLocked =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtOff =>1
|
||||
,KeyJtOn =>1,KeyJtOff =>1
|
||||
,OnTime =>1
|
||||
},
|
||||
motionDetector =>{evtFltrPeriod =>1,evtFltrNum =>1,minInterval =>1,
|
||||
captInInterval =>1,brightFilter =>1,ledOnTime =>1,
|
||||
peerNeedsBurst =>1
|
||||
motionDetector =>{ evtFltrPeriod =>1,evtFltrNum =>1,minInterval =>1
|
||||
,captInInterval =>1,brightFilter =>1,ledOnTime =>1
|
||||
,peerNeedsBurst =>1
|
||||
},
|
||||
threeStateSensor =>{cyclicInfoMsg =>1, transmDevTryMax =>1,
|
||||
transmitTryMax =>1,
|
||||
peerNeedsBurst =>1,expectAES =>1
|
||||
threeStateSensor =>{ cyclicInfoMsg =>1, transmDevTryMax =>1
|
||||
, transmitTryMax =>1
|
||||
,peerNeedsBurst =>1,expectAES =>1
|
||||
},
|
||||
sensRain =>{transmDevTryMax =>1,localResDis =>1},
|
||||
tipTronic =>{cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,localResDis =>1,RS485IdleTime =>1},
|
||||
powerMeter =>{intKeyVisib =>1},
|
||||
sensRain =>{ transmDevTryMax =>1,localResDis =>1},
|
||||
tipTronic =>{ cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,localResDis =>1,RS485IdleTime =>1},
|
||||
powerMeter =>{ intKeyVisib =>1},
|
||||
|
||||
);
|
||||
#clones - - - - - - - - - - - - - - -
|
||||
$culHmRegType{pushButton} = $culHmRegType{remote};
|
||||
|
||||
my %culHmRegModel = (
|
||||
"HM-RC-12" =>{backAtKey =>1, backAtMotion =>1, backOnTime =>1},
|
||||
"HM-RC-19" =>{backAtKey =>1, backAtMotion =>1, backOnTime =>1,backAtCharge =>1,language =>1},
|
||||
"HM-RC-4-2" =>{localResDis =>1},
|
||||
"HM-RC-12" =>{ backAtKey =>1, backAtMotion =>1, backOnTime =>1},
|
||||
"HM-RC-19" =>{ backAtKey =>1, backAtMotion =>1, backOnTime =>1,backAtCharge =>1,language =>1
|
||||
,lcdSymb =>1, lcdLvlInterp =>1
|
||||
},
|
||||
"HM-RC-4-2" =>{ localResDis =>1},
|
||||
|
||||
"HM-LC-Bl1PBU-FM" =>{transmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,localResDis =>1},
|
||||
"HM-LC-Bl1PBU-FM" =>{ transmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,localResDis =>1},
|
||||
|
||||
"HM-LC-Dim1L-Pl" =>{confBtnTime =>1,loadAppearBehav =>1,loadErrCalib =>1
|
||||
"HM-LC-Dim1L-Pl" =>{ confBtnTime =>1,loadAppearBehav =>1,loadErrCalib =>1},
|
||||
"HM-LC-Dim1L-CV-2" =>{ confBtnTime =>1,loadAppearBehav =>1,loadErrCalib =>1
|
||||
,logicCombination=>1
|
||||
,DimElsOffTimeMd =>1,DimElsOnTimeMd =>1
|
||||
,DimElsActionType=>1
|
||||
,DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1
|
||||
,DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
},
|
||||
"HM-LC-Dim1L-CV-2"=>{confBtnTime =>1,loadAppearBehav =>1,loadErrCalib =>1,
|
||||
logicCombination=>1,
|
||||
DimElsOffTimeMd =>1,DimElsOnTimeMd =>1,
|
||||
DimElsActionType=>1,
|
||||
DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1,
|
||||
DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
"HM-LC-Dim1PWM-CV" =>{ confBtnTime =>1,ovrTempLvl =>1,redTempLvl =>1,redLvl =>1
|
||||
,characteristic =>1,localResDis =>1
|
||||
,logicCombination=>1
|
||||
,DimElsOffTimeMd =>1,DimElsOnTimeMd =>1
|
||||
,DimElsActionType=>1
|
||||
,DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1
|
||||
,DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
},
|
||||
"HM-LC-Dim1PWM-CV"=>{confBtnTime =>1,ovrTempLvl =>1,redTempLvl =>1,redLvl =>1,
|
||||
characteristic =>1,localResDis =>1,
|
||||
logicCombination=>1,
|
||||
DimElsOffTimeMd =>1,DimElsOnTimeMd =>1,
|
||||
DimElsActionType=>1,
|
||||
DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1,
|
||||
DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
"HM-LC-Dim1T-Pl" =>{ confBtnTime =>1,ovrTempLvl =>1,redTempLvl =>1,redLvl =>1
|
||||
,fuseDelay =>1
|
||||
},
|
||||
"HM-LC-Dim1T-Pl" =>{confBtnTime =>1,ovrTempLvl =>1,redTempLvl =>1,redLvl =>1,
|
||||
fuseDelay =>1
|
||||
},
|
||||
"HM-LC-Dim1TPBU-FM"=>{ ovrTempLvl =>1,redTempLvl =>1,redLvl =>1,
|
||||
fuseDelay =>1,localResDis =>1,
|
||||
logicCombination=>1,
|
||||
DimElsOffTimeMd =>1,DimElsOnTimeMd =>1,
|
||||
DimElsActionType=>1,
|
||||
DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1,
|
||||
DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
"HM-LC-Dim1TPBU-FM" =>{ ovrTempLvl =>1,redTempLvl =>1,redLvl =>1
|
||||
,fuseDelay =>1,localResDis =>1
|
||||
,logicCombination=>1
|
||||
,DimElsOffTimeMd =>1,DimElsOnTimeMd =>1
|
||||
,DimElsActionType=>1
|
||||
,DimElsJtOn =>1,DimElsJtOff =>1,DimElsJtDlyOn =>1
|
||||
,DimElsJtDlyOff =>1,DimElsJtRampOn =>1,DimElsJtRampOff =>1
|
||||
},
|
||||
|
||||
"HM-CC-VD" =>{valveOffset =>1,valveErrorPos =>1},
|
||||
"HM-CC-TC" =>{burstRx =>1,backlOnTime =>1,backlOnMode =>1,btnLock =>1},
|
||||
"HM-CC-RT-DN" =>{btnLock =>1,localResDis =>1,globalBtnLock =>1,modusBtnLock =>1,
|
||||
cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,
|
||||
burstRx =>1,lowBatLimitRT =>1,backOnTime =>1,
|
||||
sign =>1
|
||||
"HM-CC-VD" =>{ valveOffset =>1,valveErrorPos =>1},
|
||||
"HM-CC-TC" =>{ burstRx =>1,backlOnTime =>1,backlOnMode =>1,btnLock =>1},
|
||||
"HM-CC-RT-DN" =>{ btnLock =>1,localResDis =>1,globalBtnLock =>1,modusBtnLock =>1
|
||||
,cyclicInfoMsg =>1,cyclicInfoMsgDis=>1
|
||||
,burstRx =>1,lowBatLimitRT =>1,backOnTime =>1
|
||||
,sign =>1
|
||||
},
|
||||
|
||||
"HM-PB-4DIS-WM" =>{peerNeedsBurst =>1,expectAES =>1,language =>1,stbyTime =>1},
|
||||
"HM-WDS100-C6-O" =>{burstRx =>1,sunThresh =>1,stormUpThresh =>1,stormLowThresh =>1},
|
||||
"KS550" =>{stormUpThresh =>1,stormLowThresh =>1},
|
||||
"HM-OU-LED16" =>{brightness =>1,energyOpt =>1,localResDis =>1},
|
||||
"HM-OU-CFM-PL" =>{localResetDis =>1,
|
||||
OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1,
|
||||
OnTimeMode =>1,OffTimeMode =>1,
|
||||
SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1,
|
||||
ActionType =>1,ActNum =>1,lgMultiExec =>1},
|
||||
"HM-OU-CF-PL" =>{ActTypeOuCf =>1,ActNum =>1},
|
||||
"HM-OU-CM-PCB" =>{localResetDis =>1,
|
||||
OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1,
|
||||
OnTimeMode =>1,OffTimeMode =>1,
|
||||
SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1,
|
||||
ActionType =>1,
|
||||
ActTypeMp3 =>1,ActNum =>1,Intense =>1,lgMultiExec =>1},
|
||||
"HM-PB-4DIS-WM" =>{ peerNeedsBurst =>1,expectAES =>1,language =>1,stbyTime =>1},
|
||||
"HM-WDS100-C6-O" =>{ burstRx =>1,sunThresh =>1,stormUpThresh =>1,stormLowThresh =>1},
|
||||
"KS550" =>{ stormUpThresh =>1,stormLowThresh =>1},
|
||||
"HM-OU-LED16" =>{ brightness =>1,energyOpt =>1,localResDis =>1},
|
||||
"HM-OU-CFM-PL" =>{ localResetDis =>1
|
||||
,OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1
|
||||
,OnTimeMode =>1,OffTimeMode =>1,
|
||||
,SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1
|
||||
,ActionType =>1,ActNum =>1,lgMultiExec =>1},
|
||||
"HM-OU-CF-PL" =>{ ActTypeOuCf =>1,ActNum =>1},
|
||||
"HM-OU-CM-PCB" =>{ localResetDis =>1,
|
||||
,OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1
|
||||
,OnTimeMode =>1,OffTimeMode =>1,
|
||||
,SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1
|
||||
,ActionType =>1
|
||||
,ActTypeMp3 =>1,ActNum =>1,Intense =>1,lgMultiExec =>1},
|
||||
"HM-SEC-MDIR" =>{ sabotageMsg =>1},
|
||||
"HM-CC-SCD" =>{peerNeedsBurst =>1,expectAES =>1,
|
||||
transmitTryMax =>1,evtFltrTime =>1,
|
||||
msgScdPosA =>1,msgScdPosB =>1,msgScdPosC =>1,msgScdPosD =>1},
|
||||
"HM-SEC-RHS" =>{msgRhsPosA =>1,msgRhsPosB =>1,msgRhsPosC =>1,
|
||||
ledOnTime =>1,eventDlyTime =>1},
|
||||
"HM-SEC-SC" =>{ sabotageMsg =>1,
|
||||
msgScPosA =>1,msgScPosB =>1,
|
||||
ledOnTime =>1,eventDlyTime =>1},
|
||||
"HM-SCI-3-FM" =>{msgScPosA =>1,msgScPosB =>1,
|
||||
eventDlyTime =>1},
|
||||
"HM-SEC-TIS" =>{ sabotageMsg =>1,
|
||||
msgScPosA =>1,msgScPosB =>1,
|
||||
ledOnTime =>1,eventFilterTime =>1},
|
||||
"HM-SEC-WDS" =>{msgWdsPosA =>1,msgWdsPosB =>1,msgWdsPosC =>1,
|
||||
eventFilterTimeB=>1},
|
||||
"HM-SEC-SFA-SM" =>{cyclicInfoMsg =>1,sabotageMsg =>1,transmDevTryMax =>1,
|
||||
lowBatLimit =>1,batDefectLimit =>1,
|
||||
transmitTryMax =>1},
|
||||
"HM-Dis-TD-T" =>{lowBatLimitFS =>1,ledMode =>1},
|
||||
"HM-LC-SW1-BA-PCB"=>{lowBatLimitBA =>1,ledMode =>1},
|
||||
"HM-Sys-sRP-Pl" =>{compMode =>1},
|
||||
"KFM-Display" =>{CtDlyOn =>1,CtDlyOff =>1,
|
||||
CtOn =>1,CtOff =>1,CtRampOn =>1,CtRampOff =>1,
|
||||
CtValLo =>1,CtValHi =>1,
|
||||
ActionType =>1,OffTimeMode =>1,OnTimeMode =>1,
|
||||
DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1,DimJtDlyOff =>1,
|
||||
DimJtRampOn =>1,DimJtRampOff =>1,
|
||||
lgMultiExec =>1
|
||||
"HM-CC-SCD" =>{ peerNeedsBurst =>1,expectAES =>1
|
||||
, transmitTryMax =>1,evtFltrTime =>1
|
||||
,msgScdPosA =>1,msgScdPosB =>1,msgScdPosC =>1,msgScdPosD =>1},
|
||||
"HM-SEC-RHS" =>{ msgRhsPosA =>1,msgRhsPosB =>1,msgRhsPosC =>1
|
||||
, ledOnTime =>1,eventDlyTime =>1},
|
||||
"HM-SEC-SC" =>{ sabotageMsg =>1
|
||||
,msgScPosA =>1,msgScPosB =>1
|
||||
, ledOnTime =>1,eventDlyTime =>1},
|
||||
"HM-SCI-3-FM" =>{ msgScPosA =>1,msgScPosB =>1
|
||||
, eventDlyTime =>1},
|
||||
"HM-SEC-TIS" =>{ sabotageMsg =>1
|
||||
,msgScPosA =>1,msgScPosB =>1
|
||||
, ledOnTime =>1,eventFilterTime =>1},
|
||||
"HM-SEC-WDS" =>{ msgWdsPosA =>1,msgWdsPosB =>1,msgWdsPosC =>1
|
||||
, eventFilterTimeB=>1},
|
||||
"HM-SEC-SFA-SM" =>{ cyclicInfoMsg =>1,sabotageMsg =>1,transmDevTryMax =>1
|
||||
,lowBatLimit =>1,batDefectLimit =>1
|
||||
, transmitTryMax =>1},
|
||||
"HM-Dis-TD-T" =>{ lowBatLimitFS =>1,ledMode =>1},
|
||||
"HM-LC-SW1-BA-PCB" =>{ lowBatLimitBA =>1,ledMode =>1},
|
||||
"HM-Sys-sRP-Pl" =>{ compMode =>1},
|
||||
"KFM-Display" =>{ CtDlyOn =>1,CtDlyOff =>1
|
||||
,CtOn =>1,CtOff =>1,CtRampOn =>1,CtRampOff =>1
|
||||
,CtValLo =>1,CtValHi =>1
|
||||
,ActionType =>1,OffTimeMode =>1,OnTimeMode =>1
|
||||
,DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1,DimJtDlyOff =>1
|
||||
,DimJtRampOn =>1,DimJtRampOff =>1
|
||||
,lgMultiExec =>1
|
||||
},
|
||||
"HM-Sen-Wa-Od" =>{cyclicInfoMsgDis=>1, transmDevTryMax =>1,localResDis =>1,
|
||||
ledOnTime =>1,transmitTryMax =>1,
|
||||
waterUppThr =>1,waterlowThr =>1,caseDesign =>1,caseHigh =>1,
|
||||
fillLevel =>1,caseWidth =>1,caseLength =>1,meaLength =>1,
|
||||
useCustom =>1,
|
||||
fillLvlUpThr =>1,fillLvlLoThr =>1,
|
||||
expectAES =>1,peerNeedsBurst =>1},
|
||||
"HM-WDS10-TH-O" =>{burstRx =>1},
|
||||
"HM-WDS30-OT2-SM" =>{burstRx =>1,cyclicInfoMsgDis=>1,localResDis =>1,paramSel =>1},
|
||||
"HM-TC-IT-WM-W-EU"=>{burstRx =>1,cyclicInfoMsgDis=>1,localResDis =>1,cyclicInfoMsg =>1,
|
||||
btnLock =>1,globalBtnLock =>1,modusBtnLock =>1,lowBatLimitRT =>1,
|
||||
"HM-Sen-Wa-Od" =>{ cyclicInfoMsgDis=>1, transmDevTryMax =>1,localResDis =>1
|
||||
, ledOnTime =>1,transmitTryMax =>1
|
||||
,waterUppThr =>1,waterlowThr =>1,caseDesign =>1,caseHigh =>1
|
||||
,fillLevel =>1,caseWidth =>1,caseLength =>1,meaLength =>1
|
||||
,useCustom =>1,
|
||||
,fillLvlUpThr =>1,fillLvlLoThr =>1
|
||||
,expectAES =>1,peerNeedsBurst =>1},
|
||||
"HM-WDS10-TH-O" =>{ burstRx =>1},
|
||||
"HM-WDS30-OT2-SM" =>{ burstRx =>1,cyclicInfoMsgDis=>1,localResDis =>1,paramSel =>1},
|
||||
"HM-TC-IT-WM-W-EU" =>{ burstRx =>1,cyclicInfoMsgDis=>1,localResDis =>1,cyclicInfoMsg =>1
|
||||
,btnLock =>1,globalBtnLock =>1,modusBtnLock =>1,lowBatLimitRT =>1
|
||||
},
|
||||
"HM-ES-PMSw1-Pl" =>{localResDis =>1,},
|
||||
|
||||
"HM-ES-PMSw1-Pl" =>{ localResDis =>1},
|
||||
);
|
||||
|
||||
#clones - - - - - - - - - - - - - - -
|
||||
@ -882,7 +883,6 @@ my %culHmRegChan = (# if channelspecific then enter them here
|
||||
"HM-CC-TC03" =>{ tempWinOpen =>1 }, #window channel
|
||||
"HM-RC-1912" =>{ msgShowTime =>1, beepAtAlarm =>1, beepAtService =>1,beepAtInfo =>1
|
||||
,backlAtAlarm =>1, backlAtService =>1, backlAtInfo =>1
|
||||
,lcdSymb =>1, lcdLvlInterp =>1
|
||||
},
|
||||
"HM-OU-CFM-PL01" =>{ ActTypeLed =>1},
|
||||
"HM-OU-CFM-PL02" =>{ ActTypeMp3 =>1,Intense =>1},
|
||||
@ -1027,15 +1027,15 @@ my %culHmSubTypeDevSets = (# device of this subtype
|
||||
blindActuator =>{ statusRequest => "",
|
||||
getSerial => ""},
|
||||
# remote =>{ },
|
||||
threeStateSensor =>{ statusRequest =>""},
|
||||
# threeStateSensor =>{ statusRequest =>""},
|
||||
# THSensor =>{ statusRequest =>""}, at least OT/OT2 do not support this
|
||||
# virtual =>{ },
|
||||
# smokeDetector =>{ statusRequest => ""},
|
||||
# smokeDetector =>{ statusRequest => ""},#not SCD
|
||||
winMatic =>{ statusRequest => ""},
|
||||
keyMatic =>{ statusRequest => ""},
|
||||
repeater =>{ statusRequest => "",
|
||||
getSerial => ""},
|
||||
outputUnit =>{ statusRequest => ""},
|
||||
outputUnit =>{ statusRequest => ""},# also LED16? proof
|
||||
);
|
||||
|
||||
my %culHmGlobalSetsChn = (# all channels but virtuals
|
||||
@ -1075,17 +1075,18 @@ my %culHmSubTypeSets = (# channels of this subtype
|
||||
,statusRequest =>""},
|
||||
remote =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual] [set|unset] [actor|remote|both]"},
|
||||
threeStateSensor =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
,statusRequest =>""},
|
||||
# ,statusRequest =>""
|
||||
},
|
||||
THSensor =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"},
|
||||
virtual =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual] [set|unset] [actor|remote|both]"
|
||||
,press =>"[long|short]..."
|
||||
,postEvent =>"<condition>"
|
||||
,valvePos =>"<position>"},#acting as TC
|
||||
# ,valvePos =>"<position>"
|
||||
},#acting as TC
|
||||
smokeDetector =>{ test =>""
|
||||
,alarmOn =>""
|
||||
,alarmOff =>""
|
||||
,peerChan =>"<btnNumber> <actChn> ... single [set|unset] actor"
|
||||
,statusRequest =>""},
|
||||
,peerChan =>"<btnNumber> <actChn> ... single [set|unset] actor"},
|
||||
winMatic =>{ matic =>"<btn>"
|
||||
,keydef =>"<btn> <txt1> <txt2>"
|
||||
,create =>"<txt>"
|
||||
@ -1109,6 +1110,7 @@ $culHmSubTypeSets{sensor} = $culHmSubTypeSets{outputUnit};
|
||||
$culHmSubTypeSets{KFM100} = $culHmSubTypeSets{outputUnit};
|
||||
$culHmSubTypeSets{blindActuatorSol}= $culHmSubTypeSets{outputUnit};
|
||||
$culHmSubTypeSets{tipTronic} = $culHmSubTypeSets{outputUnit};
|
||||
$culHmSubTypeSets{powerMeter} = $culHmSubTypeSets{outputUnit};
|
||||
|
||||
$culHmSubTypeSets{motionDetector} = $culHmSubTypeSets{threeStateSensor};
|
||||
|
||||
@ -1131,6 +1133,7 @@ my %culHmModelSets = (# channels of this subtype-------------
|
||||
,inhibit =>"[on|off]"},
|
||||
"HM-CC-TC" =>{ burstXmit =>""},
|
||||
"HM-CC-RT-DN" =>{ burstXmit =>""},
|
||||
"HM-CC-RT-DN-BoM"=>{ statusRequest =>""},
|
||||
);
|
||||
# clones- - - - - - - - - - - - - - - - -
|
||||
$culHmModelSets{"HM-RC-19-B"} = $culHmModelSets{"HM-RC-19"};
|
||||
|
Loading…
x
Reference in New Issue
Block a user