From 09390a1ae36df459a69c38b3e5a9478f3dfd3b25 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sat, 13 Jun 2020 06:57:25 +0000 Subject: [PATCH] CUL_HM:improve event handling for Register updates git-svn-id: https://svn.fhem.de/fhem/trunk@22174 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index 8a7263e9d..1088b7fbd 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -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_