Ich hab da einen Vorschlag für die Erweiterung vom Modul "01_FHEMWEB.pm".
Könnte man nicht die Definition des Attributs "motd" dahingehend erweitern, dass es den "Default" Raum enthalten darf, der angezeigt wird beim Betreten der FHEM Oberfläche?
Ich teste es hier gerade seit 2 Wochen und finde es sehr angenehm und deutlich besser als <script>window.location.href='/fhem?room=Zentrale';</scipt>
und funktioniert über meine 4 FHEMWEB-Instanzen (die Javascript Lösung leider nicht).
Code-technisch bedarf es nur 4 Codezeilen (falls man als magic Tag z.b. "room=<x>;" nutzt:
AttrVal("global", "motd", "none") ne "none") {
my $motd = AttrVal("global","motd",undef);
+ if (($FW_room)=($motd=~/^room=(.*);/)) {
+ FW_showRoom();
+ } else {
$motd =~ s/\n/<br>/g;
FW_pO "<div id=\"content\">$motd</div>";
+ }
}
Dumme Idee?
Ja, aus zwei Gruenden:
1. es ist nicht intuitiv
2. zerstoert die urspruengliche Funktionalitaet (eine Meldung anzuzeigen)
Warum will man sowas haben, wo doch so hervorragende Bookmark-Moeglichkeiten gibt?
Zitat
Warum will man sowas haben, wo doch so hervorragende Bookmark-Moeglichkeiten gibt?
Weil verschiedene Kommandos immer wieder auf diese Seite führen (z.B. weblink-Kommandos, Save config).
Zitat
2. zerstoert die urspruengliche Funktionalitaet (eine Meldung anzuzeigen)
Ich muss zugestehen, für diese Funktionalität fehlt mir noch der Anwendungsfall. Um eine statische Meldung auf einer Seite zu platzieren, gibt es andere Kommandos. Die erscheinen dann auch dort, wo ich es möchte.
Die Meldung "motd" erscheint meiner intuitiven Wahrnehmung nach zufälligen Aktionen, z.B. einen Weblink anklicken.
Gibt es eine Chance auf Übernahme wenn es als Attribut an einer FHEMWEB-Instanz realsiert wird?
Ja.
Hier die Implementierung auf dem aktuellen 01_FHEMWEB mittels eines neuen Attributs "defaultRoom" an der jeweiligen FHEMWEB-Instanz.
Das Attribut "defaultRoom" hat bei dieser Implementierung Vorrang vor dem Attribut "motd".
--- BK/01_FHEMWEB_original.pm 2014-02-16 11:38:57.682960417 +0100
+++ 01_FHEMWEB.pm 2014-02-16 11:53:06.379684982 +0100
@@ -125,6 +125,7 @@
basicAuth
basicAuthMsg
column
+ defaultRoom
endPlotNow:1,0
endPlotToday:1,0
fwcompress:0,1
@@ -657,6 +658,12 @@
elsif($FW_room) { FW_showRoom(); }
elsif(!$FW_cmdret &&
!$FW_contentFunc &&
+ AttrVal($FW_wname, "defaultRoom", "") ne '') {
+ $FW_room = AttrVal($FW_wname, "defaultRoom", "");
+ FW_showRoom();
+ }
+ elsif(!$FW_cmdret &&
+ !$FW_contentFunc &&
AttrVal("global", "motd", "none") ne "none") {
my $motd = AttrVal("global","motd",undef);
$motd =~ s/\n/<br>/g;
@@ -2756,6 +2763,14 @@
attr WEB sortRooms DG OG EG Keller
</li>
<br>
+
+ <a name="defaultRoom"></a>
+ <li>defaultRoom<br>
+ show the specified room if no room selected, f.e. on execution of some commands.
+ if set hides the <a href="#motd">motd</a>. Example:<br>
+ attr WEB defaultRoom Zentrale
+ </li>
+ <br>
<a name="sortby"></a>
<li>sortby<br>
Akzeptiert, wenn sourceforge nicht mehr zickt, dann wird es eingecheckt.
Funktioniert.
Jedoch nicht ein defaultroom="Floorplan/Tablet1" ?
Wäre für die Instanz "Webtablet" hilfreich. :)