mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-26 17:04:59 +00:00
displayattr command added
git-svn-id: https://svn.fhem.de/fhem/trunk@3601 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
2bdb3e39d0
commit
a96e1d1416
@ -1,5 +1,6 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII
|
||||
- SVN
|
||||
- feature: displayattr command added
|
||||
- feature: SYSSTAT: allow (remote) monitoring system uptime
|
||||
- feature: new module 98_openweathermap.pm added (betateilchen)
|
||||
- feature: WeatherAsHtmlH(), WeatherAsHtmlD() added to 59_Weather.pm (Boris)
|
||||
|
@ -38,6 +38,7 @@
|
||||
<a href="#delete">delete</a>
|
||||
<a href="#deleteattr">deleteattr</a>
|
||||
<a href="#deletereading">deletereading</a>
|
||||
<a href="#displayattr">displayattr</a>
|
||||
<a href="#fheminfo">fheminfo</a>
|
||||
<a href="#get">get</a>
|
||||
<a href="#getstate">getstate</a>
|
||||
@ -250,6 +251,7 @@ A line ending with \ will be concatenated with the next one, so long lines
|
||||
The commands
|
||||
<a href="#attr">attr</a>,
|
||||
<a href="#deleteattr">deleteattr</a>,
|
||||
<a href="#displayattr">displayattr</a>,
|
||||
<a href="#delete">delete</a>,
|
||||
<a href="#get">get</a>,
|
||||
<a href="#list">list</a>,
|
||||
@ -569,6 +571,7 @@ A line ending with \ will be concatenated with the next one, so long lines
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="deletereading"></a>
|
||||
<h3>deletereading</h3>
|
||||
<ul>
|
||||
@ -589,6 +592,33 @@ A line ending with \ will be concatenated with the next one, so long lines
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="displayattr"></a>
|
||||
<h3>displayattr</h3>
|
||||
<ul>
|
||||
<code>displayattr <devspec> [<attrname>]</code> <br>
|
||||
<br>
|
||||
Display either the value of a single attribute (see the <a href="#attr">attr</a> command)
|
||||
or all attributes for a device (if no <attrname> is defined).
|
||||
See the <a href="#devspec">Device specification</a> section for details on
|
||||
<devspec>.<br>
|
||||
If more then one device is specified, then the device name will also included
|
||||
in the output.
|
||||
<br>
|
||||
|
||||
Examples:
|
||||
<ul>
|
||||
<code>
|
||||
fhem> di WEB<br>
|
||||
menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on<br>
|
||||
room Misc.<br>
|
||||
fhem> di WEB room<br>
|
||||
Misc.<br>
|
||||
</code>
|
||||
</ul>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<a name="get"></a>
|
||||
<h3>get</h3>
|
||||
<ul>
|
||||
|
@ -201,8 +201,7 @@ telnet-Prompt eingegeben werden:
|
||||
SHELL-Kommandos werden im Hintergrund ausgeführt,
|
||||
PERL-Ausdrücke und FHEM-Kommandos werden im Haupt-"thread" ausgeführt. Um
|
||||
PERL-Ausdrücke leichter eingeben zu können, sind einige Spezialfunktionen und
|
||||
Variablen verfügbar. Lesen Sie sich bitte die Abschnitte
|
||||
<a href="file:///C:/Inetpub/wwwroot/www.fhem.de/commandref_frame_DE.html#perl" style="color: #278727; text-decoration: underline; text-underline: single">
|
||||
Variablen verfügbar. Lesen Sie sich bitte die Abschnitte <a href="#perl">
|
||||
Perl special</a> zum besseren Verständnis durch.</p>
|
||||
<p>Um FHEM-Befehle in einen SHELL-Script zu triggern (dies ist
|
||||
eine "andere" Möglichkeit), benutzen Sie bitte die oben beschriebene Client-Form
|
||||
@ -251,16 +250,13 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<a name="devspec"></a>
|
||||
<h3>Geräte-Spezifikation (devspec)</h3>
|
||||
<ul>
|
||||
Die Befehle
|
||||
Befehle wie
|
||||
<a href="#attr">attr</a>,
|
||||
<a href="#deleteattr">deleteattr</a>,<a href="#delete">delete</a>,
|
||||
<a href="#get">get</a>,
|
||||
<a href="#list">list</a>,
|
||||
<a href="#set">set</a>,
|
||||
<a href="#setstate">setstate</a>,<a href="file:///C:/Inetpub/wwwroot/www.fhem.de/commandref_frame_DE.html#setstate"><span style="text-decoration: underline">
|
||||
</span></a>können eine komplexere
|
||||
Gerätespezifikation als Argumente enthalten, die auch eine Anzahl von Geräten
|
||||
betreffen kann. Eine Gerätespezifikation (Kurzfassung) kann z.B. so aussehen:
|
||||
<a href="#get">get</a>, usw.
|
||||
können eine komplexere Gerätespezifikation als Argumente enthalten,
|
||||
die auch eine Anzahl von Geräten betreffen kann. Eine
|
||||
Gerätespezifikation (Kurzfassung) kann z.B. so aussehen:
|
||||
<ul>
|
||||
<li>ein einzelner Gerätename. Dies ist der
|
||||
meist vorkommende Fall.</li>
|
||||
@ -322,11 +318,15 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<code>attr <devspec> <attrname> [<value>] </code><br>
|
||||
|
||||
<br>
|
||||
Dieser Befehl setzt ein Attribut für ein Gerät welches mit <a href="#define">define</a> definiert wurde. Sie können auch
|
||||
Ihre eigenen Attribute definieren, um sie in anderen Applikationen anzuwenden.
|
||||
Geben Sie "<attr <name> ?" ein, um eine Liste verfügbarer Attribute
|
||||
anzuzeigen. Bitte lesen Sie das Kapitel <a href="#devspec">Device specification</a>
|
||||
um Detail-Informationen zu <devspec> zu erhalten.
|
||||
Dieser Befehl setzt ein Attribut für ein Gerät welches mit <a
|
||||
href="#define">define</a> definiert wurde. Sie können auch Ihre eigenen
|
||||
Attribute definieren, um sie in anderen Applikationen anzuwenden. Geben Sie
|
||||
"<attr <name> ?" ein, um eine Liste verfügbarer Attribute
|
||||
anzuzeigen.
|
||||
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
|
||||
<p>Attribute, die für
|
||||
alle Geräte anwendbar sind: </p>
|
||||
<ul>
|
||||
@ -553,13 +553,14 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<ul>
|
||||
<code>delete <devspec></code> <br>
|
||||
<br>
|
||||
Löscht etwas was mit dem <a href="#define">define</a> Befehl erstellt worden
|
||||
ist.
|
||||
Lesen Sie sich bitte den Abschnitt <a href="#devspec">Device specification</a> für
|
||||
Details von
|
||||
<devspec> durch.<br>
|
||||
Nach dem löschen, wird das globale Ereignis "DELETED" erzeugt. Lesen Sie bitte
|
||||
den Abschnitt zu "notify" für genauere Informationen durch.<br>
|
||||
Löscht etwas was mit dem <a href="#define">define</a> Befehl erstellt
|
||||
worden ist.<br>
|
||||
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
|
||||
Nach dem löschen, wird das globale Ereignis "DELETED" erzeugt.<br>
|
||||
|
||||
Beispiel:
|
||||
<ul>
|
||||
<code>delete lamp</code><br>
|
||||
@ -572,12 +573,11 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<ul>
|
||||
<code>deleteattr <devspec> [<attrname>]</code> <br>
|
||||
<br>
|
||||
Löscht entweder ein einzelnes Attribut (siehe Abschnitt <a href="#attr">attr</a> )
|
||||
oder alle Attribute eines Gerätes (falls kein <attrname> angegeben
|
||||
wird).
|
||||
Lesen Sie bitte den <a href="#devspec">Device specification</a>
|
||||
Abschnitt für
|
||||
<devspec> durch.<br>
|
||||
Löscht entweder ein einzelnes Attribut (siehe Abschnitt <a
|
||||
href="#attr">attr</a> ) oder alle Attribute eines Gerätes (falls
|
||||
kein <attrname> angegeben wird).<br>
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
<br>
|
||||
|
||||
Beispiele:
|
||||
@ -593,14 +593,18 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<ul>
|
||||
<code>deletereading <devspec> <readingname></code> <br>
|
||||
<br>
|
||||
Delete the reading <readingname>
|
||||
for a device. <readingname> is a perl regular expression that must match the whole name of the reading.
|
||||
Use with greatest care! FHEM might crash if you delete vital readings of a device.
|
||||
See the <a href="#devspec">Device specification</a> section for details on
|
||||
<devspec>.<br>
|
||||
Entfernt das Reading <readingname> für das spezifizierte
|
||||
Gerät. <readingname> ist ein perl Regular-Expression, was den
|
||||
vollständigen Namen des Readings erfassen muss.
|
||||
|
||||
Mit größter Sorgfalt verwenden! FHEM kann abstürzen, falls
|
||||
man lebenswichtige Readings entfernt.<br>
|
||||
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
<br>
|
||||
|
||||
Examples:
|
||||
Beispiele:
|
||||
<ul>
|
||||
<code>deletereading mySensor temp1</code><br>
|
||||
<code>deletereading mySensor temp\d+</code><br>
|
||||
@ -608,6 +612,34 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<a name="displayattr"></a>
|
||||
<h3>displayattr</h3>
|
||||
<ul>
|
||||
<code>displayattr <devspec> [<attrname>]</code> <br>
|
||||
<br>
|
||||
Zeigt entweder den Wert eines Attributes an (falls <attrname>
|
||||
spezifiziert wurde) oder alle Attribute eines Gerätes.
|
||||
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
|
||||
Falls mehrere Geräte spezifiziert wurden, dann enthält die Ausgabe
|
||||
den Namen der Geräte.
|
||||
<br>
|
||||
|
||||
Beispiele:
|
||||
<ul>
|
||||
<code>
|
||||
fhem> di WEB<br>
|
||||
menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on<br>
|
||||
room Misc.<br>
|
||||
fhem> di WEB room<br>
|
||||
Misc.<br>
|
||||
</code>
|
||||
</ul>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<a name="get"></a>
|
||||
<h3>get</h3>
|
||||
<ul>
|
||||
@ -617,10 +649,8 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
Antwort. Eine allgemeine Liste möglicher Paramter erhalten Sie mit<ul>
|
||||
<code>get <device> ?</code>
|
||||
</ul>
|
||||
Lesen Sie den Abschnitt <a href="#devspec">Device specification</a> für
|
||||
Details zu
|
||||
<devspec> durch.<br>
|
||||
<br>
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
Jedes Gerät hat unterschiedliche "get"-Parameter. Lesen Sie Details bitte im
|
||||
zugehörigen Abschnitt nach.<br>
|
||||
<br>
|
||||
@ -685,13 +715,13 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<code>list [devspec] [value]</code>
|
||||
<br><br>
|
||||
Auflistung aller "definitions", "notify" und "at"-Definitionen. Dies ist eines
|
||||
der wenigen Befehle, die im Normalfall eine Zeichenkette ausgeben. Bitte lesen
|
||||
Sie den Abschnitt <a href="#devspec">Device specification</a> für Details zu
|
||||
<devspec>.
|
||||
der wenigen Befehle, die im Normalfall eine Zeichenkette ausgeben.<br>
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
|
||||
<br>
|
||||
Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder
|
||||
reading (actuator, measured-temp) für alle Geräte die in devspec angegeben
|
||||
sind.
|
||||
Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder reading (actuator,
|
||||
measured-temp) für alle Geräte die in devspec angegeben sind.
|
||||
<br><br>
|
||||
Beispiel:
|
||||
<pre><code> fhem> list
|
||||
@ -870,9 +900,10 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<ul>
|
||||
<code>set <name> ?</code>
|
||||
</ul>
|
||||
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a>
|
||||
für Details zu <devspec>. Der "set"-Befehl gibt nur bei
|
||||
Fehler einen Wert zurück.
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
|
||||
Der "set"-Befehl gibt nur bei Fehler einen Wert zurück.
|
||||
<br><br>
|
||||
Jedes Gerät hat verschiedene Parameter die mit "set" gesetzt
|
||||
werden können. Lesen Sie bitte den entsprechenden Abschnitt für
|
||||
@ -936,11 +967,10 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
Der Befehl setzt den "STATUS" für <code><name></code> , wie im Befehl
|
||||
<a href="#list">list</a> beschrieben, auf den Wert <code><value></code>
|
||||
ohne an das Gerät ein Signal zu senden. Dieser Befehl wird auch im <a href="#statefile">statefile</a>
|
||||
benutzt.
|
||||
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a> für
|
||||
Details zu
|
||||
<devspec>.
|
||||
<br><br>
|
||||
benutzt.<br>
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
<br>
|
||||
Examples:
|
||||
<ul>
|
||||
setstate lamp on
|
||||
@ -975,10 +1005,10 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
|
||||
<ul>
|
||||
<code>trigger <devspec> <state></code>
|
||||
<br><br>
|
||||
Triggert eine <a href="#notify">notify</a> Definition.
|
||||
Siehe <a href="#devspec">Geräte-Spezifikation (devspec)</a>
|
||||
für Details zu <devspec>.
|
||||
<br><br>
|
||||
Triggert eine <a href="#notify">notify</a> Definition.<br>
|
||||
Siehe den Abschnitt über <a href="#devspec">Geräte-Spezifikation</a>
|
||||
für Details der <devspec>.<br>
|
||||
<br>
|
||||
Beispiel:
|
||||
<ul>
|
||||
<code>trigger btn3 on</code>
|
||||
|
38
fhem/fhem.pl
38
fhem/fhem.pl
@ -231,6 +231,8 @@ $readingFnAttributes = "event-on-change-reading event-on-update-reading ".
|
||||
Hlp=>"<devspec> [<attrname>],delete user defined reading for <devspec>" },
|
||||
"delete" => { Fn=>"CommandDelete",
|
||||
Hlp=>"<devspec>,delete the corresponding definition(s)"},
|
||||
"displayattr"=> { Fn=>"CommandDisplayAttr",
|
||||
Hlp=>"<devspec> [attrname],display attributes" },
|
||||
"get" => { Fn=>"CommandGet",
|
||||
Hlp=>"<devspec> <type dependent>,request data from <devspec>" },
|
||||
"help" => { Fn=>"CommandHelp",
|
||||
@ -1490,6 +1492,42 @@ CommandDeleteAttr($$)
|
||||
return join("\n", @rets);
|
||||
}
|
||||
|
||||
#############
|
||||
sub
|
||||
CommandDisplayAttr($$)
|
||||
{
|
||||
my ($cl, $def) = @_;
|
||||
|
||||
my @a = split(" ", $def, 2);
|
||||
return "Usage: displayattr <name> [<attrname>]\n$namedef" if(@a < 1);
|
||||
|
||||
my @rets;
|
||||
my @devspec = devspec2array($a[0]);
|
||||
|
||||
foreach my $sdev (@devspec) {
|
||||
|
||||
if(!defined($defs{$sdev})) {
|
||||
push @rets, "Please define $sdev first";
|
||||
next;
|
||||
}
|
||||
|
||||
my $ap = $attr{$sdev};
|
||||
next if(!$ap);
|
||||
my $d = (@devspec > 1 ? "$sdev " : "");
|
||||
|
||||
if(defined($a[1])) {
|
||||
push @rets, "$d$ap->{$a[1]}" if(defined($ap->{$a[1]}));
|
||||
|
||||
} else {
|
||||
push @rets, map { "$d$_ $ap->{$_}" } sort keys %{$ap};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return join("\n", @rets);
|
||||
}
|
||||
|
||||
#############
|
||||
sub
|
||||
CommandDeleteReading($$)
|
||||
|
Loading…
x
Reference in New Issue
Block a user