mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 18:59:33 +00:00
FHEM/10_MQTT2_DEVICE.pm: fix readingList with $DEVICETOPIC (Forum #116706)
git-svn-id: https://svn.fhem.de/fhem/trunk@23349 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
30eba80255
commit
a7c0493e8f
@ -436,6 +436,7 @@ MQTT2_DEVICE_Attr($$)
|
|||||||
|
|
||||||
if($attrName eq "devicetopic") {
|
if($attrName eq "devicetopic") {
|
||||||
$hash->{DEVICETOPIC} = ($type eq "del" ? $hash->{NAME} : $param);
|
$hash->{DEVICETOPIC} = ($type eq "del" ? $hash->{NAME} : $param);
|
||||||
|
MQTT2_DEVICE_addReading($dev, AttrVal($dev, "readingList", ""));
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,12 +601,14 @@ MQTT2_DEVICE_addReading($$)
|
|||||||
my ($name, $param) = @_;
|
my ($name, $param) = @_;
|
||||||
MQTT2_DEVICE_delReading($name);
|
MQTT2_DEVICE_delReading($name);
|
||||||
my $cid = $defs{$name}{CID};
|
my $cid = $defs{$name}{CID};
|
||||||
|
my $dt = $defs{$name}{DEVICETOPIC};
|
||||||
foreach my $line (split("\n", $param)) {
|
foreach my $line (split("\n", $param)) {
|
||||||
my ($re,$code) = split(" ", $line,2);
|
my ($re,$code) = split(" ", $line,2);
|
||||||
return "Bad line >$line< for $name" if(!defined($code));
|
return "Bad line >$line< for $name" if(!defined($code));
|
||||||
my $errMsg = CheckRegexp($re, "readingList attribute for $name");
|
my $errMsg = CheckRegexp($re, "readingList attribute for $name");
|
||||||
return $errMsg if($errMsg);
|
return $errMsg if($errMsg);
|
||||||
|
|
||||||
|
$re =~ s/\$DEVICETOPIC/$dt/g;
|
||||||
if($cid && $re =~ m/^$cid:/) {
|
if($cid && $re =~ m/^$cid:/) {
|
||||||
if($re =~ m/^$cid:([^\?.*\[\](|)]+):\.\*$/) { # cid:topic:.*
|
if($re =~ m/^$cid:([^\?.*\[\](|)]+):\.\*$/) { # cid:topic:.*
|
||||||
$modules{MQTT2_DEVICE}{defptr}{"re:$cid:$1"}{$re}{"$name,$code"} = 1;
|
$modules{MQTT2_DEVICE}{defptr}{"re:$cid:$1"}{$re}{"$name,$code"} = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user