2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 23:06:37 +00:00

CUL_HM:improve event handling for Register updates

git-svn-id: https://svn.fhem.de/fhem/trunk@22174 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2020-06-13 06:57:25 +00:00
parent a8f030247d
commit 09390a1ae3

View File

@ -4152,7 +4152,7 @@ sub CUL_HM_TemplateModify(){
sub CUL_HM_getTemplateModify(){
return (defined $modules{CUL_HM}{helper}{tmplTimestamp} ? $modules{CUL_HM}{helper}{tmplTimestamp} : 'no');
}
sub CUL_HM_SetList($) {#+++++++++++++++++ get command basic list+++++++++++++++++++++++++++++
sub CUL_HM_SetList($) {#+++++++++++++++++ get command basic list+++++++++++++++
my($name)=@_;
my $hash = $defs{$name};
my $roleC = $hash->{helper}{role}{chn} ? 1 : 0; #entity may act in multiple roles
@ -8501,6 +8501,7 @@ sub CUL_HM_updtRegDisp($$$) {
: "";
$pReg =~ s/:/-/;
$pReg = "R-".$pReg;
# $pReg =~ s/_chn-..//;
my $devName =CUL_HM_getDeviceHash($hash)->{NAME};# devName as protocol entity
my $st = $attr{$devName}{subType} ?$attr{$devName}{subType} :"";
my $md = CUL_HM_getAliasModel($hash);
@ -8554,7 +8555,6 @@ sub CUL_HM_rmOldRegs($){ # remove register i outdated
my $name = shift;
my $hash = $defs{$name};
return if (!$hash->{peerList});# so far only peer-regs are removed
my @pList = split",",$hash->{peerList};
my @rpList;
foreach(grep /^R-(.*)-/,keys %{$hash->{READINGS}}){
push @rpList,$1 if ($_ =~ m/^R-(.*)-/);
@ -8562,8 +8562,10 @@ sub CUL_HM_rmOldRegs($){ # remove register i outdated
@rpList = CUL_HM_noDup(@rpList);
return if (!@rpList);
foreach my $peer(@rpList){
$peer =~ s/_chn-..$//;
next if($hash->{peerList} =~ m/\b$peer\b/);
delete $hash->{READINGS}{$_} foreach (grep /^R-$peer-/,keys %{$hash->{READINGS}})
delete $hash->{READINGS}{$_} foreach (grep /^R-${peer}-/,keys %{$hash->{READINGS}});
delete $hash->{READINGS}{$_} foreach (grep /^R-${peer}_chn-..-/,keys %{$hash->{READINGS}});
}
}
sub CUL_HM_refreshRegs($){ # renew all register readings from Regl_