";
+ pO " ";
- if($FW_hiddenroom{detail}) {
- pO "$d | ";
+ foreach my $d (sort @devs) {
+ my $type = $defs{$d}{TYPE};
- } else {
- pH "detail=$d", $d, 1, "col1";
+ my $allSets = " " . getAllSets($d) . " ";
+ my $hasOnOff = ($allSets =~ m/ on / && $allSets =~ m/ off /);
+ if(!$hasOnOff) { # Check the eventMap
+ my $em = AttrVal($d, "eventMap", "") . " ";
+ $hasOnOff = ($em =~ m/:on / && $em =~ m/:off /);
+ }
- }
+ pF " ", ($row&1)?"odd":"even";
- $row++;
+ if($FW_hiddenroom{detail}) {
+ pO "$d | ";
- my $state = $defs{$d}{STATE};
- $state = "" if(!defined($state));
- my $txt = $state;
+ } else {
+ pH "detail=$d", $d, 1, "col1";
- if(defined(AttrVal($d, "showtime", undef))) {
- $txt = $defs{$d}{READINGS}{state}{TIME};
+ }
- } elsif($allSets =~ m/ desired-temp /) {
- $txt = ReadingsVal($d, "measured-temp", "");
- $txt =~ s/ .*//;
- $txt .= "°"
+ $row++;
- } else {
- my $icon;
- $icon = FW_dev2image($d);
- $txt = " " if($icon);
+ my $state = $defs{$d}{STATE};
+ $state = "" if(!defined($state));
+ my $txt = $state;
- }
-
- pO "";
- pO "" if(!$FW_ss);
- # align needed for FireFox
- $txt = " $txt " if($FW_ss);
- if($hasOnOff) {
- pHPlain "cmd.$d=set $d ".($state eq "on" ? "off":"on").$rf, $txt, 0;
- } else {
- pO $txt;
- }
-
- if(!$FW_ss) {
- pO " | ";
- if($hasOnOff) {
- pH "cmd.$d=set $d on$rf", ReplaceEventMap($d, "on", 1), 1, "col2";
- pH "cmd.$d=set $d off$rf", ReplaceEventMap($d, "off", 1), 1, "col2";
+ if(defined(AttrVal($d, "showtime", undef))) {
+ $txt = $defs{$d}{READINGS}{state}{TIME};
} elsif($allSets =~ m/ desired-temp /) {
$txt = ReadingsVal($d, "measured-temp", "");
$txt =~ s/ .*//;
- $txt = sprintf("%2.1f", int(2*$txt)/2) if($txt =~ m/[0-9.-]/);
- my @tv = map { ($_.".0", $_+0.5) } (5..30);
- shift(@tv); # 5.0 is not valid
- $txt = int($txt*20)/$txt if($txt =~ m/^[0-9].$/);
+ $txt .= "°"
+
+ } else {
+ my $icon;
+ $icon = FW_dev2image($d);
+ $txt = " " if($icon);
- pO "".
- FW_hidden("arg.$d", "desired-temp") .
- FW_hidden("dev.$d", $d) .
- FW_select("val.$d", \@tv, ReadingsVal($d, "desired-temp", $txt)) .
- " | ".
- FW_submit("cmd.$d", "set").
- " | ";
}
- pO " ";
+
+ pO " | ";
+ # align needed for FireFox
+ $txt = " $txt " if($FW_ss);
+ if($hasOnOff) {
+ pHPlain "cmd.$d=set $d ".($state eq "on" ? "off":"on").$rf, $txt, 0;
+ } else {
+ pO $txt;
+ }
+
+ if(!$FW_ss) {
+ pO " | ";
+ if($hasOnOff) {
+ pH "cmd.$d=set $d on$rf", ReplaceEventMap($d, "on", 1), 1, "col2";
+ pH "cmd.$d=set $d off$rf", ReplaceEventMap($d, "off", 1), 1, "col2";
+
+ } elsif($allSets =~ m/ desired-temp /) {
+ $txt = ReadingsVal($d, "measured-temp", "");
+ $txt =~ s/ .*//;
+ $txt = sprintf("%2.1f", int(2*$txt)/2) if($txt =~ m/[0-9.-]/);
+ my @tv = map { ($_.".0", $_+0.5) } (5..30);
+ shift(@tv); # 5.0 is not valid
+ $txt = int($txt*20)/$txt if($txt =~ m/^[0-9].$/);
+
+ pO "".
+ FW_hidden("arg.$d", "desired-temp") .
+ FW_hidden("dev.$d", $d) .
+ FW_select("val.$d", \@tv, ReadingsVal($d, "desired-temp", $txt)) .
+ " | ".
+ FW_submit("cmd.$d", "set").
+ " | ";
+ } elsif($type eq "FileLog") {
+ FW_dumpFileLog($d, 1);
+
+ }
+ }
+ pO "";
}
- pO "";
+ pO " ";
+ pO " |
";
}
pO "