mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
10_MQTT2_DEVICE.pm: enable multiple readings for the same topic (Forum #97389)
git-svn-id: https://svn.fhem.de/fhem/trunk@18594 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c81dc5585d
commit
0f4e37ab0b
@ -103,16 +103,18 @@ MQTT2_DEVICE_Parse($$)
|
||||
|
||||
next if(!("$topic:$value" =~ m/^$reAll$/s ||
|
||||
"$cid:$topic:$value" =~ m/^$reAll$/s));
|
||||
foreach my $dev (keys %{$dp->{$re}}) {
|
||||
next if(IsDisabled($dev));
|
||||
foreach my $key (keys %{$dp->{$re}}) {
|
||||
my ($dev, $code2) = split(",",$key,2);
|
||||
my $hash = $defs{$dev};
|
||||
next if(!$hash);
|
||||
next if(IsDisabled($dev));
|
||||
my $reRepl = $re;
|
||||
$reRepl =~ s/\$DEVICETOPIC/$hash->{DEVICETOPIC}/g;
|
||||
next if(!("$topic:$value" =~ m/^$reRepl$/s ||
|
||||
"$cid:$topic:$value" =~ m/^$reRepl$/s));
|
||||
|
||||
my @retData;
|
||||
my $code = $dp->{$re}{$dev};
|
||||
my $code = $dp->{$re}{$key};
|
||||
Log3 $dev, 4, "MQTT2_DEVICE_Parse: $dev $topic => $code";
|
||||
|
||||
if($code =~ m/^{.*}$/s) {
|
||||
@ -443,11 +445,13 @@ MQTT2_DEVICE_delReading($)
|
||||
my ($name) = @_;
|
||||
my $dp = $modules{MQTT2_DEVICE}{defptr}{re};
|
||||
foreach my $re (keys %{$dp}) {
|
||||
if($dp->{$re}{$name}) {
|
||||
delete($dp->{$re}{$name});
|
||||
foreach my $key (keys %{$dp->{$re}}) {
|
||||
if($key =~ m/^$name,/) {
|
||||
delete($dp->{$re}{$key});
|
||||
delete($dp->{$re}) if(!int(keys %{$dp->{$re}}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub
|
||||
@ -457,7 +461,8 @@ MQTT2_DEVICE_addReading($$)
|
||||
MQTT2_DEVICE_delReading($name);
|
||||
foreach my $line (split("\n", $param)) {
|
||||
my ($re,$code) = split(" ", $line,2);
|
||||
$modules{MQTT2_DEVICE}{defptr}{re}{$re}{$name} = $code if($re && $code);
|
||||
$modules{MQTT2_DEVICE}{defptr}{re}{$re}{"$name,$code"} = $code
|
||||
if($re && $code);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user