From 562ec11304be8cd00b5f419d1901b61e5a284ce4 Mon Sep 17 00:00:00 2001 From: Damian <> Date: Thu, 6 Sep 2018 18:37:03 +0000 Subject: [PATCH] 98_DOIF.pm: mit Direkthilfe git-svn-id: https://svn.fhem.de/fhem/trunk@17291 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_DOIF.pm | 230 ++++++++++++++++++++++++++----------------- 1 file changed, 139 insertions(+), 91 deletions(-) diff --git a/fhem/FHEM/98_DOIF.pm b/fhem/FHEM/98_DOIF.pm index 0f6b945c6..08bff6137 100644 --- a/fhem/FHEM/98_DOIF.pm +++ b/fhem/FHEM/98_DOIF.pm @@ -3535,7 +3535,7 @@ Eine ausführliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgel uiTable, das User Interface
Reine Statusanzeige ohne Ausführung von Befehlen
Anpassung des Status mit Hilfe des Attributes state
- Erzeugen berechneter Readings
+
Erzeugen berechneter Readings
Vorbelegung des Status mit Initialisierung nach dem Neustart mit dem Attribut initialize
Deaktivieren des Moduls
Bedingungslose Ausführen von Befehlszweigen
@@ -3562,7 +3562,7 @@ Eine ausführliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgel checkReadingEvent   cmdpause   cmdState   - DOIF_Readings   + DOIF_Readings   disable   do always   do resetwait   @@ -4076,6 +4076,7 @@ alternativ mit Buchstaben-Kürzeln:
[<time>|So Mo Di Mi Do Fr Sa WE AT] WE entspricht der Ziffer 7 und AT der Ziffer 8

+ Mit Hilfe des Attributes weekdays können beliebige Wochentagbezeichnungen definiert werden. Die Syntax lautet:

weekdays <Bezeichnung für Sonntag>,<Bezeichnung für Montag>,...,<Bezeichnung für Wochenende>,<Bezeichnung für Arbeitstage>
@@ -4313,6 +4314,7 @@ attr di_average do always
Ersatzwert für nicht existierende Readings oder Status   back

+ Es kommt immer wieder vor, dass in der Definition des DOIF-Moduls angegebene Readings oder Status zur Laufzeit nicht existieren. Der Wert ist dann leer. Bei der Definition von Status oder Readings kann für diesen Fall ein Vorgabewert oder sogar eine Perlberechnung am Ende des Ausdrucks kommagetrennt angegeben werden.

@@ -4339,6 +4341,7 @@ Syntax: attr <DOIF-module> notexist "<default value>" < Verzögerungen   back

+ Verzögerungen für die Ausführung von Kommandos werden pro Befehlsfolge über das Attribut "wait" definiert. Syntax:

attr <DOIF-module> wait <Sekunden für Befehlsfolge des ersten DO-Falls>:<Sekunden für Befehlsfolge des zweiten DO-Falls>:...
@@ -4378,6 +4381,7 @@ Beispiel:

Verzögerungen von Timern   back

+ Verzögerungen können mit Hilfe des Attributs timerWithWait auf Timer ausgeweitet werden.

Anwendungsbeispiel: Lampe soll zufällig nach Sonnenuntergang verzögert werden.
@@ -4436,6 +4440,7 @@ attr di_push do resetwait
Wiederholung von Befehlsausführung   back

+ Wiederholungen der Ausführung von Kommandos werden pro Befehlsfolge über das Attribut "repeatcmd" definiert. Syntax:

attr <DOIF-modul> repeatcmd <Sekunden für Befehlsfolge des ersten DO-Falls>:<Sekunden für Befehlsfolge des zweiten DO-Falls>:...
@@ -4480,6 +4485,7 @@ attr di_presence_simulation repeatcmd rand(3600)+2200
Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung   back

+ Mit dem Attribut cmdpause <Sekunden für cmd_1>:<Sekunden für cmd_2>:... wird die Zeitspanne in Sekunden angegeben für eine Zwangspause seit der letzten Zustandsänderung. In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die dazugehörige Bedingung wahr wird.

@@ -4492,6 +4498,7 @@ attr di_frost do always
Begrenzung von Wiederholungen eines Kommandos   back

