Structure: Unterschied zwischen den Versionen

Aus FHEMWiki
(Define Abschnitt ausformuliert und vor allem struct_type erklärt mit Belegen ins Forum)
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 20: Zeile 20:
<pre>define structure_name structure <struct_type> <dev1> <dev2></pre>
<pre>define structure_name structure <struct_type> <dev1> <dev2></pre>


Wobei <code><struct_type></code> ein beliebiger Bezeichner ist, welcher frei vergeben werden kann und in alle Devices als Attribut propagiert wird; "<code><dev1> <dev2></code>" bezeichnen die Mitglieder des angelegten Structre Gerätes.
Wobei <code><struct_type></code> ein beliebiger Bezeichner ist, welcher frei vergeben werden kann und in alle Mitglieder des Structure Devices als Attribut propagiert wird; <code><dev1> <dev2></code> bezeichnen die Mitglieder des angelegten Structure Gerätes.


=== Attribute ===
=== Attribute ===
Zeile 31: Zeile 31:
* relativeKnown
* relativeKnown
* last - der Status der Struktur entspricht dem Status des Gerätes, das zuletzt eine Statusänderung erfahren hat
* last - der Status der Struktur entspricht dem Status des Gerätes, das zuletzt eine Statusänderung erfahren hat


==== clientstate_priority ====
==== clientstate_priority ====
Zeile 39: Zeile 38:


Das Verhalten dieses Attributs ist zusätzlich beeinflusst durch den Wert des Attributs [[structure#clientstate_behavior|clientstate_behavior]].
Das Verhalten dieses Attributs ist zusätzlich beeinflusst durch den Wert des Attributs [[structure#clientstate_behavior|clientstate_behavior]].
==== <struct_type>_map ====
Ohne dieses Attribut wertet ''structure'' erst das Reading ''state'' aus, und nur, falls das nicht existiert, das Internal ''STATE'' (beeinflussbar durch das allgemeine ''stateFormat''-Attribut). Vor allem bei Geräten, bei denen z.B. auch Konfigurationsbefehle in ''state'' geschrieben werden (wie etwa bei [[Z-Wave]]-Komponenten), empfiehlt es sich daher, dieses Attribut zu setzen.
Beispiel für einen ZWave-Fensterkontakt, der zur ''structure'' "Alarm" gehört:
attr <Sensorname> Alarm_map doorWindow


== Anwendungsbeispiele ==
== Anwendungsbeispiele ==

Aktuelle Version vom 3. September 2020, 08:33 Uhr


structure
Zweck / Funktion
Zusammenfassung von Geräten (gemeinsam schalten, Status zusammenfassen)
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Automatisierung
Modulname 98_structure.pm
Ersteller rudolfkoenig
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


structure ist ein Erweiterungsmodul zur Zusammenfassung von Geräten, ursprünglich nur, um diese gemeinsam schalten zu können. Die Funktionalität wurde später erweitert um die Darstellung von Zuständen der in der Struktur zusammengefassten Geräte.

Es ist die Bildung von mehrstufigen Strukturen möglich.

Voraussetzungen

Keine.

Anwendung

Define

define structure_name structure <struct_type> <dev1> <dev2>

Wobei <struct_type> ein beliebiger Bezeichner ist, welcher frei vergeben werden kann und in alle Mitglieder des Structure Devices als Attribut propagiert wird; <dev1> <dev2> bezeichnen die Mitglieder des angelegten Structure Gerätes.

Attribute

Gesamtaufstellung: siehe Befehlsreferenz.

clientstate_behavior

Mögliche Werte:

  • absolute
  • relative
  • relativeKnown
  • last - der Status der Struktur entspricht dem Status des Gerätes, das zuletzt eine Statusänderung erfahren hat

clientstate_priority

Definiert das Verhalten der structure in Abhängigkeit der enthaltenen Geräte. Das Beispiel

attr myStructure clientstate_priority present absent

bedeutet: wenn mindestens eines des Geräte der Struktur den Status present hat, bekommt die Struktur den Status present (unabhängig vom Status der anderen Geräte der Struktur). Nur, wenn alle Geräte den Status absent haben, bekommt auch die Struktur den Status absent.

Das Verhalten dieses Attributs ist zusätzlich beeinflusst durch den Wert des Attributs clientstate_behavior.

<struct_type>_map

Ohne dieses Attribut wertet structure erst das Reading state aus, und nur, falls das nicht existiert, das Internal STATE (beeinflussbar durch das allgemeine stateFormat-Attribut). Vor allem bei Geräten, bei denen z.B. auch Konfigurationsbefehle in state geschrieben werden (wie etwa bei Z-Wave-Komponenten), empfiehlt es sich daher, dieses Attribut zu setzen. Beispiel für einen ZWave-Fensterkontakt, der zur structure "Alarm" gehört:

attr <Sensorname> Alarm_map doorWindow

Anwendungsbeispiele

Todo: Bis zur Verfügbarkeit komplexerer Beispielbeschreibungen bitte unbedingt auf die commandref zurückgreifen.


EnOcean - Physischer EnOcean- und virtueller Fhem-Schalter zu einem Device zusammenfassen

Links

  • Erklärung des struct_type im define String.
  • Diskussion über die Erweiterung des Moduls um Funktionen für die Status-Anzeige