2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

hiddenroom added, Multi-room documented

git-svn-id: https://svn.fhem.de/fhem/trunk@1002 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2011-09-14 14:47:36 +00:00
parent 74ca0fc47a
commit e80abc7e1e
2 changed files with 137 additions and 69 deletions

View File

@ -151,6 +151,8 @@
<a href="#dumpdef">dumpdef</a> &nbsp;
<a href="#holiday">holiday</a> &nbsp;
<a href="#notify">notify</a> &nbsp;
<a href="#sequence">sequence</a> &nbsp;
<a href="#sequence">sequence</a> &nbsp;
<a href="#structure">structure</a> &nbsp;
<a href="#watchdog">watchdog</a> &nbsp;
<a href="#weblink">weblink</a> &nbsp;
@ -354,8 +356,13 @@ A line ending with \ will be concatenated with the next one, so long lines
<a name="room"></a>
<li>room<br>
Filter/group devices. Recognized by web-pgm2 and web-pgm3.
Devices in the room hidden will not appear in the web output.</li>
Filter/group devices. Recognized by web-pgm2 and web-pgm3. A device
can appear in more than one room, in this case the rooms have to be
specified komma separated.<br>
Devices in the room hidden will not appear in the web output, or set
the <a href="#hiddenroom"> FHEMWEB attribute to selectively disable
rooms for certain FHEMWEB instances.
</li>
<a name="showtime"></a>
<li>showtime<br>
@ -5319,65 +5326,6 @@ The one byte hex string is generated by the Oregon sensor when is it powered on.
<b>Get</b> <ul>N/A</ul><br>
</ul>
<a name="structure"></a>
<h3>structure</h3>
<ul>
<br>
<a name="structuredefine"></a>
<b>Define</b>
<ul>
<code>define &lt;name&gt; structure &lt;struct_type&gt; &lt;dev1&gt; &lt;dev2&gt; ...</code>
<br><br>
The structure device is used to organize/structure a devices in order to
set groups of them at once (e.g. switching everything off in a house).<br>
The list of attached devices can be modified through the addstruct /
delstruct commands. Each attached device will get the attribute
&lt;struct_type&gt;=&lt;name&gt;<br> when it is added to the list, and the
attribute will be deleted if the device is deleted from the structure.
The structure devices can also be added to a structure, e.g. you can have
a building consisting of levels which consists of rooms of devices.
<br>
Example:<br>
<ul>
<li>define kitchen structure room lamp1 lamp2</li>
<li>addstruct kitchen TYPE=FS20</li>
<li>delstruct kitchen lamp1</li>
<li>define house structure building kitchen living</li>
<li>set house off</li>
</ul>
</ul>
<br>
<a name="structureset"></a>
<b>Set</b>
<ul>
Every set command is propagated to the attached devices. Exception: if an
attached devices has an attribute structexcluse, and the attribute value
matches (as a regexp) the name of the current structure.
</ul>
<br>
<a name="structureget"></a>
<b>Get</b>
<ul>
get is not supported through a structure device.
</ul>
<br>
<a name="structureattr"></a>
<b>Attributes</b>
<ul>
<li>structexclude<br>
exclude the device from set operations, see the set command above.</li>
</ul>
<br>
</ul>
<a name="WS2000"></a>
<h3>WS2000</h3>
<ul>
@ -6102,6 +6050,7 @@ href="http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29870">U
</ul></li>
</ul>
</li>
<a name="label"></a>
<li>label<br>
Double-Colon separated list of values. The values will be used to replace
@ -6132,15 +6081,13 @@ href="http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29870">U
</ul></li>
</ul>
</li>
<a name="title"></a>
<li>title<br>
A special form of label (see above), which replaces the string &lt;TL&gt;
in the .gplot file. It defaults to the filename of the logfile.
</li>
<a name="stylesheet"></a>
<li>stylesheet<br>
name of the alternative stylesheet file in the FHEM directory.
</li>
</ul>
<br>
@ -6363,7 +6310,20 @@ href="http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29870">U
cd certs<br>
openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
</ul>
</li><br>
<br><br>
</li>
<a name="stylesheet"></a>
<li>stylesheet<br>
name of the alternative stylesheet file in the FHEM directory.
<br><br>
</li>
<a name="hiddenroom"></a>
<li>hiddenroom<br>
Komma separated list of rooms to "hide", i.e. not to show.
<br><br>
</li>
</ul>
@ -6777,6 +6737,108 @@ href="http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29870">U
</ul>
<a name="sequence"></a>
<h3>sequence</h3>
<ul>
<br>
<a name="sequencedefine"></a>
<b>Define</b>
<ul>
<code>define &lt;name&gt; sequence &lt;re1&gt; &lt;timeout1&gt; &lt;re2&gt; [&lt;timeout2&gt; &lt;re3&gt; ...]</code>
<br><br>
A sequence is used to allow to trigger events for a certain combination of
button presses on a remote. E.g. to switch on a lamp when pressing the
Btn1:on, then Btn2:off and at last Btn1:on one after the other you could
define the following:<br>
<br>
<ul>
<code>
define lampseq sequence Btn1:on 0.5 Btn2:off 0.5 Btn1 on<br>
define lampon notify lampseq:trigger set lamp on
</code>
</ul>
</ul>
<br>
<a name="sequenceset"></a>
<b>Set</b> <ul>N/A</ul><br>
<a name="sequenceget"></a>
<b>Get</b> <ul>N/A</ul><br>
<a name="sequenceattr"></a>
<b>Attributes</b>
<ul>
<li><a href="#disable">disable</a></li>
<li><a href="#loglevel">loglevel</a></li>
</ul>
<br>
</ul>
<a name="structure"></a>
<h3>structure</h3>
<ul>
<br>
<a name="structuredefine"></a>
<b>Define</b>
<ul>
<code>define &lt;name&gt; structure &lt;struct_type&gt; &lt;dev1&gt; &lt;dev2&gt; ...</code>
<br><br>
The structure device is used to organize/structure a devices in order to
set groups of them at once (e.g. switching everything off in a house).<br>
The list of attached devices can be modified through the addstruct /
delstruct commands. Each attached device will get the attribute
&lt;struct_type&gt;=&lt;name&gt;<br> when it is added to the list, and the
attribute will be deleted if the device is deleted from the structure.
The structure devices can also be added to a structure, e.g. you can have
a building consisting of levels which consists of rooms of devices.
<br>
Example:<br>
<ul>
<li>define kitchen structure room lamp1 lamp2</li>
<li>addstruct kitchen TYPE=FS20</li>
<li>delstruct kitchen lamp1</li>
<li>define house structure building kitchen living</li>
<li>set house off</li>
</ul>
</ul>
<br>
<a name="structureset"></a>
<b>Set</b>
<ul>
Every set command is propagated to the attached devices. Exception: if an
attached devices has an attribute structexcluse, and the attribute value
matches (as a regexp) the name of the current structure.
</ul>
<br>
<a name="structureget"></a>
<b>Get</b>
<ul>
get is not supported through a structure device.
</ul>
<br>
<a name="structureattr"></a>
<b>Attributes</b>
<ul>
<li>structexclude<br>
exclude the device from set operations, see the set command above.</li>
</ul>
<br>
</ul>
<a name="watchdog"></a>
<h3>watchdog</h3>
<ul>
@ -7424,7 +7486,7 @@ isday</pre>
<h3>Perl specials</h3>
If you want to automate some tasks via fhem, then you'll probably use <a
href="#at">at</a> or <a href="#notify">notify</a>. For more complex tasks
you'll use either a shell-Skript or a perl "oneliner" as the at/notify
you'll use either a shell-script or a perl "oneliner" as the at/notify
argument. This chapter gives some tips in using the perl oneliners.<br><br>
<li>To test perl oneliners, type them on the telnet prompt (or FHEMWEB text

View File

@ -80,7 +80,7 @@ FHEMWEB_Initialize($)
$hash->{AttrList}= "loglevel:0,1,2,3,4,5,6 webname fwmodpath fwcompress " .
"plotmode:gnuplot,gnuplot-scroll,SVG plotsize refresh " .
"touchpad smallscreen plotfork basicAuth basicAuthMsg ".
"stylesheet HTTPS";
"stylesheet hiddenroom HTTPS";
###############
# Initialize internal structures
@ -641,6 +641,7 @@ FW_doDetail($)
pO FW_hidden("detail", $d);
$FW_room = AttrVal($d, "room", undef);
$FW_room = $1 if($FW_room && $FW_room =~ m/^([^,]*),/); # Get first of a Multi-Room
my $t = $defs{$d}{TYPE};
pO "<div id=\"content\">";
@ -726,8 +727,13 @@ FW_roomOverview($)
push(@list1, ""); push(@list2, "");
}
$FW_room = "" if(!$FW_room);
my %hiddenroom;
foreach my $r (split(",",AttrVal($FW_wname, "hiddenroom", ""))) {
$hiddenroom{$r} = 1;
}
foreach my $r (sort keys %FW_rooms) {
next if($r eq "hidden");
next if($r eq "hidden" || $hiddenroom{$r});
push @list1, $r;
push @list2, "$FW_ME?room=$r";
}