2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

fhem.pl: list: enable multiple values, and i: r: a filters

git-svn-id: https://svn.fhem.de/fhem/trunk@10582 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-01-21 08:28:16 +00:00
parent c1b3360e99
commit 70b30a717c

View File

@ -2133,23 +2133,38 @@ CommandList($$)
if($arg[1]) {
foreach my $sdev (@list) { # Show a Hash-Entry or Reading for each device
if($defs{$sdev}) {
if(defined($defs{$sdev}{$arg[1]})) {
my $val = $defs{$sdev}{$arg[1]};
$val = $val->{NAME} if(ref($val) eq 'HASH' && $val->{NAME});
$str .= sprintf("%-20s %s\n", $sdev, $val);
my $first = 1;
foreach my $n (@arg[1..@arg-1]) {
my $fType="";
if($n =~ m/^(.:)(.*$)/) {
$fType = $1;
$n = $2;
}
} elsif($defs{$sdev}{READINGS} &&
defined($defs{$sdev}{READINGS}{$arg[1]})) {
$str .= sprintf("%-20s %s %s\n", $sdev,
$defs{$sdev}{READINGS}{$arg[1]}{TIME},
$defs{$sdev}{READINGS}{$arg[1]}{VAL});
if($defs{$sdev}) {
if(defined($defs{$sdev}{$n}) && (!$fType || $fType eq "i:")) {
my $val = $defs{$sdev}{$n};
$val = $val->{NAME} if(ref($val) eq 'HASH' && $val->{NAME});
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'', $arg[2]?19:0, '',
$arg[2]?-15:0, $arg[2]?$n:'', $val);
} elsif($attr{$sdev} &&
defined($attr{$sdev}{$arg[1]})) {
$str .= sprintf("%-20s %s\n", $sdev, $attr{$sdev}{$arg[1]});
} elsif($defs{$sdev}{READINGS} &&
defined($defs{$sdev}{READINGS}{$n})
&& (!$fType || $fType eq "r:")) {
$str .= sprintf("%-20s %s %*s %s\n", $first?$sdev:'',
$defs{$sdev}{READINGS}{$n}{TIME},
$arg[2]?-15:0, $arg[2]?$n:'',
$defs{$sdev}{READINGS}{$n}{VAL});
} elsif($attr{$sdev} &&
defined($attr{$sdev}{$n})
&& (!$fType || $fType eq "a:")) {
$str .= sprintf("%-20s %*s %*s %s\n", $first?$sdev:'', $arg[2]?19:0, '',
$arg[2]?-15:0, $arg[2]?$n:'', $attr{$sdev}{$n});
}
}
$first = 0;
}
}