+ Mit dem Attribut repeatsame <maximale Anzahl von cmd_1>:<maximale Anzahl von cmd_2>:... wird die maximale Anzahl hintereinander folgenden Ausführungen festgelegt.

Anwendungsbeispiel: Die Meldung soll maximal dreimal erfolgen mit einer Pause von mindestens 10 Minuten
@@ -4512,6 +4519,7 @@ attr di_repeat do always
Ausführung eines Kommandos nach einer Wiederholung einer Bedingung   back

+ Mit dem Attribut waitsame <Zeitspanne in Sekunden für cmd_1>:<Zeitspanne in Sekunden für das cmd_2>:... wird ein Kommando erst dann ausgeführt, wenn innerhalb einer definierten Zeitspanne die entsprechende Bedingung zweimal hintereinander wahr wird.
Für Kommandos, für die waitsame nicht gelten soll, werden die entsprechenden Sekundenangaben ausgelassen oder auf Null gesetzt.

@@ -4524,6 +4532,7 @@ attr di_shuttersup do always
Löschen des Waittimers nach einer Wiederholung einer Bedingung   back

+ Das Gegenstück zum repeatsame-Attribut ist das Attribut waitdel. Die Syntax mit Sekundenangaben pro Kommando entspricht der, des wait-Attributs. Im Gegensatz zum wait-Attribut, wird ein laufender Timer gelöscht, falls eine Bedingung wiederholt wahr wird. Sekundenangaben können pro Kommando ausgelassen oder auf Null gesetzt werden.

@@ -4546,6 +4555,7 @@ attr di_cmd waitdel 0:2

Readingauswertung bei jedem Event des Devices   back

+ Bei Angaben der Art [<Device>:<Reading>] wird das Modul getriggert, wenn ein Ereignis zum angegebenen Device und Reading kommt. Soll das Modul, wie bei Statusangaben der Art [<Device>], auf alle Ereignisse des Devices reagieren, so muss das Attribut auf Null gesetzt werden.

Bemerkung: In früheren Versionen des Moduls war checkReadingEvent 0 die Voreinstellung des Moduls. Da die aktuelle Voreinstellung des Moduls checkReadingEvent 1 ist, hat das Setzen von @@ -4554,6 +4564,7 @@ Bemerkung: In früheren Versionen des Moduls war checkReadingEvent 0 Eindeutige Statuserkennung   back

+ Bei Änderungen des Readings state wird in FHEM standardmäßig, im Gegensatz zu allen anderen Readings, der Readingname hier: "state: " im Event nicht vorangestellt. Möchte man eindeutig eine Statusänderung eines Moduls erkennen, so lässt sich das mit dem Attribut addStateEvent bewerksteligen. Bei Statusänderungen eines Devices wird bei der Angabe des Attributes addStateEvent im Event "state: " vorangestellt, darauf kann man dann gezielt im DOIF-Modul triggern.
@@ -4567,6 +4578,7 @@ attr di_lamp addStateEvent
Triggerung durch selbst ausgelöste Events   back

+ Standardmäßig unterbindet das DOIF-Modul Selbsttriggerung. D. h. das Modul reagiert nicht auf Events, die es selbst direkt oder indirekt auslöst. Dadurch werden Endlosschleifen verhindert. Wenn das Attribut selftrigger wait gesetzt ist, kann das DOIF-Modul auf selbst ausgelöste Events reagieren. Dazu müssen die entsprchenden Kommandos mit wait verzögert werden. Bei der Angabe selftrigger all reagiert das Modul grundsätzlich alle selbst ausgelösten Trigger.
@@ -4579,6 +4591,7 @@ Bei der Verwendung des Attributes selftrigger all sollte beachtet w Setzen der Timer mit Event   back

+ Wenn das Attribut timerevent ungleich Null gesetzt ist, wird beim Setzen der Timer im DOIF-Modul ein Event erzeugt. Das kann z. B. bei FHEM2FHEM nützlich sein, um die Timer-Readings zeitnah zu aktualisieren.

@@ -4597,6 +4610,7 @@ Der Status bleibt dabei auf "motion". Mit der obigen Abfrage lässt sich festste Alle Bedingungen prüfen   back

