(FHEM) Stolperfallen: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „=RoomIcons bei Untermenues= Hab mal wieder einen Volltreffer gelandet. Weil die Raeume im FHEMWEB zu viele wurden, aber auch nicht mit "hiddenroom" unterdrueck…“) |
|||
Zeile 8: | Zeile 8: | ||
Ein Blick in den Quellcode von 01_FHEMWEB.pm zeigt: | Ein Blick in den Quellcode von 01_FHEMWEB.pm zeigt: | ||
− | <div class="toccolours mw-collapsible mw-collapsed" style="width: | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px; overflow:auto;"> |
<div style="font-weight:bold;line-height:1.6;">01-FHEMWEB.pm (Auszug)</div> | <div style="font-weight:bold;line-height:1.6;">01-FHEMWEB.pm (Auszug)</div> | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
Zeile 14: | Zeile 14: | ||
########################## | ########################## | ||
# Rooms and other links | # Rooms and other links | ||
− | foreach my $r (@FW_roomsArr) { | + | foreach my $r (@FW_roomsArr) { # das array mit den raumnamen wird nacheinander durchlaufen, in Variablen r steht der aktuell zu pruefende Raumname |
− | next if($r eq "hidden" || $FW_hiddenroom{$r}); | + | next if($r eq "hidden" || $FW_hiddenroom{$r}); # ist der Raum hidden geh zu naechsten = tue nichts mit diesem Raum |
$FW_room = AttrVal($FW_wname, "defaultRoom", $r) | $FW_room = AttrVal($FW_wname, "defaultRoom", $r) | ||
if(!$FW_room && $FW_ss); | if(!$FW_room && $FW_ss); | ||
if(my $devspec = $FW_extraRooms{$r}) { | if(my $devspec = $FW_extraRooms{$r}) { | ||
my $r = $r; | my $r = $r; | ||
− | $r =~ s/ / /g; | + | $r =~ s/ / /g; # ersetze alle NoBreakSpaces durch Leerzeichen |
push @list1, FW_htmlEscape($r); | push @list1, FW_htmlEscape($r); | ||
− | push @list2, "$FW_ME?room=".urlEncode($devspec); | + | push @list2, "$FW_ME?room=".urlEncode($devspec); # da habe ich noch keine Idee zu |
} else { | } else { | ||
push @list1, FW_htmlEscape($r); | push @list1, FW_htmlEscape($r); | ||
Zeile 30: | Zeile 30: | ||
} | } | ||
my $sfx = AttrVal("global", "language", "EN"); | my $sfx = AttrVal("global", "language", "EN"); | ||
− | $sfx = ($sfx eq "EN" ? "" : "_$sfx"); | + | $sfx = ($sfx eq "EN" ? "" : "_$sfx"); # wenn die eingestellte Sprache EN ist , dann ist sfx leer; es wird also z.B: an den Dateinamen commandref nichts angehaengt (sfx steht fuer suffix) |
− | my @list = ( | + | my @list = ( # das ist wohl die Standard Ausgangsliste; interassant: Everything gehoert zum Raummenue und der Rest zum (Name?)-Menue darunter |
"Everything", "$FW_ME?room=all", | "Everything", "$FW_ME?room=all", | ||
"", "", | "", "", | ||
Zeile 47: | Zeile 47: | ||
my $fn = pop @l; | my $fn = pop @l; | ||
splice @list, 4,0, ("Logfile", | splice @list, 4,0, ("Logfile", | ||
− | "$FW_ME/FileLog_logWrapper?dev=$lfn&type=text&file=$fn"); | + | "$FW_ME/FileLog_logWrapper?dev=$lfn&type=text&file=$fn"); # fuege den Logfile-Eintrag vor dem Eintrag Commandref ein (wenn definiert) |
} | } | ||
+ | # die menuEntries sind der dritte Block (Rooms, (Name?)-Menue, menuEntries) | ||
+ | my @me = split(",", AttrVal($FW_wname, "menuEntries", "")); # die menuEntries sind eine komma-separierte Liste von Eintraegen der Art Menuname,Kommando | ||
+ | push @list, @me, "", "" if(@me); # Die Eintragungen werden angehaengt "","" ist jeweils der Block-Abschluss, bzw. Separator | ||
− | + | for(my $idx = 0; $idx < @list; $idx+= 2) { # haenge die Kommandoliste an die Raumliste an | |
− | |||
− | |||
− | for(my $idx = 0; $idx < @list; $idx+= 2) { | ||
next if($FW_hiddenroom{$list[$idx]} || $list[$idx] eq $lastname); | next if($FW_hiddenroom{$list[$idx]} || $list[$idx] eq $lastname); | ||
− | push @list1, $list[$idx]; | + | push @list1, $list[$idx]; # in list1 stehen die Menunamen und in list zwie die Aktionen |
push @list2, $list[$idx+1]; | push @list2, $list[$idx+1]; | ||
$lastname = $list[$idx]; | $lastname = $list[$idx]; | ||
Zeile 127: | Zeile 127: | ||
FW_pO "</div>"; | FW_pO "</div>"; | ||
FW_pO "</div>" if($hasMenuScroll); | FW_pO "</div>" if($hasMenuScroll); | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | Bei mir sieht das Ergebnis dann so aus. | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:600px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">Quellcode fhem.html (Auszug roomBlock1-3)</div> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="html" line> | ||
+ | <div id="menuScrollArea"> | ||
+ | <div><a onClick="location.href='/fhem?'"><div id="logo"></div></a></div> | ||
+ | <div id="menu"> | ||
+ | <table> | ||
+ | <tr><td><table class="room roomBlock1"> | ||
+ | <tr><td><div class="menu_LEUCHTEN"><a onClick="location.href='/fhem?room=LEUCHTEN'"><img class='icon icoBELEUCHTUNG' src="/fhem/images/default/icoBELEUCHTUNG.png" alt="icoBELEUCHTUNG" title="icoBELEUCHTUNG"> <span>LEUCHTEN</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_ROLLLADEN"><a onClick="location.href='/fhem?room=ROLLLADEN'"><img class='icon icoROLLLADEN' src="/fhem/images/user_icons/icoROLLLADEN.png" alt="icoROLLLADEN" title="icoROLLLADEN"> <span>ROLLLADEN</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_AUSSEN"><a onClick="location.href='/fhem?room=AUSSEN'"><img class='icon icoAUSSEN' src="/fhem/images/default/icoAUSSEN.png" alt="icoAUSSEN" title="icoAUSSEN"> <span>AUSSEN</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_KLIMA"><a onClick="location.href='/fhem?room=KLIMA'"><img class='icon icoTemp' src="/fhem/images/default/icoTemp.png" alt="icoTemp" title="icoTemp"> <span>KLIMA</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_HAUST__R"><a onClick="location.href='/fhem?room=HAUST%c3%9cR'"><img class='icon icoHouse' src="/fhem/images/default/icoHouse.png" alt="icoHouse" title="icoHouse"> <span>HAUSTÜR</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_HEIZUNG"><a onClick="location.href='/fhem?room=HEIZUNG'"><img class='icon icoHEIZUNG' src="/fhem/images/default/icoHEIZUNG.png" alt="icoHEIZUNG" title="icoHEIZUNG"> <span>HEIZUNG</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_MULTIMEDIA"><a onClick="location.href='/fhem?room=MULTIMEDIA'"><img class='icon icoAUDIOVIDEO' src="/fhem/images/user_icons/icoAUDIOVIDEO.png" alt="icoAUDIOVIDEO" title="icoAUDIOVIDEO"> <span>MULTIMEDIA</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr class="sel"><td><div class="menu_SYSTEM__gt_Interfaces"><a onClick="location.href='/fhem?room=SYSTEM%2d%3eInterfaces'"><span>SYSTEM->Interfaces</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_SYSTEM__gt_LOGO_"><a onClick="location.href='/fhem?room=SYSTEM%2d%3eLOGO%21'"><span>SYSTEM->LOGO!</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Schaltuhren"><a onClick="location.href='/fhem?room=Schaltuhren'"><img class='icon icoUhr' src="/fhem/images/default/icoUhr.png" alt="icoUhr" title="icoUhr"> <span>Schaltuhren</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Z__hler"><a onClick="location.href='/fhem?room=Z%c3%a4hler'"><img class='icon icoZAEHLER' src="/fhem/images/user_icons/icoZAEHLER.png" alt="icoZAEHLER" title="icoZAEHLER"> <span>Zähler</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Everything"><a onClick="location.href='/fhem?room=all'"><img class='icon icoEverything' src="/fhem/images/default/icoEverything.png" alt="icoEverything" title="icoEverything"> <span>Everything</span></a></div></td> | ||
+ | </tr> | ||
+ | </table></td></tr> | ||
+ | <tr><td><table class="room roomBlock2"> | ||
+ | <tr><td><div class="menu_Logfile"><a onClick="location.href='/fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2022-09.log'"><span>Logfile</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div><a href='/fhem/docs/commandref.html' target="_blank"><span>Commandref</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div><a href='http://fhem.de/fhem.html#Documentation' target="_blank"><span>Remote doc</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Edit_files"><a onClick="location.href='/fhem?cmd=style%20list'"><span>Edit files</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Select_style"><a onClick="location.href='/fhem?cmd=style%20select'"><span>Select style</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu_Event_monitor"><a onClick="location.href='/fhem?cmd=style%20eventMonitor'"><span>Event monitor</span></a></div></td> | ||
+ | </tr> | ||
+ | </table></td></tr> | ||
+ | <tr><td><table class="room roomBlock3"> | ||
+ | <tr><td><div><a href='http://fhem.de' ><span>fhem.de</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div><a href='http://culfw.de' ><span> | ||
+ | culfw.de</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div><a href='http://fhem.clx.local:8083/fhem?cmd=style%20iconFor' ><span> | ||
+ | Icons</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu__________________________restart"><a onClick="location.href='/fhem?cmd=shutdown+restart&fwcsrf=csrf_932432427076413'"><span> | ||
+ | restart</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu__________________________rereadcfg"><a onClick="location.href='/fhem?cmd=rereadcfg&fwcsrf=csrf_932432427076413'"><span> | ||
+ | rereadcfg</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div class="menu__________________________rereadicons"><a onClick="location.href='/fhem?cmd=set WEB rereadicons&fwcsrf=csrf_932432427076413'"><span> | ||
+ | rereadicons</span></a></div></td> | ||
+ | </tr> | ||
+ | <tr><td><div><a href='http://fhem.clx.local:8083/fhem/ftui/index.html' ><span> | ||
+ | FTUI</span></a></div></td> | ||
+ | </tr> | ||
+ | </table></td></tr> | ||
+ | </table> | ||
+ | </div> | ||
+ | </div> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div></div> | </div></div> |
Version vom 11. September 2022, 11:21 Uhr
Hab mal wieder einen Volltreffer gelandet. Weil die Raeume im FHEMWEB zu viele wurden, aber auch nicht mit "hiddenroom" unterdrueckt werden sollten. Wollte ich mal 'Room in Room' aussprobieren. Leider scheint das nicht zu funktionieren (Stand fhem 6.0). Aus der Commandref geht eine Alternative hervor. Und zwar wenn man im Raumnamen eine '->' verwendet fuehrt das dazu, dass im FHEM-Roommenue aufklappbare Unterraeume (die nach dem ->) angezeigt werden. Man kann also keinen kompletten bestehenden Raum einem anderen Raum zuordnen, sondern man ist gezwungen alle Devices den neuen Raumnamen zuzuordnen. Ein unschoener Effekt ist es, dass der der uebergeordnete Raumname kein Icon mehr hat.
Dies bestatigt diese Forums-Nachfrage.
Ein Blick in den Quellcode von 01_FHEMWEB.pm zeigt:
1 ##########################
2 # Rooms and other links
3 foreach my $r (@FW_roomsArr) { # das array mit den raumnamen wird nacheinander durchlaufen, in Variablen r steht der aktuell zu pruefende Raumname
4 next if($r eq "hidden" || $FW_hiddenroom{$r}); # ist der Raum hidden geh zu naechsten = tue nichts mit diesem Raum
5 $FW_room = AttrVal($FW_wname, "defaultRoom", $r)
6 if(!$FW_room && $FW_ss);
7 if(my $devspec = $FW_extraRooms{$r}) {
8 my $r = $r;
9 $r =~ s/ / /g; # ersetze alle NoBreakSpaces durch Leerzeichen
10 push @list1, FW_htmlEscape($r);
11 push @list2, "$FW_ME?room=".urlEncode($devspec); # da habe ich noch keine Idee zu
12 } else {
13 push @list1, FW_htmlEscape($r);
14 push @list2, "$FW_ME?room=".urlEncode($r);
15 }
16
17 }
18 my $sfx = AttrVal("global", "language", "EN");
19 $sfx = ($sfx eq "EN" ? "" : "_$sfx"); # wenn die eingestellte Sprache EN ist , dann ist sfx leer; es wird also z.B: an den Dateinamen commandref nichts angehaengt (sfx steht fuer suffix)
20 my @list = ( # das ist wohl die Standard Ausgangsliste; interassant: Everything gehoert zum Raummenue und der Rest zum (Name?)-Menue darunter
21 "Everything", "$FW_ME?room=all",
22 "", "",
23 "Commandref", "$FW_ME/docs/commandref${sfx}.html",
24 "Remote doc", "http://fhem.de/fhem.html#Documentation",
25 "Edit files", "$FW_ME?cmd=style%20list",
26 "Select style", "$FW_ME?cmd=style%20select",
27 "Event monitor", "$FW_ME?cmd=style%20eventMonitor",
28 "", "");
29 my $lastname = ","; # Avoid double "".
30
31 my $lfn = "Logfile";
32 if($defs{$lfn}) { # Add the current Logfile to the list if defined
33 my @l = FW_fileList($defs{$lfn}{logfile},1);
34 my $fn = pop @l;
35 splice @list, 4,0, ("Logfile",
36 "$FW_ME/FileLog_logWrapper?dev=$lfn&type=text&file=$fn"); # fuege den Logfile-Eintrag vor dem Eintrag Commandref ein (wenn definiert)
37 }
38 # die menuEntries sind der dritte Block (Rooms, (Name?)-Menue, menuEntries)
39 my @me = split(",", AttrVal($FW_wname, "menuEntries", "")); # die menuEntries sind eine komma-separierte Liste von Eintraegen der Art Menuname,Kommando
40 push @list, @me, "", "" if(@me); # Die Eintragungen werden angehaengt "","" ist jeweils der Block-Abschluss, bzw. Separator
41
42 for(my $idx = 0; $idx < @list; $idx+= 2) { # haenge die Kommandoliste an die Raumliste an
43 next if($FW_hiddenroom{$list[$idx]} || $list[$idx] eq $lastname);
44 push @list1, $list[$idx]; # in list1 stehen die Menunamen und in list zwie die Aktionen
45 push @list2, $list[$idx+1];
46 $lastname = $list[$idx];
47 }
48
49 FW_pO "<div id=\"menu\">";
50 FW_pO "<table>";
51 if($FW_ss) { # Make a selection sensitive dropdown list
52 FW_pO "<tr><td><select OnChange=\"location.href=" .
53 "this.options[this.selectedIndex].value\">";
54 foreach(my $idx = 0; $idx < @list1; $idx++) {
55 next if(!$list1[$idx]);
56 my $sel = ($list1[$idx] eq $FW_room ? " selected=\"selected\"" : "");
57 FW_pO "<option value='$list2[$idx]'$sel>$list1[$idx]</option>";
58 }
59 FW_pO "</select></td>";
60 FW_pO "</tr>";
61
62 } else {
63
64 my $tblnr = 1;
65 my $roomEscaped = FW_htmlEscape($FW_room);
66 my $current;
67 $current = "$FW_ME?room=".urlEncode($FW_room) if($FW_room);
68 $current = "$FW_ME?cmd=".urlEncode($cmd) if($cmd);
69 foreach(my $idx = 0; $idx < @list1; $idx++) {
70 my ($l1, $l2) = ($list1[$idx], $list2[$idx]);
71 if(!$l1) {
72 FW_pO "</table></td></tr>" if($idx);
73 if($idx<int(@list1)-1) {
74 FW_pO "<tr><td><table class=\"room roomBlock$tblnr\">";
75 $tblnr++;
76 }
77
78 } else {
79 FW_pF "<tr%s>", ($current && $current eq $l2) ? " class=\"sel\"" : "";
80
81 my $class = "menu_$l1";
82 $class =~ s/[^A-Z0-9]/_/gi;
83
84 # image tag if we have an icon, else empty
85 my $icoName = "ico$l1";
86 map { my ($n,$v) = split(":",$_); $icoName=$v if($l1 =~ m/^$n$/); }
87 split(" ", AttrVal($FW_wname, "roomIcons", ""));
88 my $icon = FW_iconName($icoName) ?
89 FW_makeImage($icoName,$icoName,"icon")." " : "";
90
91 if($l1 eq "Save config") {
92 $l1 .= '</span></a> '.
93 '<a id="saveCheck" class="changed" style="visibility:'.
94 (int(@structChangeHist) ? 'visible' : 'hidden').'"><span>?';
95 }
96
97 # Force external browser if FHEMWEB is installed as an offline app.
98 my $target = ''; # Forum 33066, 39854
99 $target = 'target="_blank"' if($l2 =~ s/^$FW_ME\/\+/$FW_ME\//);
100 $target = 'target="_blank"' if($l2 =~ m/commandref|fhem.de.fhem.html/);
101 if($l2 =~ m/.html$/ || $l2 =~ m/^(http|javascript)/ || length($target)){
102 FW_pO "<td><div><a href='$l2' $target>$icon<span>$l1</span></a>".
103 "</div></td>";
104 } else {
105 FW_pH $l2, "$icon<span>$l1</span>", 1, $class;
106 }
107
108 FW_pO "</tr>";
109 }
110 }
111
112 }
113 FW_pO "</table>";
114 FW_pO "</div>";
115 FW_pO "</div>" if($hasMenuScroll);
Bei mir sieht das Ergebnis dann so aus.
1 <div id="menuScrollArea">
2 <div><a onClick="location.href='/fhem?'"><div id="logo"></div></a></div>
3 <div id="menu">
4 <table>
5 <tr><td><table class="room roomBlock1">
6 <tr><td><div class="menu_LEUCHTEN"><a onClick="location.href='/fhem?room=LEUCHTEN'"><img class='icon icoBELEUCHTUNG' src="/fhem/images/default/icoBELEUCHTUNG.png" alt="icoBELEUCHTUNG" title="icoBELEUCHTUNG"> <span>LEUCHTEN</span></a></div></td>
7 </tr>
8 <tr><td><div class="menu_ROLLLADEN"><a onClick="location.href='/fhem?room=ROLLLADEN'"><img class='icon icoROLLLADEN' src="/fhem/images/user_icons/icoROLLLADEN.png" alt="icoROLLLADEN" title="icoROLLLADEN"> <span>ROLLLADEN</span></a></div></td>
9 </tr>
10 <tr><td><div class="menu_AUSSEN"><a onClick="location.href='/fhem?room=AUSSEN'"><img class='icon icoAUSSEN' src="/fhem/images/default/icoAUSSEN.png" alt="icoAUSSEN" title="icoAUSSEN"> <span>AUSSEN</span></a></div></td>
11 </tr>
12 <tr><td><div class="menu_KLIMA"><a onClick="location.href='/fhem?room=KLIMA'"><img class='icon icoTemp' src="/fhem/images/default/icoTemp.png" alt="icoTemp" title="icoTemp"> <span>KLIMA</span></a></div></td>
13 </tr>
14 <tr><td><div class="menu_HAUST__R"><a onClick="location.href='/fhem?room=HAUST%c3%9cR'"><img class='icon icoHouse' src="/fhem/images/default/icoHouse.png" alt="icoHouse" title="icoHouse"> <span>HAUSTÜR</span></a></div></td>
15 </tr>
16 <tr><td><div class="menu_HEIZUNG"><a onClick="location.href='/fhem?room=HEIZUNG'"><img class='icon icoHEIZUNG' src="/fhem/images/default/icoHEIZUNG.png" alt="icoHEIZUNG" title="icoHEIZUNG"> <span>HEIZUNG</span></a></div></td>
17 </tr>
18 <tr><td><div class="menu_MULTIMEDIA"><a onClick="location.href='/fhem?room=MULTIMEDIA'"><img class='icon icoAUDIOVIDEO' src="/fhem/images/user_icons/icoAUDIOVIDEO.png" alt="icoAUDIOVIDEO" title="icoAUDIOVIDEO"> <span>MULTIMEDIA</span></a></div></td>
19 </tr>
20 <tr class="sel"><td><div class="menu_SYSTEM__gt_Interfaces"><a onClick="location.href='/fhem?room=SYSTEM%2d%3eInterfaces'"><span>SYSTEM->Interfaces</span></a></div></td>
21 </tr>
22 <tr><td><div class="menu_SYSTEM__gt_LOGO_"><a onClick="location.href='/fhem?room=SYSTEM%2d%3eLOGO%21'"><span>SYSTEM->LOGO!</span></a></div></td>
23 </tr>
24 <tr><td><div class="menu_Schaltuhren"><a onClick="location.href='/fhem?room=Schaltuhren'"><img class='icon icoUhr' src="/fhem/images/default/icoUhr.png" alt="icoUhr" title="icoUhr"> <span>Schaltuhren</span></a></div></td>
25 </tr>
26 <tr><td><div class="menu_Z__hler"><a onClick="location.href='/fhem?room=Z%c3%a4hler'"><img class='icon icoZAEHLER' src="/fhem/images/user_icons/icoZAEHLER.png" alt="icoZAEHLER" title="icoZAEHLER"> <span>Zähler</span></a></div></td>
27 </tr>
28 <tr><td><div class="menu_Everything"><a onClick="location.href='/fhem?room=all'"><img class='icon icoEverything' src="/fhem/images/default/icoEverything.png" alt="icoEverything" title="icoEverything"> <span>Everything</span></a></div></td>
29 </tr>
30 </table></td></tr>
31 <tr><td><table class="room roomBlock2">
32 <tr><td><div class="menu_Logfile"><a onClick="location.href='/fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2022-09.log'"><span>Logfile</span></a></div></td>
33 </tr>
34 <tr><td><div><a href='/fhem/docs/commandref.html' target="_blank"><span>Commandref</span></a></div></td>
35 </tr>
36 <tr><td><div><a href='http://fhem.de/fhem.html#Documentation' target="_blank"><span>Remote doc</span></a></div></td>
37 </tr>
38 <tr><td><div class="menu_Edit_files"><a onClick="location.href='/fhem?cmd=style%20list'"><span>Edit files</span></a></div></td>
39 </tr>
40 <tr><td><div class="menu_Select_style"><a onClick="location.href='/fhem?cmd=style%20select'"><span>Select style</span></a></div></td>
41 </tr>
42 <tr><td><div class="menu_Event_monitor"><a onClick="location.href='/fhem?cmd=style%20eventMonitor'"><span>Event monitor</span></a></div></td>
43 </tr>
44 </table></td></tr>
45 <tr><td><table class="room roomBlock3">
46 <tr><td><div><a href='http://fhem.de' ><span>fhem.de</span></a></div></td>
47 </tr>
48 <tr><td><div><a href='http://culfw.de' ><span>
49 culfw.de</span></a></div></td>
50 </tr>
51 <tr><td><div><a href='http://fhem.clx.local:8083/fhem?cmd=style%20iconFor' ><span>
52 Icons</span></a></div></td>
53 </tr>
54 <tr><td><div class="menu__________________________restart"><a onClick="location.href='/fhem?cmd=shutdown+restart&fwcsrf=csrf_932432427076413'"><span>
55 restart</span></a></div></td>
56 </tr>
57 <tr><td><div class="menu__________________________rereadcfg"><a onClick="location.href='/fhem?cmd=rereadcfg&fwcsrf=csrf_932432427076413'"><span>
58 rereadcfg</span></a></div></td>
59 </tr>
60 <tr><td><div class="menu__________________________rereadicons"><a onClick="location.href='/fhem?cmd=set WEB rereadicons&fwcsrf=csrf_932432427076413'"><span>
61 rereadicons</span></a></div></td>
62 </tr>
63 <tr><td><div><a href='http://fhem.clx.local:8083/fhem/ftui/index.html' ><span>
64 FTUI</span></a></div></td>
65 </tr>
66 </table></td></tr>
67 </table>
68 </div>
69 </div>
Die automatische Aktualisierung der Kommentare aktivieren.