2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-08 19:32:42 +00:00

supress send echo, add register, correct SCD events

git-svn-id: https://svn.fhem.de/fhem/trunk@2479 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2013-01-11 22:36:43 +00:00
parent 43f76315f6
commit 70a117e69d
2 changed files with 5406 additions and 5385 deletions

View File

@ -311,7 +311,7 @@ HMLAN_Parse($$)
my $flg = hex(substr($mFld[5],2,2)); my $flg = hex(substr($mFld[5],2,2));
# handle status. 0001=ack:seems to announce the new message counter # handle status. 0001=ack:seems to announce the new message counter
# 0002=our send message returned it was likely not sent # 0002=message send done, no ack was requested
# 0008=nack - HMLAN did not receive an ACK, # 0008=nack - HMLAN did not receive an ACK,
# 0021= 'R' # 0021= 'R'
# 0081=open # 0081=open
@ -325,16 +325,14 @@ HMLAN_Parse($$)
# HMLAN_SimpleWrite($hash, '-'.$src); # HMLAN_SimpleWrite($hash, '-'.$src);
# HMLAN_SimpleWrite($hash, '+'.$src); # HMLAN_SimpleWrite($hash, '+'.$src);
# } # }
if($mFld[1] =~ m/^04/){ my $stat = hex($mFld[1]);
Log $ll5, 'HMLAN_Parse: problems detected - please restart HMLAN'; if($stat & 0x060A){ # do not parse this message, no valid content
#foreach (keys %lhash){delete ($lhash{$_})};# does not help Log $ll5, 'HMLAN_Parse: problems detected - please restart HMLAN'if($stat & 0x0400);
#DevIo_Disconnected($hash) ;# does not help Log $ll5, 'HMLAN_Parse: restart HMLAN might be necessary' if($stat & 0x0200);
} Log $ll5, 'HMLAN_Parse: discard' if($stat & 0x000A);
if($mFld[1] =~ m/^02/){ return ;# message with no ack is send - do not dispatch
Log $ll5, 'HMLAN_Parse: restart HMLAN might be necessary';
HMLAN_SimpleWrite($hash, '-'.$src);# todo not proven how to get out of this situation
HMLAN_SimpleWrite($hash, '+'.$src);
} }
$dmsg .= ":NACK" if($mFld[1] !~ m/00(01|02|21)/ && $letter eq 'R'); $dmsg .= ":NACK" if($mFld[1] !~ m/00(01|02|21)/ && $letter eq 'R');
$hash->{uptime} = HMLAN_uptime($mFld[2]); $hash->{uptime} = HMLAN_uptime($mFld[2]);

View File

