From b830ad48f24fe73b65382894e7eb10ee06a2b0ba Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Tue, 17 Nov 2020 18:40:22 +0000 Subject: [PATCH] 10_MQTT2_DEVICE.pm: fix escaping readingList for autocreate (Forum #115743) git-svn-id: https://svn.fhem.de/fhem/trunk@23171 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_MQTT2_DEVICE.pm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/10_MQTT2_DEVICE.pm b/fhem/FHEM/10_MQTT2_DEVICE.pm index b7d51623a..a4bf28e60 100644 --- a/fhem/FHEM/10_MQTT2_DEVICE.pm +++ b/fhem/FHEM/10_MQTT2_DEVICE.pm @@ -246,16 +246,14 @@ MQTT2_DEVICE_Parse($$) $add = makeReadingName($add); # Convert non-valid characters to _ } - $topic =~ s,([\^\$\[\]()\.\\]),\\$1,g; - $topic =~ s,\s,.,g; + my $reTopic = $topic; + $reTopic =~ s#([^A-Z0-9_/-])#"\\x".sprintf("%02x",ord($1))#ige; for my $ch (@{$cidArr}) { my $nn = $ch->{NAME}; next if(!AttrVal($nn, "autocreate", 1)); # device autocreate my $rl = AttrVal($nn, "readingList", ""); $rl .= "\n" if($rl); - my $reTopic = $topic; - $reTopic =~ s#([^A-Z0-9_/-])#"\\x".sprintf("%02x",ord($1))#ige; my $regex = ($cid eq $newCid ? "$cid:" : "").$reTopic.":.*"; CommandAttr(undef, "$nn readingList $rl$regex $add") if(index($rl, $regex) == -1); # Forum #84372