mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-23 08:36:24 +00:00
01_FHEMWEB.pm: extraRooms from justme1968 (Forum #97351)
git-svn-id: https://svn.fhem.de/fhem/trunk@18627 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e8e15bab8e
commit
5c862301b4
@ -108,6 +108,7 @@ my %FW_icons; # List of icons
|
|||||||
my @FW_iconDirs; # Directory search order for icons
|
my @FW_iconDirs; # Directory search order for icons
|
||||||
my $FW_RETTYPE; # image/png or the like
|
my $FW_RETTYPE; # image/png or the like
|
||||||
my %FW_rooms; # hash of all rooms
|
my %FW_rooms; # hash of all rooms
|
||||||
|
my %FW_extraRooms; # hash of extra rooms
|
||||||
my @FW_roomsArr; # ordered list of rooms
|
my @FW_roomsArr; # ordered list of rooms
|
||||||
my %FW_groups; # hash of all groups
|
my %FW_groups; # hash of all groups
|
||||||
my %FW_types; # device types, for sorting
|
my %FW_types; # device types, for sorting
|
||||||
@ -167,6 +168,7 @@ FHEMWEB_Initialize($)
|
|||||||
editFileList:textField-long
|
editFileList:textField-long
|
||||||
endPlotNow:1,0
|
endPlotNow:1,0
|
||||||
endPlotToday:1,0
|
endPlotToday:1,0
|
||||||
|
extraRooms:textField-long
|
||||||
forbiddenroom
|
forbiddenroom
|
||||||
fwcompress:0,1
|
fwcompress:0,1
|
||||||
hiddengroup
|
hiddengroup
|
||||||
@ -1253,6 +1255,19 @@ FW_updateHashes()
|
|||||||
$FW_types{$d} = $t;
|
$FW_types{$d} = $t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
%FW_extraRooms = ();
|
||||||
|
if(my $extra = AttrVal($FW_wname, "extraRooms", undef)) {
|
||||||
|
foreach my $room (split(/ |\n/, $extra)) {
|
||||||
|
next if(!$room || $room =~ /^#/);
|
||||||
|
$room =~ m/name=([^:]+):devspec=([^\s]+)/;
|
||||||
|
my $r = $1;
|
||||||
|
my $d = "#devspec=$2";
|
||||||
|
$FW_rooms{$r}{$d} = 1;
|
||||||
|
$FW_extraRooms{$r} = $d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$FW_room = AttrVal($FW_detail, "room", "Unsorted") if($FW_detail);
|
$FW_room = AttrVal($FW_detail, "room", "Unsorted") if($FW_detail);
|
||||||
|
|
||||||
if(AttrVal($FW_wname, "sortRooms", "")) { # Slow!
|
if(AttrVal($FW_wname, "sortRooms", "")) { # Slow!
|
||||||
@ -1605,8 +1620,16 @@ FW_roomOverview($)
|
|||||||
next if($r eq "hidden" || $FW_hiddenroom{$r});
|
next if($r eq "hidden" || $FW_hiddenroom{$r});
|
||||||
$FW_room = AttrVal($FW_wname, "defaultRoom", $r)
|
$FW_room = AttrVal($FW_wname, "defaultRoom", $r)
|
||||||
if(!$FW_room && $FW_ss);
|
if(!$FW_room && $FW_ss);
|
||||||
push @list1, FW_htmlEscape($r);
|
if(my $devspec = $FW_extraRooms{$r}) {
|
||||||
push @list2, "$FW_ME?room=".urlEncode($r);
|
my $r = $r;
|
||||||
|
$r =~ s/ / /g;
|
||||||
|
push @list1, FW_htmlEscape($r);
|
||||||
|
push @list2, "$FW_ME?room=".urlEncode($devspec);
|
||||||
|
} else {
|
||||||
|
push @list1, FW_htmlEscape($r);
|
||||||
|
push @list2, "$FW_ME?room=".urlEncode($r);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
my $sfx = AttrVal("global", "language", "EN");
|
my $sfx = AttrVal("global", "language", "EN");
|
||||||
$sfx = ($sfx eq "EN" ? "" : "_$sfx");
|
$sfx = ($sfx eq "EN" ? "" : "_$sfx");
|
||||||
@ -1656,6 +1679,9 @@ FW_roomOverview($)
|
|||||||
|
|
||||||
my $tblnr = 1;
|
my $tblnr = 1;
|
||||||
my $roomEscaped = FW_htmlEscape($FW_room);
|
my $roomEscaped = FW_htmlEscape($FW_room);
|
||||||
|
my $current;
|
||||||
|
$current = "$FW_ME?room=".urlEncode($FW_room) if($FW_room);
|
||||||
|
$current = "$FW_ME?cmd=".urlEncode($cmd) if($cmd);
|
||||||
foreach(my $idx = 0; $idx < @list1; $idx++) {
|
foreach(my $idx = 0; $idx < @list1; $idx++) {
|
||||||
my ($l1, $l2) = ($list1[$idx], $list2[$idx]);
|
my ($l1, $l2) = ($list1[$idx], $list2[$idx]);
|
||||||
if(!$l1) {
|
if(!$l1) {
|
||||||
@ -1666,7 +1692,7 @@ FW_roomOverview($)
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
FW_pF "<tr%s>", $l1 eq $roomEscaped ? " class=\"sel\"" : "";
|
FW_pF "<tr%s>", ($current && $current eq $l2) ? " class=\"sel\"" : "";
|
||||||
|
|
||||||
my $class = "menu_$l1";
|
my $class = "menu_$l1";
|
||||||
$class =~ s/[^A-Z0-9]/_/gi;
|
$class =~ s/[^A-Z0-9]/_/gi;
|
||||||
@ -2719,6 +2745,14 @@ FW_Attr(@)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($attrName eq "extraRooms") {
|
||||||
|
foreach my $room (split(/ |\n/, $param[0])) {
|
||||||
|
next if(!$room || $room =~ /^#/);
|
||||||
|
return "Bad extraRooms entry $room, not name=<name>:devspec=<devspec>"
|
||||||
|
if($room !~ m/name=([^:]+):devspec=([^\s]+)/);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($attrName eq "longpoll" && $type eq "set" && $param[0] eq "websocket") {
|
if($attrName eq "longpoll" && $type eq "set" && $param[0] eq "websocket") {
|
||||||
return "$devName: Could not load Digest::SHA on startup, no websocket"
|
return "$devName: Could not load Digest::SHA on startup, no websocket"
|
||||||
if(!$FW_use{sha});
|
if(!$FW_use{sha});
|
||||||
@ -3702,6 +3736,17 @@ FW_show($$)
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<a name="extraRooms"></a>
|
||||||
|
<li>extraRooms<br>
|
||||||
|
Space or newline separated list of dynamic rooms to add to the room
|
||||||
|
list.<br>
|
||||||
|
Example:<br>
|
||||||
|
attr WEB extraRooms
|
||||||
|
name=open:devspec=contact=open.*
|
||||||
|
name=closed:devspec=contact=closed.*
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a name="forbiddenroom"></a>
|
<a name="forbiddenroom"></a>
|
||||||
<li>forbiddenroom<br>
|
<li>forbiddenroom<br>
|
||||||
just like hiddenroom (see below), but accessing the room or the
|
just like hiddenroom (see below), but accessing the room or the
|
||||||
@ -4124,15 +4169,6 @@ FW_show($$)
|
|||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="cmdshow"></a>
|
|
||||||
<h3>show</h3>
|
|
||||||
<ul>
|
|
||||||
<code>show [devspec]</code><br>
|
|
||||||
<br><br>
|
|
||||||
Show a temporary room with devices from <devspec><br>
|
|
||||||
Note: this command is only available through the FHEMWEB interface
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
=end html
|
=end html
|
||||||
|
|
||||||
=begin html_DE
|
=begin html_DE
|
||||||
@ -4431,6 +4467,17 @@ FW_show($$)
|
|||||||
am aktuellen Tag, sonst wird die aktuelle Woche/Monat angezeigt.
|
am aktuellen Tag, sonst wird die aktuelle Woche/Monat angezeigt.
|
||||||
</li><br>
|
</li><br>
|
||||||
|
|
||||||
|
<a name="extraRooms"></a>
|
||||||
|
<li>extraRooms<br>
|
||||||
|
Durch Leerzeichen oder Zeilenumbruch getrennte Liste von dynamischen
|
||||||
|
Räumen, die zusätzlich angezeigt werden sollen.
|
||||||
|
Beispiel:<br>
|
||||||
|
attr WEB extraRooms
|
||||||
|
name=Offen:devspec=contact=open.*
|
||||||
|
name=Geschlossen:devspec=contact=closed.*
|
||||||
|
</li><br>
|
||||||
|
|
||||||
|
|
||||||
<a name="forbiddenroom"></a>
|
<a name="forbiddenroom"></a>
|
||||||
<li>forbiddenroom<br>
|
<li>forbiddenroom<br>
|
||||||
Wie hiddenroom, aber der Zugriff auf die Raum- oder Detailansicht
|
Wie hiddenroom, aber der Zugriff auf die Raum- oder Detailansicht
|
||||||
@ -4854,16 +4901,6 @@ FW_show($$)
|
|||||||
</ul></li>
|
</ul></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="cmdshow"></a>
|
|
||||||
<h3>show</h3>
|
|
||||||
<ul>
|
|
||||||
<code>show [devspec]</code><br>
|
|
||||||
<br><br>
|
|
||||||
Zeigt einen temporären Raum mit dem Inhalt der <devspec><br>
|
|
||||||
Achtung: dieser Befehl steht nur über das FHEMWEB Interface zur
|
|
||||||
Verfügung.
|
|
||||||
</ul>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
=end html_DE
|
=end html_DE
|
||||||
|
@ -67,7 +67,8 @@
|
|||||||
<a href="#setdefaultattr">setdefaultattr</a> <!-- define a default attribute -->
|
<a href="#setdefaultattr">setdefaultattr</a> <!-- define a default attribute -->
|
||||||
<a href="#setreading">setreading</a> <!-- set a reading for a FHEM device -->
|
<a href="#setreading">setreading</a> <!-- set a reading for a FHEM device -->
|
||||||
<a href="#setstate">setstate</a> <!-- set the main state of a FHEM device -->
|
<a href="#setstate">setstate</a> <!-- set the main state of a FHEM device -->
|
||||||
<a href="#setuuid">setuuid</a> <!-- set the FUUID internal -->
|
<a href="#setuuid">setuuid</a> <!-- set the FUUID internal -->
|
||||||
|
<a href="#show">show</a> <!-- show temporary room (FHEMWEN only) -->
|
||||||
<a href="#shutdown">shutdown</a> <!-- shut down (terminate) FHEM -->
|
<a href="#shutdown">shutdown</a> <!-- shut down (terminate) FHEM -->
|
||||||
<a href="#sleep">sleep</a> <!-- sleep (delay execution) for a while -->
|
<a href="#sleep">sleep</a> <!-- sleep (delay execution) for a while -->
|
||||||
<a href="#trigger">trigger</a> <!-- generate a FHEM event -->
|
<a href="#trigger">trigger</a> <!-- generate a FHEM event -->
|
||||||
@ -1308,6 +1309,21 @@ The following local attributes are used by a wider range of devices:
|
|||||||
</ul>
|
</ul>
|
||||||
<!-- setstate end -->
|
<!-- setstate end -->
|
||||||
|
|
||||||
|
<a name="show"></a>
|
||||||
|
<h3>show</h3>
|
||||||
|
<ul>
|
||||||
|
<code>show <devspec></code>
|
||||||
|
<br><br>
|
||||||
|
show a temporary room with devices from <devspec>. The command ist only
|
||||||
|
available through FHEMWEB.<br> See the <a href="#devspec">Device
|
||||||
|
specification</a> section for details on <devspec>.
|
||||||
|
<br><br>
|
||||||
|
Example:
|
||||||
|
<ul>
|
||||||
|
<code>show TYPE=CUL_HM</code><br>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
<!-- show end -->
|
||||||
|
|
||||||
<a name="shutdown"></a>
|
<a name="shutdown"></a>
|
||||||
<h3>shutdown</h3>
|
<h3>shutdown</h3>
|
||||||
|
@ -69,6 +69,7 @@
|
|||||||
<a href="#setreading">setreading</a> <!-- setzt ein Reading für ein FHEM Gerät -->
|
<a href="#setreading">setreading</a> <!-- setzt ein Reading für ein FHEM Gerät -->
|
||||||
<a href="#setstate">setstate</a> <!-- setzt den Status eines FHEM Geräes -->
|
<a href="#setstate">setstate</a> <!-- setzt den Status eines FHEM Geräes -->
|
||||||
<a href="#setuuid">setuuid</a> <!-- setzt den internen FUUID Wert -->
|
<a href="#setuuid">setuuid</a> <!-- setzt den internen FUUID Wert -->
|
||||||
|
<a href="#show">show</a> <!-- zeigt tempor&aunl;ren Raum. nur in FHEMWB -->
|
||||||
<a href="#shutdown">shutdown</a> <!-- beendet FHEM -->
|
<a href="#shutdown">shutdown</a> <!-- beendet FHEM -->
|
||||||
<a href="#sleep">sleep</a> <!-- verzögerte Ausführung -->
|
<a href="#sleep">sleep</a> <!-- verzögerte Ausführung -->
|
||||||
<a href="#trigger">trigger</a> <!-- generiert ein FHEM Event -->
|
<a href="#trigger">trigger</a> <!-- generiert ein FHEM Event -->
|
||||||
@ -1391,6 +1392,23 @@ Die folgenden lokalen Attribute werden von mehreren Geräten verwendet:
|
|||||||
</ul>
|
</ul>
|
||||||
<!-- setstate end -->
|
<!-- setstate end -->
|
||||||
|
|
||||||
|
<a name="show"></a>
|
||||||
|
<h3>show</h3>
|
||||||
|
<ul>
|
||||||
|
<code>show <devspec></code>
|
||||||
|
<br><br>
|
||||||
|
Zeigt einen temporären Raum mit Geräten aus <devspec>,
|
||||||
|
verfügbar nur über FHEMWEB.<br> Siehe den Abschnitt über <a
|
||||||
|
href="#devspec">Geräte-Spezifikation</a> für Details der
|
||||||
|
<devspec>.<br>
|
||||||
|
<br><br>
|
||||||
|
Example:
|
||||||
|
<ul>
|
||||||
|
<code>show TYPE=CUL_HM</code><br>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
<!-- show end -->
|
||||||
|
|
||||||
<a name="shutdown"></a>
|
<a name="shutdown"></a>
|
||||||
<h3>shutdown</h3>
|
<h3>shutdown</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user