+ Bei der Abarbeitung der Bedingungen, werden nur die Bedingungen überprüft, die zum ausgelösten Event das dazughörige Device bzw. die dazugehörige Triggerzeit beinhalten. Mit dem Attribut checkall lässt sich das Verhalten so verändern, dass bei einem Event-Trigger auch Bedingungen geprüft werden, die das triggernde Device nicht beinhalten. @@ -4612,7 +4626,8 @@ Zu beachten ist, dass bei einer wahren Bedingung die dazugehörigen Befehle ausg Darstellungselement mit Eingabemöglichkeit im Frontend und Schaltfunktion   back

-Die unter Dummy beschriebenen Attribute readingList und setList stehen auch im DOIF zur Verfügung. Damit wird erreicht, dass DOIF im WEB-Frontend als Eingabeelement mit Schaltfunktion dienen kann. Zusätzliche Dummys sind nicht mehr erforderlich. Es können im Attribut setList, die in FHEMWEB angegebenen Modifier des Attributs widgetOverride verwendet werden. Siehe auch das weiterführende Beispiel für Tablet-UI. Für die Verwendung moduleigener Readings ist die Funktionalität nicht gewährleistet, siehe benutzerdefinierte Readings.
+ +Die unter Dummy beschriebenen Attribute readingList und setList stehen auch im DOIF zur Verfügung. Damit wird erreicht, dass DOIF im WEB-Frontend als Eingabeelement mit Schaltfunktion dienen kann. Zusätzliche Dummys sind nicht mehr erforderlich. Es können im Attribut setList, die in FHEMWEB angegebenen Modifier des Attributs widgetOverride verwendet werden.

Anwendungsbeispiel: Eine Schaltuhr mit time-Widget für die Ein- u. Ausschaltzeiten und der Möglichkeit über eine Auswahlliste manuell ein und aus zu schalten.

@@ -4634,9 +4649,20 @@ attr time_switch webCmd mybutton:mybegin:myend
attr di_web setList myInput:first,second

+Links
+readingList
+setList
+webCmd
+webCmdLabel
+widgetOverride
+weiterführendes Beispiel für Tablet-UI
+benutzerdefinierte Readings
+Bedingungsloses Ausführen von Befehlen
+
uiTable, das User Interface   back

+ Mit dem Attribut uiTable kann innerhalb eines DOIF-Moduls ein User Interface in Form einer Tabelle erstellt werden. Die Definition der Tabelle wird mit Hilfe von Perl sowie FHEM-Widgets kombiniert mit DOIF-Syntax vorgenommen.

Features:
@@ -4751,7 +4777,7 @@ Brennericon

WID([burner:state],"iconLabel,closed,sani_boiler_temp\@DarkOrange,open,sani_boiler_temp")

-Die Widget-Definition entspricht der FHEM-Widget-Syntax, siehe: FHEMWEB-Widgets
+Die Widget-Definition entspricht der Syntax der FHEM-Widgets.

Thermostatdefinition mit Hilfe des knob-Widgets:

@@ -4885,10 +4911,13 @@ in mytemplates.tpl
## template methode
DEF TPL_temp(STY($1.$TPL{unit},FUNC_temp($1)))

+Links
+FHEMWEB-Widgets

Status des Moduls   back

+ Der Status des Moduls wird standardmäßig mit cmd_1, cmd_2, usw., bzw. cmd1_1 cmd1_2 usw. für Befehlssequenzen belegt. Dieser lässt sich über das Attribut "cmdState" mit Komma bzw. | getrennt umdefinieren:

attr <DOIF-modul> cmdState <Status für cmd1_1>,<Status für cmd1_2>,...| <Status für cmd2_1>,<Status für cmd2_2>,...|...
@@ -4917,6 +4946,7 @@ attr di_hum cmdState wet|normal|dry
Anpassung des Status mit Hilfe des Attributes state   back

+ Es können beliebige Reading und Status oder Internals angegeben werden.

Anwendungsbeispiel: Aktuelle Außenfeuchtigkeit inkl. Klimazustand (Status des Moduls wurde mit cmdState definiert s. o.)
@@ -4936,9 +4966,10 @@ Da man beliebige Perl-Ausdrücke verwenden kann, lässt sich z. B. der Mittelwer
attr di_average state Average of the two rooms is {(sprintf("%.1f",([room1:temperature]+[room2:temperature])/2))}

