2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-18 05:56:03 +00:00

CUL_HM: soften automatic register reading

git-svn-id: https://svn.fhem.de/fhem/trunk@10411 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2016-01-08 15:18:17 +00:00
parent 71e505f8c2
commit 8cb9950f3f

View File

@ -164,7 +164,7 @@ sub CUL_HM_Initialize($) {
."levelRange levelMap ";
$hash->{Attr}{glb} = "do_not_notify:1,0 showtime:1,0 "
."rawToReadable unit "#"KFM-Sensor" only
."expert:0_off,1_on,2_raw,3_all,4_none,8_templ+default,12_templOnly,251_anything "
."expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything "
."param "
."actAutoTry:0_off,1_on "
."aesCommReq:1,0 " # IO will request AES if
@ -6909,6 +6909,7 @@ sub CUL_HM_setTmplDisp($){ # remove register i outdated
if ($tHash->{helper}{expert}{tpl}){
foreach (keys %{$tHash->{helper}{tmpl}}){
my ($p,$t) = split(">",$_);
$t .= ":".$tHash->{helper}{tmpl}{$_} if($tHash->{helper}{tmpl}{$_});
$tHash->{READINGS}{"tmpl_".$p}{VAL} .= $t.",";#could be more than one!
$tHash->{READINGS}{"tmpl_".$p}{TIME} .= "-";# time does not make sense
}
@ -8205,8 +8206,6 @@ sub CUL_HM_complConfigTest($){# Q - check register consistancy some time later
}
sub CUL_HM_complConfigTestRm($){# Q - check register consistancy some time later
my $name = shift;
my $devN = CUL_HM_getDeviceName($name);
return if (AttrVal($devN,"subType","") eq "virtual");
my $mQ = $modules{CUL_HM}{helper}{confCheckArr};
@{$mQ} = grep !/^$name$/,@{$mQ};
}
@ -8217,26 +8216,32 @@ sub CUL_HM_complConfigTO($) {# now perform consistancy check of register
}
sub CUL_HM_complConfig($;$) {# read config if enabled and not complete
my ($name,$dly) = @_;
my $devN = CUL_HM_getDeviceName($name);
return if (AttrVal($devN,"subType","") eq "virtual");
return if ($modules{CUL_HM}{helper}{hmManualOper});#no autoaction when manual
return if ((CUL_HM_getAttrInt($name,"autoReadReg") & 0x07) < 5);
if (CUL_HM_peerUsed($name) == 2){
if ($defs{$devN}{helper}{prt}{sProc} != 0){# we wait till device is idle.
CUL_HM_complConfigTest($name); # requeue and wait patient
}
elsif (CUL_HM_peerUsed($name) == 2){
CUL_HM_qAutoRead($name,0) if(!$dly);
CUL_HM_complConfigTest($name);
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
Log3 $name,5,"CUL_HM $name queue configRead, peers incomplete";
return;
}
my @regList = CUL_HM_reglUsed($name);
foreach (@regList){
if (ReadingsVal($name,$_,"") !~ m /00:00/){
CUL_HM_qAutoRead($name,0) if(!$dly);
CUL_HM_complConfigTest($name);
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
Log3 $name,5,"CUL_HM $name queue configRead, register incomplete";
last;
else{
my @regList = CUL_HM_reglUsed($name);
foreach (@regList){
if (ReadingsVal($name,$_,"") !~ m /00:00/){
CUL_HM_qAutoRead($name,0) if(!$dly);
CUL_HM_complConfigTest($name);
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
Log3 $name,5,"CUL_HM $name queue configRead, register incomplete";
last;
}
}
$modules{CUL_HM}{helper}{cfgCmpl}{$name} = 1;#mark config as complete
}
$modules{CUL_HM}{helper}{cfgCmpl}{$name} = 1;#mark config as complete
}
sub CUL_HM_configUpdate($) {# mark entities with changed data
my $name = shift;