mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
bug fixing around RT burst mode
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@4066 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e4d029cf61
commit
24382d14ab
@ -473,11 +473,13 @@ sub CUL_HM_Attr(@) {#################################
|
|||||||
delete $hash->{helper}{mId};
|
delete $hash->{helper}{mId};
|
||||||
}
|
}
|
||||||
elsif($attrName eq "burstAccess"){
|
elsif($attrName eq "burstAccess"){
|
||||||
|
if ($cmd eq "set"){
|
||||||
return "use burstAccess only for device" if (!$hash->{helper}{role}{dev});
|
return "use burstAccess only for device" if (!$hash->{helper}{role}{dev});
|
||||||
return "burstAccess only for conditional Burst devices" if ($culHmModel{$hash->{helper}{mId}}{rxt} !~ m /f/);
|
|
||||||
return "$attrVal not a valid option for burstAccess" if ($attrVal !~ m/^[01]/);
|
return "$attrVal not a valid option for burstAccess" if ($attrVal !~ m/^[01]/);
|
||||||
if ($attrVal =~ m/^0/){$hash->{protCondBurst} = "forced_off";}
|
if ($attrVal =~ m/^0/){$hash->{protCondBurst} = "forced_off";}
|
||||||
else {$hash->{protCondBurst} = "unknown";}
|
else {$hash->{protCondBurst} = "unknown";}
|
||||||
|
}
|
||||||
|
else{ $hash->{protCondBurst} = "forced_off";}
|
||||||
delete $hash->{helper}{rxType}; # needs new calculation
|
delete $hash->{helper}{rxType}; # needs new calculation
|
||||||
}
|
}
|
||||||
CUL_HM_queueUpdtCfg($name) if ($updtReq);
|
CUL_HM_queueUpdtCfg($name) if ($updtReq);
|
||||||
@ -1546,8 +1548,6 @@ sub CUL_HM_parseCommon(@){#####################################################
|
|||||||
if ($shash->{helper}{prt}{rspWait}{wakeup}){
|
if ($shash->{helper}{prt}{rspWait}{wakeup}){
|
||||||
if ($shash->{helper}{prt}{rspWait}{mNo} eq $mNo &&
|
if ($shash->{helper}{prt}{rspWait}{mNo} eq $mNo &&
|
||||||
$subType eq "00" ){
|
$subType eq "00" ){
|
||||||
my $params;
|
|
||||||
$params .= "$_:$shash->{helper}{prt}{rspWaitSec}{$_}" foreach (keys%{$shash->{helper}{prt}{rspWaitSec}});
|
|
||||||
if ($shash->{helper}{prt}{awake} && $shash->{helper}{prt}{awake}==4){#re-wakeup
|
if ($shash->{helper}{prt}{awake} && $shash->{helper}{prt}{awake}==4){#re-wakeup
|
||||||
delete $shash->{helper}{prt}{rspWait};#clear wakeup values
|
delete $shash->{helper}{prt}{rspWait};#clear wakeup values
|
||||||
$shash->{helper}{prt}{rspWait}{$_} = $shash->{helper}{prt}{rspWaitSec}{$_}
|
$shash->{helper}{prt}{rspWait}{$_} = $shash->{helper}{prt}{rspWaitSec}{$_}
|
||||||
@ -1557,11 +1557,11 @@ sub CUL_HM_parseCommon(@){#####################################################
|
|||||||
#General set timer
|
#General set timer
|
||||||
return "done"
|
return "done"
|
||||||
}
|
}
|
||||||
$shash->{protCondBurst} = "on";
|
$shash->{protCondBurst} = "on" if ($shash->{protCondBurst} !~ m/forced/);
|
||||||
$shash->{helper}{prt}{awake}=2;#awake
|
$shash->{helper}{prt}{awake}=2;#awake
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$shash->{protCondBurst} = "off";
|
$shash->{protCondBurst} = "off" if ($shash->{protCondBurst} !~ m/forced/);
|
||||||
$shash->{helper}{prt}{awake}=3;#reject
|
$shash->{helper}{prt}{awake}=3;#reject
|
||||||
return "done";
|
return "done";
|
||||||
}
|
}
|
||||||
@ -3119,7 +3119,7 @@ sub CUL_HM_Set($@) {
|
|||||||
$devHash->{cmdStack} &&
|
$devHash->{cmdStack} &&
|
||||||
$devHash->{helper}{prt}{sProc} != 1 # not pocessing
|
$devHash->{helper}{prt}{sProc} != 1 # not pocessing
|
||||||
){
|
){
|
||||||
$hash->{helper}{prt}{wakeup}=1;# start wakeup
|
$hash->{helper}{prt}{wakeup}=1;# start auto-wakeup
|
||||||
CUL_HM_SndCmd($devHash,"++B112$id$dst");
|
CUL_HM_SndCmd($devHash,"++B112$id$dst");
|
||||||
}
|
}
|
||||||
return ("",1);# no not generate trigger outof command
|
return ("",1);# no not generate trigger outof command
|
||||||
@ -3318,7 +3318,6 @@ sub CUL_HM_pushConfig($$$$$$$$@) {#generate messages to config data to register
|
|||||||
($list,$peerN) = ($1,$2) if($nrn =~ m/RegL_(..):(.*)/);
|
($list,$peerN) = ($1,$2) if($nrn =~ m/RegL_(..):(.*)/);
|
||||||
if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));}
|
if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));}
|
||||||
else {($peerAddr,$peerChn) = ('000000','00');}
|
else {($peerAddr,$peerChn) = ('000000','00');}
|
||||||
|
|
||||||
CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn);
|
CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn);
|
||||||
CUL_HM_PushCmdStack($hash, "++".$flag.'01'.$src.$dst.$chn.'05'.
|
CUL_HM_PushCmdStack($hash, "++".$flag.'01'.$src.$dst.$chn.'05'.
|
||||||
$peerAddr.$peerChn.$list);
|
$peerAddr.$peerChn.$list);
|
||||||
@ -3597,7 +3596,7 @@ sub CUL_HM_respPendTout($) {
|
|||||||
return if(!$pHash->{rspWait}{reSent}); # Double timer?
|
return if(!$pHash->{rspWait}{reSent}); # Double timer?
|
||||||
if ($pHash->{rspWait}{wakeup}){
|
if ($pHash->{rspWait}{wakeup}){
|
||||||
CUL_HM_respPendRm($hash);# do not count problems with wakeup try, just wait
|
CUL_HM_respPendRm($hash);# do not count problems with wakeup try, just wait
|
||||||
$hash->{protCondBurst} = "off";
|
$hash->{protCondBurst} = "off" if ($hash->{protCondBurst} !~ m/forced/);;
|
||||||
$pHash->{wakeup} = 0;# finished
|
$pHash->{wakeup} = 0;# finished
|
||||||
$pHash->{awake} = 0;# set to asleep
|
$pHash->{awake} = 0;# set to asleep
|
||||||
CUL_HM_protState($hash,"CMDs_pending");
|
CUL_HM_protState($hash,"CMDs_pending");
|
||||||
@ -3634,7 +3633,6 @@ sub CUL_HM_respPendTout($) {
|
|||||||
Log GetLogLevel($name,4),"CUL_HM_Resend: ".$name. " nr ".$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);
|
InternalTimer(gettimeofday()+rand(20)/10+4,"CUL_HM_respPendTout","respPend:$hash->{DEF}", 0);
|
||||||
}
|
}
|
||||||
# }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4370,9 +4368,8 @@ sub CUL_HM_RTtempReadings($) {# parse RT temperature readings
|
|||||||
"R-winOpnTemp:" .ReadingsVal($name,"R-winOpnTemp" ,"unknown"),
|
"R-winOpnTemp:" .ReadingsVal($name,"R-winOpnTemp" ,"unknown"),
|
||||||
"R-winOpnPeriod:".ReadingsVal($name,"R-winOpnPeriod","unknown"),
|
"R-winOpnPeriod:".ReadingsVal($name,"R-winOpnPeriod","unknown"),
|
||||||
"R-winOpnBoost:" .ReadingsVal($name,"R-winOpnBoost" ,"unknown"),
|
"R-winOpnBoost:" .ReadingsVal($name,"R-winOpnBoost" ,"unknown"),
|
||||||
"R-winOpnMode:" .ReadingsVal($name,"R-winOpnMode:" ,"unknown"),
|
"R-winOpnMode:" .ReadingsVal($name,"R-winOpnMode" ,"unknown"),
|
||||||
"R-winOpnBoost:" .ReadingsVal($name,"R-winOpnBoost:","unknown")
|
"R-winOpnDetFall:".ReadingsVal($name,"R-winOpnDetFall" ,"unknown"),);
|
||||||
);
|
|
||||||
return $setting;
|
return $setting;
|
||||||
}
|
}
|
||||||
sub CUL_HM_repReadings($) {# for repeater in:hash, out: string with peers
|
sub CUL_HM_repReadings($) {# for repeater in:hash, out: string with peers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user