@ -670,8 +670,8 @@ CUL_HM_Parse($$)
if (($msgType eq "02" && $p =~ m/^01/) || # handle Ack_Status if (($msgType eq "02" && $p =~ m/^01/) || # handle Ack_Status
($msgType eq "10" && $p =~ m/^06/) || #or Info_Status message here ($msgType eq "10" && $p =~ m/^06/) || #or Info_Status message here
($msgType eq "41")) { ($msgType eq "41")) {
my $co2Lvl = hex(substr($p,4,2)); my $co2Lvl = substr($p,4,2);
my %lvl=(0=>"normal",100=>"added",200=>"addedStrong"); my %lvl=("00"=>"normal","64"=>"added","C8"=>"addedStrong");
push @event, "state:".$lvl{$co2Lvl}; push @event, "state:".$lvl{$co2Lvl};
} }
} }
@ -738,6 +738,11 @@ CUL_HM_Parse($$)
push @event, "$eventName:up:$val" if(($err&0x30) == 0x10); push @event, "$eventName:up:$val" if(($err&0x30) == 0x10);
push @event, "$eventName:down:$val" if(($err&0x30) == 0x20); push @event, "$eventName:down:$val" if(($err&0x30) == 0x20);
push @event, "$eventName:stop:$val" if(($err&0x30) == 0x00); push @event, "$eventName:stop:$val" if(($err&0x30) == 0x00);
}
if ($st eq "dimmer"){
push @event, "overload:".(($err&0x02)?"on":"off");
push @event, "overheat:".(($err&0x04)?"on":"off");
push @event, "reduced:" .(($err&0x08)?"on":"off");
} }
push @event, "battery:" . (($err&0x80) ? "low" : "ok" ) push @event, "battery:" . (($err&0x80) ? "low" : "ok" )
if(($model eq "HM-LC-SW1-BA-PCB")&&($err&0x80)); if(($model eq "HM-LC-SW1-BA-PCB")&&($err&0x80));
@ -1196,16 +1201,22 @@ my %culHmRegDefShLg = (# register that are available for short AND long button p
SwJtDlyOn =>{a=> 12.0,s=>0.4,l=>3,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from delayOn" ,lit=>{no=>0,dlyOn=>1,on=>3,dlyOff=>4,off=>6}}, SwJtDlyOn =>{a=> 12.0,s=>0.4,l=>3,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from delayOn" ,lit=>{no=>0,dlyOn=>1,on=>3,dlyOff=>4,off=>6}},
SwJtDlyOff =>{a=> 12.4,s=>0.4,l=>3,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from delayOff",lit=>{no=>0,dlyOn=>1,on=>3,dlyOff=>4,off=>6}}, SwJtDlyOff =>{a=> 12.4,s=>0.4,l=>3,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from delayOff",lit=>{no=>0,dlyOn=>1,on=>3,dlyOff=>4,off=>6}},
KeyJtOn =>{a=> 11.0,s=>0.4,l=>3,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from On" ,lit=>{no=>0,dlyUnlock=>1,rampUnlock=>2,lock=>3,dlyLock=>4,rampLock=>5,lock=>6,open=>8}},
KeyJtOff =>{a=> 11.4,s=>0.4,l=>3,min=>0 ,max=>7 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jump from Off" ,lit=>{no=>0,dlyUnlock=>1,rampUnlock=>2,lock=>3,dlyLock=>4,rampLock=>5,lock=>6,open=>8}},
CtValLo =>{a=> 4.0,s=>1 ,l=>3,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"Condition value low for CT table" },
CtValHi =>{a=> 5.0,s=>1 ,l=>3,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"Condition value high for CT table" },
CtOn =>{a=> 3.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from On" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtOn =>{a=> 3.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from On" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtOff =>{a=> 3.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from Off" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtOff =>{a=> 3.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from Off" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtDlyOn =>{a=> 2.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from delayOn" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtDlyOn =>{a=> 2.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from delayOn" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtDlyOff =>{a=> 2.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from delayOff" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtDlyOff =>{a=> 2.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from delayOff" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtRampOn =>{a=> 1.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from rampOn" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtRampOn =>{a=> 1.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from rampOn" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtRampOff =>{a=> 1.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from rampOff" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}}, CtRampOff =>{a=> 1.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from rampOff" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtRefOn =>{a=> 28.0,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from refOn" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
CtRefOff =>{a=> 28.4,s=>0.4,l=>3,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Jmp on condition from refOff" ,lit=>{geLo=>0,geHi=>1,ltLo=>2,ltHi=>3,between=>4,outside=>5}},
); );
my %culHmRegDefine = ( my %culHmRegDefine = (
intKeyVisib =>{a=> 2.7,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>'visibility of internal channel',lit=>{invisib=>0,visib=>1}}, intKeyVisib =>{a=> 2.7,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>'visibility of internal channel',lit=>{invisib=>0,visib=>1}},
pairCentral =>{a=> 10.0,s=>3.0,l=>0,min=>0 ,max=>16777215,c=>'hex' ,f=>'' ,u=>'' ,d=>0,t=>'pairing to central'}, pairCentral =>{a=> 10.0,s=>3.0,l=>0,min=>0 ,max=>16777215,c=>'hex' ,f=>'' ,u=>'' ,d=>0,t=>'pairing to central'},
@ -1213,6 +1224,8 @@ my %culHmRegDefine = (
driveUp =>{a=> 13.0,s=>2.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"drive time up"}, driveUp =>{a=> 13.0,s=>2.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"drive time up"},
driveDown =>{a=> 11.0,s=>2.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"drive time up"}, driveDown =>{a=> 11.0,s=>2.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"drive time up"},
driveTurn =>{a=> 15.0,s=>1.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"fliptime up <=>down"}, driveTurn =>{a=> 15.0,s=>1.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"fliptime up <=>down"},
refRunCounter =>{a=> 16.0,s=>1.0,l=>1,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"reference run counter"},
lgMultiExec =>{a=> 10.5,s=>0.1,l=>3,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"multiple execution per repeat of long trigger" ,lit=>{off=>0,on=>1}}, lgMultiExec =>{a=> 10.5,s=>0.1,l=>3,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"multiple execution per repeat of long trigger" ,lit=>{off=>0,on=>1}},
#remote mainly #remote mainly
language =>{a=> 7.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"Language 0:English, 1:German"}, language =>{a=> 7.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"Language 0:English, 1:German"},
@ -1285,11 +1298,12 @@ my %culHmRegDefine = (
signalTone =>{a=> 3.6,s=>0.2,l=>0,min=>0 ,max=>3 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"" ,lit=>{low=>0,mid=>1,high=>2,veryHigh=>3}}, signalTone =>{a=> 3.6,s=>0.2,l=>0,min=>0 ,max=>3 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"" ,lit=>{low=>0,mid=>1,high=>2,veryHigh=>3}},
keypressSignal =>{a=> 3.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Keypress beep" ,lit=>{off=>0,on=>1}}, keypressSignal =>{a=> 3.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Keypress beep" ,lit=>{off=>0,on=>1}},
holdTime =>{a=> 20 ,s=>1, l=>1,min=>0 ,max=>8.16 ,c=>'factor' ,f=>31.25 ,u=>'s' ,d=>0,t=>"Holdtime for door opening"}, holdTime =>{a=> 20 ,s=>1, l=>1,min=>0 ,max=>8.16 ,c=>'factor' ,f=>31.25 ,u=>'s' ,d=>0,t=>"Holdtime for door opening"},
holdPWM =>{a=> 21 ,s=>1, l=>1,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"Holdtime pulse wide modulation"},
setupDir =>{a=> 22 ,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Rotation direction for locking",lit=>{right=>0,left=>1}}, setupDir =>{a=> 22 ,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Rotation direction for locking",lit=>{right=>0,left=>1}},
setupPosition =>{a=> 23 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>15 ,u=>'%' ,d=>0,t=>"Rotation angle neutral position"}, setupPosition =>{a=> 23 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>0.06666 ,u=>'deg' ,d=>0,t=>"Rotation angle neutral position"},
angelOpen =>{a=> 24 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>15 ,u=>'%' ,d=>0,t=>"Door opening angle"}, angelOpen =>{a=> 24 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>0.06666 ,u=>'deg' ,d=>0,t=>"Door opening angle"},
angelMax =>{a=> 25 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>15 ,u=>'%' ,d=>0,t=>"Angle locked"}, angelMax =>{a=> 25 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>0.06666 ,u=>'deg' ,d=>0,t=>"Angle maximum"},
angelLocked =>{a=> 26 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>15 ,u=>'%' ,d=>0,t=>"Angle Locked position"}, angelLocked =>{a=> 26 ,s=>1 ,l=>1,min=>0 ,max=>3000 ,c=>'factor' ,f=>0.06666 ,u=>'deg' ,d=>0,t=>"Angle Locked position"},
ledFlashUnlocked=>{a=> 31.3,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"LED blinks when not locked",lit=>{off=>0,on=>1}}, ledFlashUnlocked=>{a=> 31.3,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"LED blinks when not locked",lit=>{off=>0,on=>1}},
ledFlashLocked =>{a=> 31.6,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"LED blinks when locked" ,lit=>{off=>0,on=>1}}, ledFlashLocked =>{a=> 31.6,s=>0.1,l=>1,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"LED blinks when locked" ,lit=>{off=>0,on=>1}},
# sec_mdir # sec_mdir
@ -1312,14 +1326,17 @@ my %culHmRegGeneral = (
); );
my %culHmRegType = ( my %culHmRegType = (
remote=> {expectAES=>1,peerNeedsBurst=>1,dblPress=>1,longPress=>1}, remote=> {expectAES=>1,peerNeedsBurst=>1,dblPress=>1,longPress=>1},
blindActuator=> {driveUp =>1,driveDown =>1,driveTurn =>1,maxTimeF =>1, blindActuator=> {driveUp =>1,driveDown =>1,driveTurn =>1,refRunCounter =>1,
TransmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,
maxTimeF =>1,
OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1, OnDly =>1,OnTime =>1,OffDly =>1,OffTime =>1,
OffLevel =>1,OnLevel =>1, OffLevel =>1,OnLevel =>1,
ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,DriveMode =>1, ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,DriveMode =>1,
BlJtOn =>1,BlJtOff =>1,BlJtDlyOn =>1,BlJtDlyOff =>1, BlJtOn =>1,BlJtOff =>1,BlJtDlyOn =>1,BlJtDlyOff =>1,
BlJtRampOn =>1,BlJtRampOff =>1,BlJtRefOn =>1,BlJtRefOff =>1, BlJtRampOn =>1,BlJtRampOff =>1,BlJtRefOn =>1,BlJtRefOff =>1,
CtOn =>1,CtDlyOn =>1,CtRampOn =>1, CtValLo =>1,CtValHi =>1,
CtOff =>1,CtDlyOff =>1,CtRampOff =>1, CtOn =>1,CtDlyOn =>1,CtRampOn =>1,CtRefOn =>1,
CtOff =>1,CtDlyOff =>1,CtRampOff =>1,CtRefOff =>1,
lgMultiExec =>1, lgMultiExec =>1,
}, },
dimmer=> {TransmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,powerUpAction =>1, dimmer=> {TransmitTryMax =>1,statusInfoMinDly=>1,statusInfoRandom=>1,powerUpAction =>1,
@ -1331,12 +1348,14 @@ my %culHmRegType = (
DimMinLvl =>1,DimMaxLvl =>1,DimStep =>1, DimMinLvl =>1,DimMaxLvl =>1,DimStep =>1,
DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1, DimJtOn =>1,DimJtOff =>1,DimJtDlyOn =>1,
DimJtDlyOff =>1,DimJtRampOn =>1,DimJtRampOff =>1, DimJtDlyOff =>1,DimJtRampOn =>1,DimJtRampOff =>1,
CtValLo =>1,CtValHi =>1,
CtOn =>1,CtDlyOn =>1,CtRampOn =>1, CtOn =>1,CtDlyOn =>1,CtRampOn =>1,
CtOff =>1,CtDlyOff =>1,CtRampOff =>1, CtOff =>1,CtDlyOff =>1,CtRampOff =>1,
lgMultiExec =>1, lgMultiExec =>1,
}, },
switch=> {OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1, switch=> {OnTime =>1,OffTime =>1,OnDly =>1,OffDly =>1,
SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1, SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1,
CtValLo =>1,CtValHi =>1,
CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1, CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1,
ActionType =>1,OnTimeMode =>1,OffTimeMode =>1, ActionType =>1,OnTimeMode =>1,OffTimeMode =>1,
lgMultiExec =>1, lgMultiExec =>1,
@ -1347,9 +1366,12 @@ my %culHmRegType = (
}, },
keyMatic=>{ keyMatic=>{
signal =>1,signalTone =>1,keypressSignal =>1, signal =>1,signalTone =>1,keypressSignal =>1,
holdTime =>1,setupDir =>1,setupPosition =>1, holdTime =>1,holdPWM =>1,setupDir =>1,setupPosition =>1,
angelOpen =>1,angelMax =>1,angelLocked =>1, angelOpen =>1,angelMax =>1,angelLocked =>1,
ledFlashUnlocked=>1,ledFlashLocked =>1, ledFlashUnlocked=>1,ledFlashLocked =>1,
CtValLo =>1,CtValHi =>1,
CtOn =>1,CtOff =>1,
KeyJtOn =>1,KeyJtOff =>1,
}, },
motionDetector=>{ motionDetector=>{
evtFltrPeriod =>1,evtFltrNum =>1,minInterval =>1, evtFltrPeriod =>1,evtFltrNum =>1,minInterval =>1,
@ -1379,6 +1401,7 @@ my %culHmRegModel = (
"HM-OU-CFM-PL" =>{localResetDis =>1, "HM-OU-CFM-PL" =>{localResetDis =>1,
OnTime =>1,OffTime =>1, OnDly =>1,OffDly =>1, OnTime =>1,OffTime =>1, OnDly =>1,OffDly =>1,
SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1, SwJtOn =>1,SwJtOff =>1,SwJtDlyOn =>1,SwJtDlyOff =>1,
CtValLo =>1,CtValHi =>1,
CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1, CtOn =>1,CtDlyOn =>1,CtOff =>1,CtDlyOff =>1,
OnTimeMode =>1,OffTimeMode =>1, OnTimeMode =>1,OffTimeMode =>1,
ActType =>1,ActNum =>1}, ActType =>1,ActNum =>1},