10_MQTT2_DEVICE.pm: fix autocreate, delete old bridgeregexp (Forum #91394)

git-svn-id: https://svn.fhem.de/fhem/trunk@17887 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig
2018-12-03 16:38:52 +00:00
parent bfc7a67334
commit 346a0a5f7f

View File

@@ -181,8 +181,11 @@ MQTT2_DEVICE_Parse($$)
}, undef);
my $cidArr = $modules{MQTT2_DEVICE}{defptr}{cid}{$newCid};
return "UNDEFINED MQTT2_$newCid MQTT2_DEVICE $newCid"
if(!$cidArr || !int(@{$cidArr}));
if(!$cidArr || !int(@{$cidArr})) {
my $devName = $newCid;
$devName =~ s/[^a-z0-9._]/_/g;
return "UNDEFINED MQTT2_$devName MQTT2_DEVICE $newCid";
}
return "";
}
@@ -341,6 +344,13 @@ MQTT2_DEVICE_Attr($$)
}
if($attrName eq "bridgeRegexp" && $type eq "set") {
my $old = AttrVal($dev, "bridgeRegexp", "");
foreach my $el (split("\n", $old)) {
my ($par1, $par2) = split(" ", $el, 2);
delete($modules{MQTT2_DEVICE}{defptr}{bridge}{$par1}) if($par1);
}
foreach my $el (split("\n", $param)) {
my ($par1, $par2) = split(" ", $el, 2);
next if(!$par1);