mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-14 05:46:35 +00:00
Fixes for bugs reported by Martin
git-svn-id: https://svn.fhem.de/fhem/trunk@553 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5a5a579d14
commit
ca6c0d2f67
@ -48,7 +48,9 @@ structure_Define($$)
|
|||||||
|
|
||||||
my %list;
|
my %list;
|
||||||
foreach my $a (@a) {
|
foreach my $a (@a) {
|
||||||
$list{$a} = 1;
|
foreach my $d (devspec2array($a)) {
|
||||||
|
$list{$d} = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$hash->{CONTENT} = \%list;
|
$hash->{CONTENT} = \%list;
|
||||||
$hash->{STATE} = join(" ", sort(keys %{$hash->{CONTENT}}));
|
$hash->{STATE} = join(" ", sort(keys %{$hash->{CONTENT}}));
|
||||||
|
@ -22,7 +22,7 @@ sub
|
|||||||
XmlEscape($)
|
XmlEscape($)
|
||||||
{
|
{
|
||||||
my $a = shift;
|
my $a = shift;
|
||||||
return "" if(!$a);
|
return "" if(!defined($a));
|
||||||
$a =~ s/\\\n/<br>/g; # Multi-line
|
$a =~ s/\\\n/<br>/g; # Multi-line
|
||||||
$a =~ s/&/&/g;
|
$a =~ s/&/&/g;
|
||||||
$a =~ s/"/"/g;
|
$a =~ s/"/"/g;
|
||||||
@ -41,26 +41,25 @@ CommandXmlList($$)
|
|||||||
my $lt = "";
|
my $lt = "";
|
||||||
|
|
||||||
delete($modules{""}) if(defined($modules{""}));
|
delete($modules{""}) if(defined($modules{""}));
|
||||||
for my $d (sort { my $x = $modules{$defs{$a}{TYPE}}{ORDER} cmp
|
for my $d (sort { my $x = $defs{$a}{TYPE}.$modules{$defs{$a}{TYPE}}{ORDER} cmp
|
||||||
$modules{$defs{$b}{TYPE}}{ORDER};
|
$defs{$b}{TYPE}.$modules{$defs{$b}{TYPE}}{ORDER};
|
||||||
$x = ($a cmp $b) if($x == 0); $x; } keys %defs) {
|
$x = ($a cmp $b) if($x == 0); $x; } keys %defs) {
|
||||||
|
|
||||||
next if(IsIgnored($d));
|
next if(IsIgnored($d));
|
||||||
my $p = $defs{$d};
|
my $p = $defs{$d};
|
||||||
my $t = $p->{TYPE};
|
my $t = $p->{TYPE};
|
||||||
|
|
||||||
if($t ne $lt) {
|
if($t ne $lt) {
|
||||||
$str .= "\t</${lt}_LIST>\n" if($lt);
|
$str .= "\t</${lt}_LIST>\n" if($lt);
|
||||||
$str .= "\t<${t}_LIST>\n";
|
$str .= "\t<${t}_LIST>\n";
|
||||||
}
|
}
|
||||||
$lt = $t;
|
$lt = $t;
|
||||||
|
|
||||||
my $a1 = XmlEscape($p->{STATE});
|
my $a1 = XmlEscape($p->{STATE});
|
||||||
my $a2 = XmlEscape(getAllSets($d));
|
my $a2 = XmlEscape(getAllSets($d));
|
||||||
my $a3 = XmlEscape(getAllAttr($d));
|
my $a3 = XmlEscape(getAllAttr($d));
|
||||||
|
|
||||||
$str .= "\t\t<$t name=\"$d\" state=\"$a1\" sets=\"$a2\" attrs=\"$a3\">\n";
|
$str .= "\t\t<$t name=\"$d\" state=\"$a1\" sets=\"$a2\" attrs=\"$a3\">\n";
|
||||||
|
|
||||||
foreach my $c (sort keys %{$p}) {
|
foreach my $c (sort keys %{$p}) {
|
||||||
next if(ref($p->{$c}));
|
next if(ref($p->{$c}));
|
||||||
$str .= sprintf("\t\t\t<INT key=\"%s\" value=\"%s\"/>\n",
|
$str .= sprintf("\t\t\t<INT key=\"%s\" value=\"%s\"/>\n",
|
||||||
@ -68,18 +67,18 @@ CommandXmlList($$)
|
|||||||
}
|
}
|
||||||
$str .= sprintf("\t\t\t<INT key=\"IODev\" value=\"%s\"/>\n",
|
$str .= sprintf("\t\t\t<INT key=\"IODev\" value=\"%s\"/>\n",
|
||||||
$p->{IODev}{NAME}) if($p->{IODev});
|
$p->{IODev}{NAME}) if($p->{IODev});
|
||||||
|
|
||||||
foreach my $c (sort keys %{$attr{$d}}) {
|
foreach my $c (sort keys %{$attr{$d}}) {
|
||||||
$str .= sprintf("\t\t\t<ATTR key=\"%s\" value=\"%s\"/>\n",
|
$str .= sprintf("\t\t\t<ATTR key=\"%s\" value=\"%s\"/>\n",
|
||||||
XmlEscape($c), XmlEscape($attr{$d}{$c}));
|
XmlEscape($c), XmlEscape($attr{$d}{$c}));
|
||||||
}
|
}
|
||||||
|
|
||||||
my $r = $p->{READINGS};
|
my $r = $p->{READINGS};
|
||||||
if($r) {
|
if($r) {
|
||||||
foreach my $c (sort keys %{$r}) {
|
foreach my $c (sort keys %{$r}) {
|
||||||
my $h = $r->{$c};
|
my $h = $r->{$c};
|
||||||
next if(!$h->{VAL} || !$h->{TIME});
|
next if(!defined($h->{VAL}) || !defined($h->{TIME}));
|
||||||
$str .=
|
$str .=
|
||||||
sprintf("\t\t\t<STATE key=\"%s\" value=\"%s\" measured=\"%s\"/>\n",
|
sprintf("\t\t\t<STATE key=\"%s\" value=\"%s\" measured=\"%s\"/>\n",
|
||||||
XmlEscape($c), XmlEscape($h->{VAL}), $h->{TIME});
|
XmlEscape($c), XmlEscape($h->{VAL}), $h->{TIME});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user