From 68adb7d3696fe83b5e9a392c8744f9815b39a9b4 Mon Sep 17 00:00:00 2001 From: justme-1968 Date: Thu, 16 Mar 2017 16:19:03 +0000 Subject: [PATCH] 33_readingsProxy.pm: better DEFINED/RENAMED/DELETED handling git-svn-id: https://svn.fhem.de/fhem/trunk@13716 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/33_readingsProxy.pm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/33_readingsProxy.pm b/fhem/FHEM/33_readingsProxy.pm index 19196e6c3..4b9ca10a8 100644 --- a/fhem/FHEM/33_readingsProxy.pm +++ b/fhem/FHEM/33_readingsProxy.pm @@ -116,9 +116,11 @@ readingsProxy_update($$) my $name = $hash->{NAME}; my $DEVICE = $hash->{DEVICE}; + return if( !$DEVICE ); my $READING = $hash->{READING}; $value = ReadingsVal($DEVICE,$READING,undef) if( $DEVICE && !defined($value) ); + #return if( !defined($value) ); my $value_fn = AttrVal( $name, "valueFn", "" ); if( $value_fn =~ m/^{.*}$/s ) { @@ -171,21 +173,25 @@ readingsProxy_Notify($$) if( defined($hash->{CONTENT}{$old}) ) { $hash->{DEF} =~ s/(^|\s+)$old((:\S+)?\s*)/$1$new$2/g; + + readingsProxy_updateDevices($hash); } - readingsProxy_updateDevices($hash); + } elsif( $dev->{NAME} eq "global" && $s =~ m/^DELETED ([^ ]*)$/) { my ($name) = ($1); if( defined($hash->{CONTENT}{$name}) ) { - $hash->{DEF} =~ s/(^|\s+)$name((:\S+)?\s*)/ /g; - $hash->{DEF} =~ s/^ //; - $hash->{DEF} =~ s/ $//; + #$hash->{DEF} =~ s/(^|\s+)$name((:\S+)?\s*)/ /g; + #$hash->{DEF} =~ s/^ //; + #$hash->{DEF} =~ s/ $//; + + readingsProxy_updateDevices($hash); } - readingsProxy_updateDevices($hash); } elsif( $dev->{NAME} eq "global" && $s =~ m/^DEFINED ([^ ]*)$/) { - readingsProxy_updateDevices($hash); + my ($name) = ($1); + readingsProxy_updateDevices($hash) if( !$hash->{DEVICE} ); } else { next if( !$hash->{DEVICE} );