(FHEM) Attribute: Unterschied zwischen den Versionen

Aus TippvomTibb
Zur Navigation springen Zur Suche springen
Zeile 14: Zeile 14:
 
=Globale Attribute=
 
=Globale Attribute=
 
Diese Attribute besitzen alle Geräte (Devices).
 
Diese Attribute besitzen alle Geräte (Devices).
 +
 +
==alias==
 +
Wird in FHEMWEB benutzt, um ein en anderen Namen für ein Gerät anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der Gerätedefinition verwendet werden können.
 +
 +
==comment==
 +
Fügt einen beliebigen Kommentar hinzu.
 +
 +
==eventMap==
 +
Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den "alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen sondern durch das vorgestellte Zeichen getrennt. Optional kann man auch ein widgetOverride angeben (angehängt nach einem Doppelpunkt (z.Bsp. on-for-timer:OnFor:texField). Die Voreinstellung ist :noArg, um das Input Feld bei cmdList zu vermeiden. Beispiele:
 +
 +
    attr store eventMap on:open off:closed
 +
    attr store eventMap /on-for-timer 10:open/off:closed/
 +
    set store open
 +
 +
Die explizite Variante dieses Attributes hat folgenden Syntax:
 +
 +
    attr store eventMap { dev=>{'on'=>'open'}, usr=>{'open'=>'on'} }
 +
    attr store eventMap { dev=>{'^on(-for-timer)?(.*)'=>'open$2'}, usr=>{'^open(.*)'=>'on$1'}, fw=>{'^open(.*)'=>'open'} }
 +
 +
Diese Variante muss dann verwendet werden, falls das Mapping nicht symmetrisch ist. Der erste Teil (dev) spezifiziert dabei die Richtung Gerät zu Benutzer, d.h. falls das Gerät on 100 oder on-for-timer 100 meldet, dann wird der Benutzer open 100 zu sehen bekommen. Der zweite Teil (usr) spezifiziert die Richtung Benutzer zu Gerät, d.h. wenn man "set XX open 100" eingibt, dann wird das Kommando "on 100" an das Gerät gesendet. In beiden Fällen wird der Schlüssel zuerst direkt, und dann als Regexp mit dem Wert verglichen. Falls man Regexps mit Wildcards im usr Teil verwendet, dann muss man den fw Teil mit dem exakt gleichen Schlüsseln ausfüllen, damit FHEMWEB in der Detail-Ansicht den set-Auswahl richtig anzeigen kann.
 +
 +
==genericDisplayType==
 +
Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um für das Gerät passende Voreinstellungen (Bild/Befehle/etc) anzubieten. Z.Zt werden folgende Werte unterstützt: switch,outlet,light,blind,speaker,thermostat
 +
 +
==group==
 +
Gerätegruppen. FHEMWEB zeigt Geräte die in die gleiche Gruppe gehören auch in einer gemeinsamen Box an. Ein Gerät kann zu mehr als einer Gruppe gehören. In diesem Fall müssen die entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe gesetzte Gerätetyp verwendet.
 +
 +
==room==
 +
Filtert/gruppiert Geräte. Ein Gerät kann zu mehr als einem Raum zugeordnet werden. In diesem Fall müssen die Raumzuordnungen durch Kommata getrennt angegeben werden.
 +
Geräte, die dem Raum mit der Bezeichnung "hidden" zugeordnet werden, erscheinen nicht auf der Webseite. Mit -> werden Räume strukturiert, z.Bsp. OG->Schlafzimmer
 +
 +
==showtime==
 +
Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivität anstelle des Status in der Gesamtansicht anzuzeigen. Nützlich z.B. für FS20 PIRI Geräte.
 +
 +
==suppressReading==
 +
Wird verwendet, um nicht gewollte Readings zu entfernen. Der Wert ist ein Regular Expression, ergänzt mit ^ und $. Wird nur in Ausnahmefällen benötigt.
 +
 +
==verbose==
 +
Setzt den Schwellwert für die Logfile-Meldungen. Mögliche Werte sind:
 +
 +
    0 - Server start/stop
 +
    1 - Fehlermeldungen oder unbekannte Pakete
 +
    2 - bedeutende Ereigbisse/Alarme.
 +
    3 - ausgesendete Kommandos werden gelogged.
 +
    4 - von den einzelnen Geräten empfangene Daten.
 +
    5 - Fehlersuche.
 +
 +
Der für die global Instanz gesetzte Wert gilt als Voreinstellung für die Instanzen, die dieses Attribut nicht gesetzt haben.
  
 
=Lokale Attribute=
 
=Lokale Attribute=

Version vom 14. November 2021, 08:59 Uhr

Allgemeines

Alle Geräte haben Attribute.

Das Wort Attribut meint allgemein eine charakteristische Eigenschaft, oder ein Wesensmerkmal.

Eine Liste der gesetzten Attribute sieht man bei Nutzung von FHEMWEB in der "Device Overview" (Detailansicht eines Gerätes) im Abschnitt "Attributes" (roter Rahmen). Darüber befindet sich in dieser Darstellung (gelber Rahmen) ein Button "attr", eine Auswahlliste mit allen fuer dieses Geraet moeglichen Attribute und ein Eingabefeld. Durch Druecken des Buttons "attr" wird das in der Liste ausgewaehlte Attribut auf den "Wert" des Eingabefeldes gesetzt.

