From 346a0a5f7fd481e27494d9242c931bfcabf0ba5a Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Mon, 3 Dec 2018 16:38:52 +0000 Subject: [PATCH] 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 --- fhem/FHEM/10_MQTT2_DEVICE.pm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/10_MQTT2_DEVICE.pm b/fhem/FHEM/10_MQTT2_DEVICE.pm index bbaaeaead..d63d6f996 100644 --- a/fhem/FHEM/10_MQTT2_DEVICE.pm +++ b/fhem/FHEM/10_MQTT2_DEVICE.pm @@ -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);