Attribut: Unterschied zwischen den Versionen

Aus FHEMWiki
(Detailinfo in Teilen wieder gelöscht und in Fußnote verschoben.)
K (→‎Global: typo)
Zeile 22: Zeile 22:


Damit stehen die betreffenden Attribute dann system-weit zur Verfügung.  
Damit stehen die betreffenden Attribute dann system-weit zur Verfügung.  
{{Hinweis|Beim Erstellen oder Löschen von eigenen Attributen ist darauf zu achten, dass der Name des Attributs nicht durch anderweitig verwendet wurde. Andernfalls kann es zu schwerwiegenden Fehlfunktionen in FHEM kommen.}}
{{Hinweis|Beim Erstellen oder Löschen von eigenen Attributen ist darauf zu achten, dass der Name des Attributs nicht auch anderweitig verwendet wurde. Andernfalls kann es zu schwerwiegenden Fehlfunktionen in FHEM kommen.}}
Manche [[Gerät|Geräte]] (wie [[FHEMWEB]]) definieren automatisch neue globale Attribute beim ersten Anlegen eines [[Gerät|Gerätes]] dieses Typs.
Manche [[Gerät|Geräte]] (wie [[FHEMWEB]]) definieren automatisch neue globale Attribute beim ersten Anlegen eines [[Gerät|Gerätes]] dieses Typs.



Version vom 25. September 2018, 10:46 Uhr

Attribute sind ein wichtiges Mittel, um das Verhalten von FHEM insgesamt (global) oder von einzelnen Geräten bzw. Geräteklassen zu beeinflussen.

Allgemeines

Damit der Nutzer das Verhalten einer einzelnen Gerätedefinition zur Laufzeit individuell anpassen kann, gibt es in FHEM für jede Definition sogenannte Attribute.

Attribute werden zusammen mit dem define-Befehl des jeweiligen Devices beim Speichern der aktuellen Konfiguration von FHEM in die Konfigurationsdatei geschrieben. Beim Neustart werden die entsprechenden Befehle ausgeführt um alle Definition inkl. Attribute wieder anzulegen.

Alle Geräte haben Attribute. Diese werden mittels des Befehls attr gesetzt, angezeigt mit dem Befehl displayattr, und mit dem Kommando deleteattr entfernt. In FHEMWEB gibt es daneben die Möglichkeit, Attribute über die Weboberfläche einzustellen.

Globale Attribute

Globale Attribute können von allen Geräten genutzt werden. Welche vorhanden sind, kann mit list global ermittelt werden

Lokale Attribute

Als lokale Attribute werden Attribute bezeichnet, die nur auf individuelle Geräteklassen oder einzelne Geräte zutreffen. Welche dies sind, wird jeweils durch den Code des Moduls festgelegt, dementsprechend sind Hinweise zur Funktion dieser Attribute in der jeweiligen Beschreibung zum Modul in der commandref zu entnehmen.

userattr

Neben den von FHEM und den jeweils verwendeten Modulen bereitgestellten Attributen besteht die Möglichkeit, eigene Attribute zu definieren.

Global

Dies kann zentral erfolgen, indem attr global userattr <attributelist> verwendet wird. <attributelist> ist eine durch Leerzeichen getrennte Liste, die die Namen der zusätzlichen Attribute enthält.

Damit stehen die betreffenden Attribute dann system-weit zur Verfügung.

Info blue.png
Beim Erstellen oder Löschen von eigenen Attributen ist darauf zu achten, dass der Name des Attributs nicht auch anderweitig verwendet wurde. Andernfalls kann es zu schwerwiegenden Fehlfunktionen in FHEM kommen.


Manche Geräte (wie FHEMWEB) definieren automatisch neue globale Attribute beim ersten Anlegen eines Gerätes dieses Typs.

Einzelne Geräte

Mit attr <devicename> userattr <attributelist> können auch ein oder mehrere neue lokale Attribute für bestimmte individuelle Geräte eingeführt werden.

ReadingsGroup

ReadingsGroup stellt eine Möglichkeit dar, neben Readings auch Attribute strukturiert darzustellen. Mit Hilfe dieses Moduls können auch den End-Anwendern auf einfache Weise vielfältige Einstellmöglichkeiten zur Verfügung gestellt werden.

Abgrenzung zu Readings

Als Readings werden demgegenüber Daten bezeichnet, die von einem Gerät gelesen und in FHEM in einer (üblicherweise) lesbaren Form zur Verfügung gestellt werden. Typischerweise werden sich im laufenden Betrieb ändernde Zustände oder Meßwerte in Readings zwischengespeichert und jede Aktualisierung ist in der Regel mit einem Event verbunden. Readings werden nicht in der Konfiguration gespeichert, sondern im sog. statefile[1] Hierdurch werden die Informationen bei ordnungsgemäßer Beendigung von FHEM auch nach einem Neustart wieder verfügbar.

Auch hier kann der Nutzer über die Kommandozeile[2] direkt Einfluß auf den aktuellen Wert nehmen und Events erzeugen. Es sollte dabei jedoch sichergestellt werden, dass es nicht zu unbeabsichtigten Überschneidungen mit Änderungen der Readingsinhalte kommt, die vom entsprechenden Modulcode geschrieben werden.

Der Vorteil der Nutzung von Readings liegt darin, dass die Änderung der Daten nicht zu Änderungen an der Konfiguration führen, diese aber dennoch bei einem ordnungsgemäßen Neustart von FHEM direkt wieder verfügbar sind.

Weitere Infos für Modulentwickler

Hinweise und Links

Die Commandref zum Befehl attr enthält einige Beispiele zur Verwendung von Attributen.

  1. Dies ist eine eigene Datei fhem.save bzw. es werden die Infos bei Nutzung von configDB in der Konfigurationsdatenbank gespeichert.
  2. Durch Anpassung der Attribute "setList" und "readingList" können Änderungen auch über FHEMWEB-Elemente ermöglicht werden