List: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Weiteres regEx-Beispiel eingefügt)
Zeile 29: Zeile 29:
Im Zusammenhang mit Verhaltensänderungen eines Attributs (wie z.B. bei [[userReadings]] geschehen), kann es sinnvoll sein, alle Devices aufzulisten, bei denen dieses Attribut verwendet wurde.
Im Zusammenhang mit Verhaltensänderungen eines Attributs (wie z.B. bei [[userReadings]] geschehen), kann es sinnvoll sein, alle Devices aufzulisten, bei denen dieses Attribut verwendet wurde.
;alle Devices, bei denen das Attribut ''userReadings'' (auf einen beliebigen Wert gesetzt) ist:
;alle Devices, bei denen das Attribut ''userReadings'' (auf einen beliebigen Wert gesetzt) ist:
:<code>list userReadings=[a-zA-Z].*</code> oder <br /><code>list userReadings=^.+$</code> oder <br /><code>list userReadings=\w.*</code> oder <br /><code>list userReadings=..*</code>
:<code>list userReadings=[a-zA-Z].*</code> oder <br /><code>list userReadings=.+</code> oder <br /><code>list userReadings=\w.*</code> oder <br /><code>list userReadings=..*</code>


=== Alle Geräte in einem Raum ===
=== Alle Geräte in einem Raum ===

Version vom 8. Juni 2016, 15:51 Uhr


list
Zweck / Funktion
Befehl zur Auflistung von Gerätedefinitionen
Allgemein
Typ Befehl
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname fhem.pl ("Built-in")
Ersteller rudolfkoenig (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Der Befehl list dient dazu, Informationen über Geräte (Devices) anzuzeigen. Dabei können entweder Details zu einem einzelnen Gerät ausgegeben werden, oder eine Liste von Geräten (Gerätenamen) mit bestimmten gemeinsamen Attributen. Wenn mehrere Geräte aufgelistet werden, lässt sich zu jedem zusätzlich der Wert eines oder mehrerer Internals, Readings oder Attribute mit ausgeben.

Der Befehl kann direkt über das Eingabefeld des Webfrontends oder über die telnet Schnittstelle eingegeben werden.

Beispiele

Info green.pngFür alle Beispiele gilt: im Webfrontend lassen sich die Namen der ausgegebenen Geräte direkt anklicken, um in die zugehörige Detail-Ansicht zu gelangen. Dies ist besonders für weblink, SVG oder readingsGroup Geräte nützlich, die in der Raum-Ansicht eventuell keinen solchen Link auf die Detail-Ansicht zeigen.

Alle Geräte eines bestimmten Typs

Mit dem Befehl

list TYPE=FS20

wird eine Liste (die Namen) aller Geräte des Typs FS20 ausgegeben.

Alle Geräte ohne TYPE

Manche Fehlersituationen in Fhem werden verursacht durch Geräte, bei denen kein Internal mit dem Namen TYPE festgelegt ist (was eigentlich eine ungültige Definition ist). Diese Geräte-Definitionen lassen sich mit dem Befehl

{ join("\n", grep { !defined($defs{$_}{TYPE}) } keys %defs) }

identifizieren. Mithilfe dieser Information lässt sich dann z.B. ein solches Gerät löschen.

Ein derartiges Szenario ist unter anderem in diesem Forenthema beschrieben.

Alle Geräte mit einem bestimmten Attribut

Im Zusammenhang mit Verhaltensänderungen eines Attributs (wie z.B. bei userReadings geschehen), kann es sinnvoll sein, alle Devices aufzulisten, bei denen dieses Attribut verwendet wurde.

alle Devices, bei denen das Attribut userReadings (auf einen beliebigen Wert gesetzt) ist
list userReadings=[a-zA-Z].* oder
list userReadings=.+ oder
list userReadings=\w.* oder
list userReadings=..*

Alle Geräte in einem Raum

Ausgabebeispiel eines list Befehls

Mit dem Befehl

list room=TV

werden die Namen aller Geräte aufgeführt, die ein Attribut room mit dem Wert TV haben. Durch einen Klick auf den Gerätenamen wird die Detailansicht des Gerätes aufgerufen.

Attributwert zu mehreren Geräten

Mit dem Befehl

list TYPE=CUL_HM serialNr

werden die Seriennummern aller Homematic Geräte aufgelistet.

Mehrere Werte zu mehreren Geräten

Mit dem Befehl

list TYPE=CUL_HM:FILTER=serialNr=..* serialNr model

werden die Seriennummer und die Modellbezeichnung aller Homematic Geräte aufgelistet, die auch eine Seriennummern haben.

Gezieltes Auflisten von Internal, Reading oder Attribut

Bei manchen Geräten gibt es Internals, Readings oder Attribute mit gleichem Namen. Da list jeweils nur das erste Vorkommen zeigt und nicht sichtbar macht, was genau gefunden wurde, ist die Ausgabe manchmal nicht eindeutig. Um das zu vermeiden, lässt sich mit dem Präfix i:, r: oder a: vor dem Namen des anzuzeigenden Wertes angeben, welcher der drei möglichen Typen ausgegeben werden soll.