mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
01_FHEMWEB.pm: Add FILTER= to FW_directNotify (Forum #48736)
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@10727 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
b455f91311
commit
089e391a6c
@ -2606,6 +2606,11 @@ FW_Notify($$)
|
|||||||
sub
|
sub
|
||||||
FW_directNotify($@) # Notify without the event overhead (Forum #31293)
|
FW_directNotify($@) # Notify without the event overhead (Forum #31293)
|
||||||
{
|
{
|
||||||
|
my $filter;
|
||||||
|
if($_[0] =~ m/^FILTER=(.*)/) {
|
||||||
|
$filter = "^$1\$";
|
||||||
|
shift;
|
||||||
|
}
|
||||||
my $dev = $_[0];
|
my $dev = $_[0];
|
||||||
foreach my $ntfy (values(%defs)) {
|
foreach my $ntfy (values(%defs)) {
|
||||||
next if(!$ntfy->{TYPE} ||
|
next if(!$ntfy->{TYPE} ||
|
||||||
@ -2613,6 +2618,7 @@ FW_directNotify($@) # Notify without the event overhead (Forum #31293)
|
|||||||
!$ntfy->{inform} ||
|
!$ntfy->{inform} ||
|
||||||
!$ntfy->{inform}{devices}{$dev} ||
|
!$ntfy->{inform}{devices}{$dev} ||
|
||||||
$ntfy->{inform}{type} ne "status");
|
$ntfy->{inform}{type} ne "status");
|
||||||
|
next if($filter && $ntfy->{inform}{filter} !~ m/$filter/);
|
||||||
if(!addToWritebuffer($ntfy,
|
if(!addToWritebuffer($ntfy,
|
||||||
FW_longpollInfo($ntfy->{inform}{fmt}, @_)."\n")) {
|
FW_longpollInfo($ntfy->{inform}{fmt}, @_)."\n")) {
|
||||||
my $name = $ntfy->{NAME};
|
my $name = $ntfy->{NAME};
|
||||||
|
14
fhem.pl
14
fhem.pl
@ -2144,9 +2144,12 @@ CommandList($$)
|
|||||||
if($defs{$sdev}) {
|
if($defs{$sdev}) {
|
||||||
if(defined($defs{$sdev}{$n}) && (!$fType || $fType eq "i:")) {
|
if(defined($defs{$sdev}{$n}) && (!$fType || $fType eq "i:")) {
|
||||||
my $val = $defs{$sdev}{$n};
|
my $val = $defs{$sdev}{$n};
|
||||||
$val = $val->{NAME} if(ref($val) eq 'HASH' && $val->{NAME});
|
if(ref($val) eq 'HASH') {
|
||||||
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'', $arg[2]?19:0, '',
|
$val = ($val->{NAME} ? $val->{NAME} : # ???
|
||||||
$arg[2]?-15:0, $arg[2]?$n:'', $val);
|
join(" ", map { "$_=$val->{$_}" } sort keys %{$val}));
|
||||||
|
}
|
||||||
|
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'',
|
||||||
|
$arg[2]?19:0, '', $arg[2]?-15:0, $arg[2]?$n:'', $val);
|
||||||
|
|
||||||
} elsif($defs{$sdev}{READINGS} &&
|
} elsif($defs{$sdev}{READINGS} &&
|
||||||
defined($defs{$sdev}{READINGS}{$n})
|
defined($defs{$sdev}{READINGS}{$n})
|
||||||
@ -2159,8 +2162,9 @@ CommandList($$)
|
|||||||
} elsif($attr{$sdev} &&
|
} elsif($attr{$sdev} &&
|
||||||
defined($attr{$sdev}{$n})
|
defined($attr{$sdev}{$n})
|
||||||
&& (!$fType || $fType eq "a:")) {
|
&& (!$fType || $fType eq "a:")) {
|
||||||
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'', $arg[2]?19:0, '',
|
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'',
|
||||||
$arg[2]?-15:0, $arg[2]?$n:'', $attr{$sdev}{$n});
|
$arg[2]?19:0, '', $arg[2]?-15:0, $arg[2]?$n:'',
|
||||||
|
$attr{$sdev}{$n});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user