- + Erzeugen berechneter Readings   back

+ Mit Hilfe des Attributes DOIF_Readings können eigene Readings innerhalb des DOIF definiert werden, auf die man im selben DOIF-Moduls zugreifen kann. Die Nutzung ist insbesondere dann sinnvoll, wenn mehrfach die gleichen Berechnungen innerhalb eines DOIF-Modus vorgenommen werden sollen. DOIF_Readings-Berechnungen funktionieren ressourcenschonend ohne Erzeugung FHEM-Events nach außen. Änderungen dieser Readings triggern allerdings das eigene DOIF-Modul, wenn sich deren Inhalt ändert.
@@ -4969,7 +5000,10 @@ attr heating DOIF_Readings frost:([outdoor:temperature] < 0 ? "on" : "off")
-Vorbelegung des Status mit Initialisierung nach dem Neustart mit dem Attribut initialize   back
+Vorbelegung des Status mit Initialisierung nach dem Neustart   back
+
+ +Mit dem Attribut initialize Wird der Status vorbelegt, mit Initialisierung nach dem Neustart.

Anwendungsbeispiel: Nach dem Neustart soll der Zustand von di_lamp mit "initialized" vorbelegt werden. Das Reading cmd_nr wird auf 0 gesetzt, damit wird ein Zustandswechsel provoziert, das Modul wird initialisiert - der nächste Trigger führt zum Ausführen eines Kommandos.

