diff --git a/FHEM/10_MQTT2_DEVICE.pm b/FHEM/10_MQTT2_DEVICE.pm index 6c8b3ef38..e974077eb 100644 --- a/FHEM/10_MQTT2_DEVICE.pm +++ b/FHEM/10_MQTT2_DEVICE.pm @@ -179,9 +179,9 @@ MQTT2_DEVICE_Parse($$) if(!$add) { $topic =~ m,.*/([^/]+),; $add = ($1 ? $1 : $topic); + $add = makeReadingName($add); # Convert non-valid characters to _ } - $add = makeReadingName($add); # Convert non-valid characters to _ $topic =~ s,([\^\$\[\]()\.\\]),\\$1,g; for my $ch (@{$cidArr}) { @@ -193,7 +193,7 @@ MQTT2_DEVICE_Parse($$) CommandAttr(undef, "$nn readingList $rl$regex $add") if(index($rl, $regex) == -1); # Forum #84372 setReadingsVal($defs{$nn}, "associatedWith", $parentBridge, TimeNow()) - if($parentBridge); + if($parentBridge && $defs{$nn}); } MQTT2_DEVICE_Parse($iodev, $msg); }, undef); diff --git a/fhem.pl b/fhem.pl index 4ae560c09..687c8ff81 100755 --- a/fhem.pl +++ b/fhem.pl @@ -2651,7 +2651,7 @@ CommandRename($$) my $aw = ReadingsVal($d, "associatedWith", ""); next if($aw !~ m/\b$old\b/); $aw =~ s/\b$old\b/$new/; - setReadingsVal($defs{$d}, "associatedWith", $aw, TimeNow()); + setReadingsVal($defs{$d}, "associatedWith", $aw, TimeNow()) if($defs{$d}); } addStructChange("rename", $new, $param); @@ -5664,7 +5664,7 @@ getPawList($) } } my $aw = ReadingsVal($d, "associatedWith", ""); # Explicit link - push(@dob, split("[ ,]",$aw)) if($aw); + push(@dob, grep { $defs{$_} } split("[ ,]",$aw)) if($aw); return @dob; }