Nebenbemerkung: Laesst man das Eingabefeld (faelschlicherweise) leer, so wird scheinbar standardmaeszig eine 1 (Defaultwert ?) angenommen.

Über die Console (telnet) lassen sich die Attribute mittels 'attr' setzen, mit 'displayattr' anzeigen und mit 'deleteattr' loeschen/entfernen.

Es gibt globale Attribute, die von allen Geräten genutzt werden und lokale Attribute, die nur auf individuelle Geräteklassen zutreffen.

Globale Attribute

Diese Attribute besitzen alle Geräte (Devices).

alias

Wird in FHEMWEB benutzt, um ein en anderen Namen für ein Gerät anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der Gerätedefinition verwendet werden können.

comment

Fügt einen beliebigen Kommentar hinzu.

eventMap

Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den "alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen sondern durch das vorgestellte Zeichen getrennt. Optional kann man auch ein widgetOverride angeben (angehängt nach einem Doppelpunkt (z.Bsp. on-for-timer:OnFor:texField). Die Voreinstellung ist :noArg, um das Input Feld bei cmdList zu vermeiden. Beispiele:

   attr store eventMap on:open off:closed
   attr store eventMap /on-for-timer 10:open/off:closed/
   set store open 

Die explizite Variante dieses Attributes hat folgenden Syntax:

   attr store eventMap { dev=>{'on'=>'open'}, usr=>{'open'=>'on'} }
   attr store eventMap { dev=>{'^on(-for-timer)?(.*)'=>'open$2'}, usr=>{'^open(.*)'=>'on$1'}, fw=>{'^open(.*)'=>'open'} } 

Diese Variante muss dann verwendet werden, falls das Mapping nicht symmetrisch ist. Der erste Teil (dev) spezifiziert dabei die Richtung Gerät zu Benutzer, d.h. falls das Gerät on 100 oder on-for-timer 100 meldet, dann wird der Benutzer open 100 zu sehen bekommen. Der zweite Teil (usr) spezifiziert die Richtung Benutzer zu Gerät, d.h. wenn man "set XX open 100" eingibt, dann wird das Kommando "on 100" an das Gerät gesendet. In beiden Fällen wird der Schlüssel zuerst direkt, und dann als Regexp mit dem Wert verglichen. Falls man Regexps mit Wildcards im usr Teil verwendet, dann muss man den fw Teil mit dem exakt gleichen Schlüsseln ausfüllen, damit FHEMWEB in der Detail-Ansicht den set-Auswahl richtig anzeigen kann.

genericDisplayType

Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um für das Gerät passende Voreinstellungen (Bild/Befehle/etc) anzubieten. Z.Zt werden folgende Werte unterstützt: switch,outlet,light,blind,speaker,thermostat

group

Gerätegruppen. FHEMWEB zeigt Geräte die in die gleiche Gruppe gehören auch in einer gemeinsamen Box an. Ein Gerät kann zu mehr als einer Gruppe gehören. In diesem Fall müssen die entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn dieses Attribut nicht gesetzt ist, wird der in der Gerätegruppe gesetzte Gerätetyp verwendet.

room

Filtert/gruppiert Geräte. Ein Gerät kann zu mehr als einem Raum zugeordnet werden. In diesem Fall müssen die Raumzuordnungen durch Kommata getrennt angegeben werden. Geräte, die dem Raum mit der Bezeichnung "hidden" zugeordnet werden, erscheinen nicht auf der Webseite. Mit -> werden Räume strukturiert, z.Bsp. OG->Schlafzimmer

showtime

Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivität anstelle des Status in der Gesamtansicht anzuzeigen. Nützlich z.B. für FS20 PIRI Geräte.

suppressReading

Wird verwendet, um nicht gewollte Readings zu entfernen. Der Wert ist ein Regular Expression, ergänzt mit ^ und $. Wird nur in Ausnahmefällen benötigt.

verbose

Setzt den Schwellwert für die Logfile-Meldungen. Mögliche Werte sind:

   0 - Server start/stop
   1 - Fehlermeldungen oder unbekannte Pakete
   2 - bedeutende Ereigbisse/Alarme.
   3 - ausgesendete Kommandos werden gelogged.
   4 - von den einzelnen Geräten empfangene Daten.
   5 - Fehlersuche.

Der für die global Instanz gesetzte Wert gilt als Voreinstellung für die Instanzen, die dieses Attribut nicht gesetzt haben.

Lokale Attribute

Diese Attribute besitzen nur ganz bestimmte Geraeteklassen.

Gerätespezifische Attribute

Eigene Attribute

Manche Geräte (wie FHEMWEB) definieren automatisch neue globale Attribute bei der ersten Definition eines Gerätes dieses Typs.

Sie können den Befehl

attr global userattr <attributelist>

für das Gerät global verwenden, um neue globale Attribute zu deklarieren, und

attr <devicespec> userattr <attributelist>,

um neue lokale Attribute für bestimmte individuelle Geräte gemäß devspec zu deklarieren. <attributelist> ist eine durch Leerzeichen getrennte Liste, die die Namen der zusätzlichen Attribute enthält. In der Dokumentation zum Befehl attr sind Beispiele.

Seien Sie vorsichtig und überschreiben Sie keine zusätzlichen globale Attribute, die bereits zuvor durch Sie selbst oder ein Gerät definiert wurden. attr global userattr <attributelist> sollte so früh wie möglich in der Konfiguration erscheinen.