@@ -4980,6 +5014,7 @@ Das ist insb. dann sinnvoll, wenn das System ohne Sicherung der Konfiguration (u Ausführen von Befehlsketten beim Starten von FHEM   back

+ Beim Hochfahren von FHEM lässt sich eine bestimme Aktion ausführen. Es kann dazu genutzt werden, um sofort nach dem Hochfahren des Systems einen definierten Zustand des Moduls zu erreichen. Dabei wird sichergestellt, dass die angegebenen Befehle erst dann ausgeführt werden, wenn FHEM komplett hochgefahren ist.

@@ -4999,6 +5034,7 @@ Beispiele:
Deaktivieren des Moduls   back

+ Ein DOIF-Modul kann mit Hilfe des Attributes disable, deaktiviert werden. Dabei werden alle Timer und Readings des Moduls gelöscht. Soll das Modul nur vorübergehend deaktiviert werden, so kann das durch set <DOIF-modul> disable geschehen.
@@ -5009,7 +5045,8 @@ Soll das Modul nur vorübergehend deaktiviert werden, so kann das durch se Überprüfung aller DOIF-Bedingungen mit Ausführung eines DOIF-Zweiges   back

-mit dem set-Befehl checkall werden wie beim gleichnamigen Attribut alle DOIF-Bedingung überprüft, sobald eine Bedingung als wahr geprüft ist, wird das dazugehörige Kommando ausgeführt. + +Mit dem set-Befehl checkall werden wie beim gleichnamigen Attribut alle DOIF-Bedingung überprüft, sobald eine Bedingung als wahr geprüft ist, wird das dazugehörige Kommando ausgeführt. Zu beachten ist, dass nur der erste wahre DOIF-Zweig ausgeführt wird und dass nur Zustandsabfragen sowie Zeitintervalle sinnvoll überprüft werden können. Ereignisabfragen sowie Zeitpunkt-Definitionen, sind zum Zeitpunkt der checkall-Abfrage normalerweise nicht wahr.

@@ -5020,14 +5057,16 @@ Beispiel:
Inaktivieren des Moduls   back

-mit dem set-Befehl disable wird ein DOIF-Modul inaktiviert. Hierbei bleiben alle Timer aktiv, sie werden aktualisiert - das Modul bleibt im Takt, allerdings werden keine Befehle ausgeführt. + +Mit dem set-Befehl disable wird ein DOIF-Modul inaktiviert. Hierbei bleiben alle Timer aktiv, sie werden aktualisiert - das Modul bleibt im Takt, allerdings werden keine Befehle ausgeführt. Das Modul braucht mehr Rechenzeit, als wenn es komplett über das Attribut disable deaktiviert wird. Ein inaktiver Zustand bleibt nach dem Neustart erhalten. Ein inaktives Modul kann über set-Befehle enable bzw. initialize wieder aktiviert werden.

Aktivieren des Moduls   back

-mit dem set-Befehl enable wird ein inaktives DOIF-Modul wieder aktiviert. Im Gegensatz zum set-Befehl initialize wird der letzte Zustand vor der Inaktivierung des Moduls wieder hergestellt.
+ +Mit dem set-Befehl enable wird ein inaktives DOIF-Modul wieder aktiviert. Im Gegensatz zum set-Befehl initialize wird der letzte Zustand vor der Inaktivierung des Moduls wieder hergestellt.

Initialisieren des Moduls   back
@@ -5039,6 +5078,7 @@ Diese Eigenschaft kann auch dazu genutzt werden, ein bereits aktives Modul zu in Auführen von Befehlszweigen ohne Auswertung der Bedingung   back

+ Mit set <DOIF-modul> cmd_<nr> lässt sich ein Befehlszweig (cmd_1, cmd_2, usw.) bedingunglos ausführen.

Der Befehl hat folgende Eigenschaften:
@@ -5148,12 +5188,12 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
-Kurzreferenz   back
+Kurzreferenz   back
-
+
Definition -
+
Readings Operanden in der Bedingung und den Befehlen und im Perl-Modus @@ -5230,35 +5276,35 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
Status [<Device>⟨,<Default>⟩]
-
+
Readings [<Device>:<Reading>⟨,<Default>⟩]
-
+
Internals [<Device>:&<Internal>⟨,<Default>⟩]
-
+
Filtern allgemein nach Ausdrücken mit Ausgabeformatierung: [<Device>:<Reading>|<Internal>:"<Filter>"⟨:<Output>⟩⟨,<Default>⟩]
-
+
Filtern einer Zahl [<Device>:<Reading>:d,<Default>⟩]
-
+
Zeitspanne eines Readings seit der letzten Änderung [<Device>:<Reading>:sec,<Default>⟩]
-
+
$DEVICE
für den Gerätenamen
-
+
$EVENT
für das zugehörige Ereignis
-
+
$EVENTS
für alle zugehörigen Ereignisse eines Triggers
-
+
$SELF
für den Gerätenamen des DOIF
-
+
<Perl-Funktionen>
vorhandene und selbsterstellte Perl-Funktionen
-
+
Operanden in der Bedingung und im Perl-Modus @@ -5267,70 +5313,70 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
Events [<Device>:"<Regex-Events>"] oder ["<Regex-Devices>:<Regex-Events>"] oder ["<Regex-Devices>":"<Regex-Filter>"⟩⟨:<Output>⟩,<Default>]
für <Regex> gilt: ^<ist eindeutig>$, ^<beginnt mit>, <endet mit>$, "" entspricht ".*", Regex-Filter ist mit [^\:]*: (.*) vorbelegt siehe auch Reguläre Ausdrücke und Events des Gerätes global
-
+
Zeitpunkte [<time>]
als [HH:MM], [HH:MM:SS] oder [Zahl] in Sekunden nach Mitternacht
-
+
Zeitintervalle [<begin>-<end>]
als [HH:MM], [HH:MM:SS] oder [Zahl] in Sekunden nach Mitternacht
-
+
indirekte Zeitangaben [[<indirekte Zeit>]]
als [HH:MM], [HH:MM:SS] oder [Zahl] in Sekunden nach Mitternacht, <indirekte Zeit> ist ein Status, Reading oder Internal
-
+
relative Zeitangaben [+<time>]
als [HH:MM], [HH:MM:SS] oder [Zahl] in Sekunden
-
+
ausgerichtete Zeitraster [:MM]
in Minuten zwischen 00 und 59
-
+
rel. Zeitraster ausgerichtet [+:MM]
in Minuten zwischen 1 und 59
-
+
rel. Zeitraster ausgerichtet alle X Stunden [+[h]:MM]
MM in Minuten zwischen 1 und 59, h in Stunden zwischen 2 und 23
-
+
Wochentagsteuerung [<time>|012345678], [<begin>-<end>]|012345678]
Pipe, gefolgt von ein o. mehreren Ziffern. Bedeutung: 0 bis 6 für So. bis Sa., 7 für $we, Wochenende oder Feiertag, 8 für !$we, Werktags.
-
+
berechnete Zeitangaben [(<Berechnung, gibt Zeit in Sekunden zurück, im Sinne von time>)]
Berechnungen sind mit runden Klammern einzuschliessen. Perlfunktionen, die HH:MM zurückgeben sind mit geschweiften Klammern einzuschliessen.
-
+
Intervall-Timer [<begin>-<end>,<relativ timer>]
Löst zu den aus <relativ timer> berechneten Zeitpunkten im angegebenen Zeitintervall <begin>-<end> aus.
-
+
Trigger verhindern [?<devicename>], [?<devicename>:<readingname>], [?<devicename>:&<internalname>], [?<time specification>]
Werden Status, Readings, Internals und Zeitangaben in der Bedingung mit einem Fragezeichen eingeleitet, triggern sie nicht.
-
+
$device, $event, $events
Perl-Variablen mit der Bedeutung der Schlüsselworte $DEVICE, $EVENT, $EVENTS
-
+
$cmd
Perl-Variablen mit der Bedeutung [$SELF:cmd]
-
+
<Perl-Zeitvariablen>
Variablen für Zeit- und Datumsangaben, $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst, $week, $hms, $hm, $md, $ymd
-
+
set-Befehle get-Befehle @@ -5339,7 +5385,7 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
html
liefert HTML-Code einer definierten uiTable zurück.
-
+
@@ -5348,76 +5394,78 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
Verzögerungen attr <name> wait <timer_1_1>,<timer_1_2>,...:<timer_2_1>,<timer_2_2>,...:...
Zeit in Sekunden als direkte Angabe oder Berechnung, ein Doppelpunkt trennt die Timer der Bedingungsweige, ein Komma die Timer der Befehlssequenzen eines Bedingungszweiges.
-
+
Verzögerung von Timern attr <name> timerWithWait
erweitert wait auf Zeitangaben
-
-
Befehlswiederholung zulassen attr <name> do always
-
wiederholt den Ausführungsteil, wenn die selbe Bedingung wiederholt wahr wird.
-
-
Zurücksetzen des Waittimers bei Wiederholung attr <name> do resetwait
-
setzt den Waittimer zurück, wenn die selbe Bedingung wiederholt wahr wird.
-
+
+ +
attr <name> do <always|resetwait>
+
always wiederholt den Ausführungsteil, wenn die selbe Bedingung wiederholt wahr wird.
+ resetwait setzt den Waittimer zurück, wenn die selbe Bedingung wiederholt wahr wird.
+
+ +
Befehle wiederholen attr <name> repeatcmd <timer Bedingungszweig 1>:<timer Bedingungszweig 2>:...
Zeit in Sekunden als direkte Angabe oder Berechnung, nach der Befehle wiederholt werden.
-
+
Pause für Wiederholung attr <name> cmdpause <Pause cmd_1>:<Pause cmd_2>:...
Zeit in Sekunden als direkte Angabe oder Berechnung, blockiert die Befehlsausführung während der Pause.
-
+
Begrenzung von Wiederholungen attr <name> repeatsame <maximale Anzahl von cmd_1>:<maximale Anzahl von cmd_2>:...
Anzahl als direkte Angabe oder Berechnung, begrenzt die maximale Anzahl unmittelbar folgender Befehlsausführungen.
-
+
Warten auf Wiederholung attr <name> waitsame <Wartezeit cmd_1>:<Wartezeit cmd_2>:...
Wartezeit in Sekunden als direkte Angabe oder Berechnung, für ein unmittelbar wiederholtes Zutreffen einer Bedingung.
-
+
Löschen des Waittimers attr <name> waitdel <timer_1_1>,<timer_1_2>,...:<timer_2_1>,<timer_2_2>,...:...
Zeit in Sekunden als direkte Angabe oder Berechnung, ein laufender Timer wird gelöscht und die Befehle nicht ausgeführt, falls eine Bedingung vor Ablauf des Timers wiederholt wahr wird.
-
+
Readingauswertung bei jedem Event des Devices attr <name> checkReadingEvent <0|1>
0 deaktiviert, 1 keine Funktion mehr, entspricht internen der Voreinstellung des Moduls.
-
+
Selbsttriggerung attr <name> selftrigger <wait|all>
lässt die Triggerung des Gerätes durch sich selbst zu. wait zugelassen für verzögerte Befehle, all zugelassen auch für nicht durch wait verzögerte Befehle; es ist nur eine Rekusion möglich
-
+
Event beim Setzen eines Timers attr <name> timerevent <0|ungleich Null>
erzeugt beim Setzen eines Timers ein Event. ungleich Null aktiviert, 0 deaktiviert
-
+
Gerätestatus ersetzen attr <name> cmdState <Ersatz cmd_1_1>,...,<Ersatz cmd_1>|<Ersatz cmd_2_1>,...,<Ersatz cmd_2>|...
ersetzt die Standartwerte des Gerätestatus als direkte Angabe oder Berechnung, die Ersatzstatus von Befehlssequenzen werden durch Kommata, die von Befehlszweigen durch Pipe Zeichen getrennt.
-
+
Befehle bei FHEM-Start ausführen attr <name> startup <FHEM-Befehle>|{<Perl-Befehle mit DOIF-Syntax>}
-
+
dynamischer Status attr <name> state <content>
<content> ist das Ergebnis eines Perl-Ausdrucks, DOIF-Syntax ([<device>:<reading>], usw.) triggert bei Event die Berechnung.
-
-
Erzeugen berechneter Readings attr <name> DOIF_Readings <readingname_1>:<content_1>,<readingname_2>:<content_2> ...
+
+
Erzeugen berechneter Readings attr <name> DOIF_Readings <readingname_1>:<content_1>,<readingname_2>:<content_2> ...
<content_n> ist das Ergebnis von Perl-Ausdrücken, DOIF-Syntax ([<device>:<reading>], usw.) triggert bei Event die Berechnung.
-
+
Ersatzwert für nicht existierende Readings oder Status attr <name> notexist "<Ersatzwert>"
-
+
Status Initialisierung nach Neustart attr <name> intialize <Status nach Neustart>
-
+
Gerät vollständig deaktivieren attr <name> disable <0|1>
1 deaktiviert das Modul vollständig, 0 aktiviert es.
-
+
Alle Bedingungen prüfen attr <name> checkall <event|timer|all>
event Alle Bedingungen werden geprüft, wenn ein Event-Trigger (Ereignisauslöser) auslöst.
timer Alle Bedingungen werden geprüft, wenn ein Timer-Trigger (Zeitauslöser) auslöst.
all   Alle Bedingungen werden geprüft.
Die Befehle nach der ersten wahren Bedingung werden ausgeführt.
-
+
Eindeutige Statuserkennung attr <name> addStateEvent <0|ungleich Null>
fügt einem Gerätestatus-Event "state:" hinzu. ungleich Null aktiviert, 0 deaktiviert, siehe auch addStateEvent
-
-
Readings, die mit set gesetzt werden können attr <name> readingList <Reading1> <Reading2> ...
-
fügt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu. siehe auch readingList
-
-
Readings mit Werteliste und optionaler Widgetangabe attr <name> setList <Reading1>:⟨<Modifier1>,⟩<Value1>,<Value2>,<...> <Reading2>:⟨<Modifier2>,⟩<Value1>,<Value2>,<...> ...
-
fügt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu, siehe auch setList, widgetOverride, und webCmd
+
+ +
attr <name> readingList <Reading1> <Reading2> ...
+
fügt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu.
+
+
attr <name> setList <Reading1>:⟨<Modifier1>,⟩<Value1>,<Value2>,<...> <Reading2>:⟨<Modifier2>,⟩<Value1>,<Value2>,<...> ...
+
fügt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu. setList, widgetOverride, und webCmd

User Interface für DOIF attr <name> uiTable{<perl code (format specification, template specification, function definition, control variable, ...)>}\n⟩<template file import, method definition, table definition>
format specification:
@@ -5590,7 +5638,7 @@ Für unterschiedliche blockierende Funktionen ist jeweils ein eigener Name (<