mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-01 20:20:10 +00:00
98_DOIF.pm: mit Direkthilfe
git-svn-id: https://svn.fhem.de/fhem/trunk@17291 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
dd5958fe69
commit
562ec11304
@ -3535,7 +3535,7 @@ Eine ausführliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgel
|
||||
<a href="#DOIF_uiTable">uiTable, das User Interface</a><br>
|
||||
<a href="#DOIF_Reine_Statusanzeige_ohne_Ausfuehrung_von_Befehlen">Reine Statusanzeige ohne Ausführung von Befehlen</a><br>
|
||||
<a href="#DOIF_state">Anpassung des Status mit Hilfe des Attributes <code>state</code></a><br>
|
||||
<a href="#DOIF_Readings">Erzeugen berechneter Readings<br>
|
||||
<a href="#DOIF_DOIF_Readings">Erzeugen berechneter Readings<br>
|
||||
<a href="#DOIF_initialize">Vorbelegung des Status mit Initialisierung nach dem Neustart mit dem Attribut <code>initialize</code></a><br>
|
||||
<a href="#DOIF_disable">Deaktivieren des Moduls</a><br>
|
||||
<a href="#DOIF_setcmd">Bedingungslose Ausführen von Befehlszweigen</a><br>
|
||||
@ -3562,7 +3562,7 @@ Eine ausführliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgel
|
||||
<a href="#DOIF_checkReadingEvent">checkReadingEvent</a>
|
||||
<a href="#DOIF_cmdpause">cmdpause</a>
|
||||
<a href="#DOIF_cmdState">cmdState</a>
|
||||
<a href="#DOIF_Readings">DOIF_Readings</a>
|
||||
<a href="#DOIF_DOIF_Readings">DOIF_Readings</a>
|
||||
<a href="#DOIF_disable">disable</a>
|
||||
<a href="#DOIF_do_always">do always</a>
|
||||
<a href="#DOIF_do_resetwait">do resetwait</a>
|
||||
@ -4076,6 +4076,7 @@ alternativ mit Buchstaben-Kürzeln:<br>
|
||||
<code>[<time>|So Mo Di Mi Do Fr Sa WE AT]</code> WE entspricht der Ziffer 7 und AT der Ziffer 8<br>
|
||||
<br>
|
||||
<a name="DOIF_weekdays"></a>
|
||||
<a name="weekdays"></a>
|
||||
Mit Hilfe des Attributes <code>weekdays</code> können beliebige Wochentagbezeichnungen definiert werden. Die Syntax lautet:<br>
|
||||
<br>
|
||||
<code>weekdays <Bezeichnung für Sonntag>,<Bezeichnung für Montag>,...,<Bezeichnung für Wochenende>,<Bezeichnung für Arbeitstage></code><br>
|
||||
@ -4313,6 +4314,7 @@ attr di_average do always</code><br>
|
||||
<a name="DOIF_notexist"></a>
|
||||
<b>Ersatzwert für nicht existierende Readings oder Status</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="notexist"></a>
|
||||
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.<br>
|
||||
<br>
|
||||
@ -4339,6 +4341,7 @@ Syntax: <code>attr <DOIF-module> notexist "<default value>"</code> <
|
||||
<a name="DOIF_wait"></a>
|
||||
<b>Verzögerungen</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="wait"></a>
|
||||
Verzögerungen für die Ausführung von Kommandos werden pro Befehlsfolge über das Attribut "wait" definiert. Syntax:<br>
|
||||
<br>
|
||||
<code>attr <DOIF-module> wait <Sekunden für Befehlsfolge des ersten DO-Falls>:<Sekunden für Befehlsfolge des zweiten DO-Falls>:...<br></code>
|
||||
@ -4378,6 +4381,7 @@ Beispiel:<br>
|
||||
<br>
|
||||
<b>Verzögerungen von Timern</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="timerWithWait"></a>
|
||||
Verzögerungen können mit Hilfe des Attributs <code>timerWithWait</code> auf Timer ausgeweitet werden.<br>
|
||||
<br>
|
||||
<u>Anwendungsbeispiel</u>: Lampe soll zufällig nach Sonnenuntergang verzögert werden.<br>
|
||||
@ -4436,6 +4440,7 @@ attr di_push do resetwait</code><br>
|
||||
<a name="DOIF_repeatcmd"></a>
|
||||
<b>Wiederholung von Befehlsausführung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="repeatcmd"></a>
|
||||
Wiederholungen der Ausführung von Kommandos werden pro Befehlsfolge über das Attribut "repeatcmd" definiert. Syntax:<br>
|
||||
<br>
|
||||
<code>attr <DOIF-modul> repeatcmd <Sekunden für Befehlsfolge des ersten DO-Falls>:<Sekunden für Befehlsfolge des zweiten DO-Falls>:...<br></code>
|
||||
@ -4480,6 +4485,7 @@ attr di_presence_simulation repeatcmd rand(3600)+2200</code><br>
|
||||
<a name="DOIF_cmdpause"></a>
|
||||
<b>Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="cmdpause"></a>
|
||||
Mit dem Attribut <code>cmdpause <Sekunden für cmd_1>:<Sekunden für cmd_2>:...</code> 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.<br>
|
||||
<br>
|
||||
@ -4492,6 +4498,7 @@ attr di_frost do always</code><br>
|
||||
<a name="DOIF_repeatsame"></a>
|
||||
<b>Begrenzung von Wiederholungen eines Kommandos</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="repeatsame"></a>
|
||||
Mit dem Attribut <code>repeatsame <maximale Anzahl von cmd_1>:<maximale Anzahl von cmd_2>:...</code> wird die maximale Anzahl hintereinander folgenden Ausführungen festgelegt.<br>
|
||||
<br>
|
||||
<u>Anwendungsbeispiel</u>: Die Meldung soll maximal dreimal erfolgen mit einer Pause von mindestens 10 Minuten <br>
|
||||
@ -4512,6 +4519,7 @@ attr di_repeat do always</code><br>
|
||||
<a name="DOIF_waitsame"></a>
|
||||
<b>Ausführung eines Kommandos nach einer Wiederholung einer Bedingung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="waitsame"></a>
|
||||
Mit dem Attribut <code>waitsame <Zeitspanne in Sekunden für cmd_1>:<Zeitspanne in Sekunden für das cmd_2>:...</code> wird ein Kommando erst dann ausgeführt, wenn innerhalb einer definierten Zeitspanne die entsprechende Bedingung zweimal hintereinander wahr wird.<br>
|
||||
Für Kommandos, für die <code>waitsame</code> nicht gelten soll, werden die entsprechenden Sekundenangaben ausgelassen oder auf Null gesetzt.<br>
|
||||
<br>
|
||||
@ -4524,6 +4532,7 @@ attr di_shuttersup do always</code><br>
|
||||
<a name="DOIF_waitdel"></a>
|
||||
<b>Löschen des Waittimers nach einer Wiederholung einer Bedingung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="waitdel"></a>
|
||||
Das Gegenstück zum <code>repeatsame</code>-Attribut ist das Attribut <code>waitdel</code>. 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.<br>
|
||||
<br>
|
||||
@ -4546,6 +4555,7 @@ attr di_cmd waitdel 0:2</code><br>
|
||||
<br>
|
||||
<b>Readingauswertung bei jedem Event des Devices</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="checkReadingEvent"></a>
|
||||
Bei Angaben der Art <code>[<Device>:<Reading>]</code> wird das Modul getriggert, wenn ein Ereignis zum angegebenen Device und Reading kommt. Soll das Modul, wie bei Statusangaben der Art <code>[<Device>]</code>, auf alle Ereignisse des Devices reagieren, so muss das Attribut auf Null gesetzt werden.<br>
|
||||
<br>
|
||||
Bemerkung: In früheren Versionen des Moduls war <code>checkReadingEvent 0</code> die Voreinstellung des Moduls. Da die aktuelle Voreinstellung des Moduls <code>checkReadingEvent 1</code> ist, hat das Setzen von
|
||||
@ -4554,6 +4564,7 @@ Bemerkung: In früheren Versionen des Moduls war <code>checkReadingEvent 0</code
|
||||
<a name="DOIF_addStateEvent"></a>
|
||||
<b>Eindeutige Statuserkennung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="addStateEvent"></a>
|
||||
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 <code>addStateEvent</code> bewerksteligen.
|
||||
Bei Statusänderungen eines Devices wird bei der Angabe des Attributes <code>addStateEvent</code> im Event "state: " vorangestellt, darauf kann man dann gezielt im DOIF-Modul triggern.<br>
|
||||
@ -4567,6 +4578,7 @@ attr di_lamp addStateEvent</code><br>
|
||||
<a name="DOIF_selftrigger"></a>
|
||||
<b>Triggerung durch selbst ausgelöste Events</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="selftrigger"></a>
|
||||
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 <code>selftrigger wait</code> 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 <code>selftrigger all</code> reagiert das Modul grundsätzlich alle selbst ausgelösten Trigger.<br>
|
||||
@ -4579,6 +4591,7 @@ Bei der Verwendung des Attributes <code>selftrigger all</code> sollte beachtet w
|
||||
<a name="DOIF_timerevent"></a>
|
||||
<b>Setzen der Timer mit Event</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="timerevent"></a>
|
||||
Wenn das Attribut <code>timerevent</code> 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.<br>
|
||||
<br>
|
||||
<a name="DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung"></a>
|
||||
@ -4597,6 +4610,7 @@ Der Status bleibt dabei auf "motion". Mit der obigen Abfrage lässt sich festste
|
||||
<a name="DOIF_checkall"></a>
|
||||
<b>Alle Bedingungen prüfen</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="checkall"></a>
|
||||
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 <b>checkall</b> 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
|
||||
<a name="DOIF_setList__readingList"></a>
|
||||
<b>Darstellungselement mit Eingabemöglichkeit im Frontend und Schaltfunktion</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
Die unter <a href="#dummy">Dummy</a> beschriebenen Attribute <a href="#readingList">readingList</a> und <a href="#setList">setList</a> 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 <a href="#setList">setList</a>, die in <a href="#FHEMWEB">FHEMWEB</a> angegebenen Modifier des Attributs <a href="#widgetOverride">widgetOverride</a> verwendet werden. Siehe auch das <a href="http://www.fhemwiki.de/wiki/DOIF/Ein-_und_Ausgabe_in_FHEMWEB_und_Tablet-UI_am_Beispiel_einer_Schaltuhr">weiterführende Beispiel für Tablet-UI</a>. Für die Verwendung moduleigener Readings ist die Funktionalität nicht gewährleistet, siehe <a href="#DOIF_Benutzerreadings">benutzerdefinierte Readings</a>.<br>
|
||||
<a name="setList"></a>
|
||||
Die unter <i>Dummy</i> beschriebenen Attribute <i>readingList</i> und <i>setList</i> 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 <i>setList</i>, die in <i>FHEMWEB</i> angegebenen Modifier des Attributs <i>widgetOverride</i> verwendet werden.<br>
|
||||
<br>
|
||||
<u>Anwendungsbeispiel</u>: Eine Schaltuhr mit time-Widget für die Ein- u. Ausschaltzeiten und der Möglichkeit über eine Auswahlliste manuell ein und aus zu schalten.<br>
|
||||
<br>
|
||||
@ -4634,9 +4649,20 @@ attr time_switch webCmd mybutton:mybegin:myend
|
||||
<br>
|
||||
attr di_web setList myInput:first,second</code><br>
|
||||
<br>
|
||||
<u>Links</u><br>
|
||||
<a href="#readingList">readingList</a><br>
|
||||
<a href="#setList">setList</a><br>
|
||||
<a href="#webCmd">webCmd</a><br>
|
||||
<a href="#webCmdLabel">webCmdLabel</a><br>
|
||||
<a href="#widgetOverride">widgetOverride</a><br>
|
||||
<a href="http://www.fhemwiki.de/wiki/DOIF/Ein-_und_Ausgabe_in_FHEMWEB_und_Tablet-UI_am_Beispiel_einer_Schaltuhr">weiterführendes Beispiel für Tablet-UI</a><br>
|
||||
<a href="#DOIF_Benutzerreadings">benutzerdefinierte Readings</a><br>
|
||||
<a href="#DOIF_setcmd">Bedingungsloses Ausführen von Befehlen</a><br>
|
||||
<br>
|
||||
<a name="DOIF_uiTable"></a>
|
||||
<b>uiTable, das User Interface</a></b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="uiTable"></a>
|
||||
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.<br>
|
||||
<br>
|
||||
Features:<br>
|
||||
@ -4751,7 +4777,7 @@ Brennericon<br>
|
||||
<br>
|
||||
<code>WID([burner:state],"iconLabel,closed,sani_boiler_temp\@DarkOrange,open,sani_boiler_temp")<br></code>
|
||||
<br>
|
||||
Die Widget-Definition entspricht der FHEM-Widget-Syntax, siehe: <a href="https://wiki.fhem.de/wiki/FHEMWEB/Widgets">FHEMWEB-Widgets</a><br>
|
||||
Die Widget-Definition entspricht der Syntax der FHEM-Widgets.<br>
|
||||
<br>
|
||||
Thermostatdefinition mit Hilfe des knob-Widgets:<br>
|
||||
<br>
|
||||
@ -4885,10 +4911,13 @@ in mytemplates.tpl<br>
|
||||
## template methode<br>
|
||||
DEF TPL_temp(STY($1.$TPL{unit},FUNC_temp($1)))<br></code>
|
||||
<br>
|
||||
<u>Links</u><br>
|
||||
<a href="https://wiki.fhem.de/wiki/FHEMWEB/Widgets">FHEMWEB-Widgets</a><br>
|
||||
<br>
|
||||
<a name="DOIF_cmdState"></a>
|
||||
<b>Status des Moduls</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="cmdState"></a>
|
||||
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:<br>
|
||||
<br>
|
||||
attr <DOIF-modul> cmdState <Status für cmd1_1>,<Status für cmd1_2>,...| <Status für cmd2_1>,<Status für cmd2_2>,...|...<br>
|
||||
@ -4917,6 +4946,7 @@ attr di_hum cmdState wet|normal|dry</code><br>
|
||||
<a name="DOIF_state"></a>
|
||||
<b>Anpassung des Status mit Hilfe des Attributes <code>state</code></b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="state"></a>
|
||||
Es können beliebige Reading und Status oder Internals angegeben werden.<br>
|
||||
<br>
|
||||
<u>Anwendungsbeispiel</u>: Aktuelle Außenfeuchtigkeit inkl. Klimazustand (Status des Moduls wurde mit cmdState definiert s. o.)<br>
|
||||
@ -4936,9 +4966,10 @@ Da man beliebige Perl-Ausdrücke verwenden kann, lässt sich z. B. der Mittelwer
|
||||
<br>
|
||||
<code>attr di_average state Average of the two rooms is {(sprintf("%.1f",([room1:temperature]+[room2:temperature])/2))}</code><br>
|
||||
<br>
|
||||
<a name="DOIF_Readings"></a>
|
||||
<a name="DOIF_DOIF_Readings"></a>
|
||||
<b>Erzeugen berechneter Readings</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="DOIF_Readings"></a>
|
||||
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.<br>
|
||||
@ -4969,7 +5000,10 @@ attr heating DOIF_Readings frost:([outdoor:temperature] < 0 ? "on" : "off")</cod
|
||||
Das Attribut do always ist in diesem Beispiel unkritisch, obwohl Temperatur zyklisch gesendet wird, da das Reading "frost" nur dann die Bedingung triggert, wenn sich dessen Inhalt ändert<br>
|
||||
<br>
|
||||
<a name="DOIF_initialize"></a>
|
||||
<b>Vorbelegung des Status mit Initialisierung nach dem Neustart mit dem Attribut <code>initialize</code></b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<b>Vorbelegung des Status mit Initialisierung nach dem Neustart</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="initialize"></a>
|
||||
Mit dem Attribut <code>initialize</code> Wird der Status vorbelegt, mit Initialisierung nach dem Neustart.<br>
|
||||
<br>
|
||||
<u>Anwendungsbeispiel</u>: Nach dem Neustart soll der Zustand von <code>di_lamp</code> mit "initialized" vorbelegt werden. Das Reading <code>cmd_nr</code> wird auf 0 gesetzt, damit wird ein Zustandswechsel provoziert, das Modul wird initialisiert - der nächste Trigger führt zum Ausführen eines Kommandos.<br>
|
||||
<br>
|
||||
@ -4980,6 +5014,7 @@ Das ist insb. dann sinnvoll, wenn das System ohne Sicherung der Konfiguration (u
|
||||
<a name="DOIF_startup"></a>
|
||||
<b>Ausführen von Befehlsketten beim Starten von FHEM</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="startup"></a>
|
||||
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.<br>
|
||||
<br>
|
||||
@ -4999,6 +5034,7 @@ Beispiele:<br>
|
||||
<a name="DOIF_disable"></a>
|
||||
<b>Deaktivieren des Moduls</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="disable"></a>
|
||||
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 <code>set <DOIF-modul> disable</code> geschehen.
|
||||
<br>
|
||||
@ -5009,7 +5045,8 @@ Soll das Modul nur vorübergehend deaktiviert werden, so kann das durch <code>se
|
||||
<a name="DOIF_setcheckall"></a>
|
||||
<b>Überprüfung aller DOIF-Bedingungen mit Ausführung eines DOIF-Zweiges</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
mit dem set-Befehl <code>checkall</code> 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.
|
||||
<a name="checkall"></a>
|
||||
Mit dem set-Befehl <code>checkall</code> 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.<br>
|
||||
<br>
|
||||
@ -5020,14 +5057,16 @@ Beispiel:<br>
|
||||
<a name="DOIF_setdisable"></a>
|
||||
<b>Inaktivieren des Moduls</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
mit dem set-Befehl <code>disable</code> wird ein DOIF-Modul inaktiviert. Hierbei bleiben alle Timer aktiv, sie werden aktualisiert - das Modul bleibt im Takt, allerdings werden keine Befehle ausgeführt.
|
||||
<a name="disable"></a>
|
||||
Mit dem set-Befehl <code>disable</code> 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 <code>disable</code> deaktiviert wird. Ein inaktiver Zustand bleibt nach dem Neustart erhalten.
|
||||
Ein inaktives Modul kann über set-Befehle <code>enable</code> bzw. <code>initialize</code> wieder aktiviert werden.<br>
|
||||
<br>
|
||||
<a name="DOIF_setenable"></a>
|
||||
<b>Aktivieren des Moduls</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
mit dem set-Befehl <code>enable</code> wird ein inaktives DOIF-Modul wieder aktiviert. Im Gegensatz zum set-Befehl <code>initialize</code> wird der letzte Zustand vor der Inaktivierung des Moduls wieder hergestellt.<br>
|
||||
<a name="enable"></a>
|
||||
Mit dem set-Befehl <code>enable</code> wird ein inaktives DOIF-Modul wieder aktiviert. Im Gegensatz zum set-Befehl <code>initialize</code> wird der letzte Zustand vor der Inaktivierung des Moduls wieder hergestellt.<br>
|
||||
<br>
|
||||
<a name="DOIF_Initialisieren_des_Moduls"></a>
|
||||
<b>Initialisieren des Moduls</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
@ -5039,6 +5078,7 @@ Diese Eigenschaft kann auch dazu genutzt werden, ein bereits aktives Modul zu in
|
||||
<a name="DOIF_setcmd"></a>
|
||||
<b>Auführen von Befehlszweigen ohne Auswertung der Bedingung</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
<br>
|
||||
<a name="cmd_1"></a>
|
||||
Mit <code>set <DOIF-modul> cmd_<nr></code> lässt sich ein Befehlszweig (cmd_1, cmd_2, usw.) bedingunglos ausführen.<br>
|
||||
<br>
|
||||
Der Befehl hat folgende Eigenschaften:<br>
|
||||
@ -5148,12 +5188,12 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
<br>
|
||||
<!-- Beginn der Kurzreferenz -->
|
||||
<a name="DOIF_Kurzreferenz"></a>
|
||||
<b>Kurzreferenz</b> <a href="#DOIF_Inhaltsuebersicht">back</a></br>
|
||||
<b>Kurzreferenz</b> <a href="#DOIF_Inhaltsuebersicht">back</a><br>
|
||||
|
||||
<ul>
|
||||
⟨⟩ kennzeichnet optionale Angaben
|
||||
</ul>
|
||||
</br>
|
||||
<br>
|
||||
<u><a href="#DOIF">Definition</a></u>
|
||||
<ul>
|
||||
<dl>
|
||||
@ -5171,58 +5211,64 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
</dd>
|
||||
</dl>
|
||||
</ul>
|
||||
</br>
|
||||
<br>
|
||||
<u>Readings</u>
|
||||
<ul>
|
||||
<dl>
|
||||
<dt>Device</dt>
|
||||
<dd>Name des auslösenden Gerätes</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>block_<block name></dt>
|
||||
<dd>Zeigt die Ausführung eines Perl-Blocks an (Perl).</dd>
|
||||
<br>
|
||||
<dt>cmd</dt>
|
||||
<dd>Nr. des letzten ausgeführten Befehls als Dezimalzahl oder 0 nach Initialisierung des DOIF, in der Form <Nr. des Befehlszweiges>⟨.<Nr. der Sequenz>⟩</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>cmd_event</dt>
|
||||
<dd>Angabe des auslösenden Ereignisses</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>cmd_nr</dt>
|
||||
<dd>Nr. des letzten ausgeführten Befehlszweiges</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>cmd_seqnr</dt>
|
||||
<dd>Nr. der letzten ausgeführten Befehlssequenz</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>e_<Device>_<Reading>|<Internal>|Events</dt>
|
||||
<dd>Bezeichner und Wert der auslösenden Geräte mit Readings, Internals oder Events</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>error</dt>
|
||||
<dd>Enthält Fehlermeldungen oder Rückgabewerte von Befehlen, siehe <a href="http://www.fhemwiki.de/wiki/DOIF/Tools_und_Fehlersuche#Besonderheit_des_Error-Reading">Besonderheit des Error-Reading</a></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>last_cmd</dt>
|
||||
<dd>letzter Status</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>matched_event_c<lfd. Nr. der Bedingung>_<lfd. Nr. des Events></dt>
|
||||
<dd>Wert, der mit dem Regulären Ausdruck übereinstimmt</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>mode</dt>
|
||||
<dd>der Modus, in dem sich DOIF befindet: <enabled|disabled|deactivated></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>state</dt>
|
||||
<dd>Status des DOIF nach Befehlsausführung, Voreinstellung: cmd_<Nr. des Befehlszweiges>⟨_<Nr. der Befehlssequenz>⟩</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>timer_<lfd. Nr.>_c<Nr. des Befehlszweiges></dt>
|
||||
<dd>verwendete Timer mit Angabe des nächsten Zeitpunktes</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>timer_<timer name></dt>
|
||||
<dd>verwendete, benannte Timer mit Angabe des nächsten Zeitpunktes (Perl)</dd>
|
||||
<br>
|
||||
<dt>wait_timer</dt>
|
||||
<dd>Angabe des aktuellen Wait-Timers</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>warning</dt>
|
||||
<dd>Perl-Warnung bei der Auswertung einer Bedingung</dd>
|
||||
</br>
|
||||
<br>
|
||||
|
||||
<a name="DOIF_Benutzerreadings"></a>
|
||||
<dt><A-Z>_<readingname></dt>
|
||||
<dd>Readings, die mit einem Großbuchstaben und nachfolgendem Unterstrich beginnen, sind für User reserviert und werden auch zukünftig nicht vom Modul selbst benutzt.</dd>
|
||||
</dl>
|
||||
</br>
|
||||
<br>
|
||||
</ul>
|
||||
<a name="DOIF_Operanden"></a>
|
||||
<u>Operanden in der Bedingung und den Befehlen und im Perl-Modus</u>
|
||||
@ -5230,35 +5276,35 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
<dl>
|
||||
<dt><a href="#DOIF_Ereignissteuerung">Status</a> <code><b>[</b><Device>⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Ereignissteuerung">Readings</a> <code><b>[</b><Device><b>:</b><Reading>⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Ereignissteuerung">Internals</a> <code><b>[</b><Device><b>:&</b><Internal>⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Filtern_nach_Zahlen">Filtern allgemein</a> nach Ausdrücken mit Ausgabeformatierung: <code><b>[</b><Device>:<Reading>|<Internal>:"<Filter>"⟨:<Output>⟩⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Filtern_nach_Zahlen">Filtern einer Zahl</a> <code><b>[</b><Device><b>:</b><Reading><b>:d</b>⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung">Zeitspanne eines Readings seit der letzten Änderung</a> <code><b>[</b><Device><b>:</b><Reading><b>:sec</b>⟨<b>,</b><Default>⟩<b>]</b></code></dt>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$DEVICE</dt>
|
||||
<dd>für den Gerätenamen</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$EVENT</dt>
|
||||
<dd>für das zugehörige Ereignis</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$EVENTS</dt>
|
||||
<dd>für alle zugehörigen Ereignisse eines Triggers</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$SELF</dt>
|
||||
<dd>für den Gerätenamen des DOIF</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><Perl-Funktionen></dt>
|
||||
<dd>vorhandene und selbsterstellte Perl-Funktionen</dd>
|
||||
</dl>
|
||||
</br>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<u>Operanden in der Bedingung und im Perl-Modus</u>
|
||||
@ -5267,70 +5313,70 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
<dt><a href="#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events">Events</a> <code><b>[</b><Device><b>:"</b><Regex-Events>"<b>]</b></code> oder <code><b>["</b><Regex-Devices><b>:</b><Regex-Events><b>"]</b></code> oder <code><b>["</b><Regex-Devices><b>"</b>⟨<b>:"</b><Regex-Filter><b>"</b>⟩⟨<b>:</b><Output>⟩<b>,</b><Default><b>]</b></code></dt>
|
||||
<dd>für <code><Regex></code> gilt: <code><b>^</b><ist eindeutig><b>$</b></code>, <code><b>^</b><beginnt mit></code>, <code><endet mit><b>$</b></code>, <code><b>""</b></code> entspricht <code><b>".*"</b></code>, Regex-Filter ist mit <code><b>[^\:]*: (.*)</b></code> vorbelegt siehe auch <a target=blank href="https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke">Reguläre Ausdrücke</a> und Events des Gerätes <a target=blank href="#global">global</a>
|
||||
</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitsteuerung">Zeitpunkte</a> <code><b>[</b><time><b>]</b> </code></dt>
|
||||
<dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl] </b></code> in Sekunden nach Mitternacht</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitsteuerung_mit_Zeitintervallen">Zeitintervalle</a> <code><b>[</b><begin><b>-</b><end><b>]</b></code></dt>
|
||||
<dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden nach Mitternacht</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Indirekten_Zeitangaben">indirekte Zeitangaben</a> <code><b>[[</b><indirekte Zeit><b>]]</b></code></dt>
|
||||
<dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden nach Mitternacht, <code><indirekte Zeit></code> ist ein Status, Reading oder Internal</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Relative_Zeitangaben">relative Zeitangaben</a> <code><b>[+</b><time><b>]</b></code></dt>
|
||||
<dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet">ausgerichtete Zeitraster</a> <code><b>[:MM]</b></code></dt>
|
||||
<dd>in Minuten zwischen 00 und 59</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Relative_Zeitangaben_nach_Zeitraster_ausgerichtet">rel. Zeitraster ausgerichtet</a> <code><b>[+:MM]</b></code></dt>
|
||||
<dd>in Minuten zwischen 1 und 59</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden">rel. Zeitraster ausgerichtet alle X Stunden</a> <code><b>[+[h]:MM]</b></code></dt>
|
||||
<dd><b>MM</b> in Minuten zwischen 1 und 59, <b>h</b> in Stunden zwischen 2 und 23</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Wochentagsteuerung">Wochentagsteuerung</a> <code><b>[</b><time><b>|012345678]</b></code>, <code><b>[</b><begin><b>-</b><end><b>]</b><b>|012345678]</b></code></dt>
|
||||
<dd>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.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitsteuerung_mit_Zeitberechnung">berechnete Zeitangaben</a> <code><b>[(</b><Berechnung, gibt Zeit in Sekunden zurück, im Sinne von <a target=blank href="http://perldoc.perl.org/functions/time.html">time</a>><b>)]</b></code></dt>
|
||||
<dd>Berechnungen sind mit runden Klammern einzuschliessen. Perlfunktionen, die HH:MM zurückgeben sind mit geschweiften Klammern einzuschliessen.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Intervall-Timer">Intervall-Timer</a> <code><b>[</b><begin><b>-</b><end><b>,</b><relativ timer><b>]</b></code></dt>
|
||||
<dd>Löst zu den aus <relativ timer> berechneten Zeitpunkten im angegebenen Zeitintervall <begin>-<end> aus.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger">Trigger verhindern</a> <code><b>[?</b><devicename><b>]</b></code>, <code><b>[?</b><devicename><b>:</b><readingname><b>]</b></code>, <code><b>[?</b><devicename><b>:&</b><internalname><b>]</b></code>, <code><b>[?</b><time specification><b>]</b></code></dt>
|
||||
<dd>Werden Status, Readings, Internals und Zeitangaben in der Bedingung mit einem Fragezeichen eingeleitet, triggern sie nicht.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$device, $event, $events</dt>
|
||||
<dd>Perl-Variablen mit der Bedeutung der Schlüsselworte $DEVICE, $EVENT, $EVENTS</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt>$cmd</dt>
|
||||
<dd>Perl-Variablen mit der Bedeutung [$SELF:cmd]</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><Perl-Zeitvariablen></dt>
|
||||
<dd>Variablen für Zeit- und Datumsangaben, $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst, $week, $hms, $hm, $md, $ymd</dd>
|
||||
</dl>
|
||||
</br>
|
||||
<br>
|
||||
</ul>
|
||||
<u>set-Befehle</u>
|
||||
<ul>
|
||||
<dl>
|
||||
<dt><a href="#DOIF_setcheckall">disable</a> <code><b> set </b><name><b> checkall</b></code></dt>
|
||||
<dd>Überprüfung aller DOIF-Bedingungen mit Ausführung eines wahren DOIF-Zweiges</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_setdisable">disable</a> <code><b> set </b><name><b> disable</b></code></dt>
|
||||
<dd>blockiert die Befehlsausführung</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_Initialisieren_des_Moduls">initialize</a> <code><b> set </b><name><b> initialize</b></code></dt>
|
||||
<dd>initialisiert das DOIF und aktiviert die Befehlsausführung</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_setenable">enable</a> <code><b> set </b><name><b> enable</b></code></dt>
|
||||
<dd>aktiviert die Befehlsausführung, im Gegensatz zur obigen Initialisierung bleibt der letzte Zustand des Moduls erhalten</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_setcmd">cmd_<nr></a> <code><b> set </b><name><b> cmd_<nr></b></code></dt>
|
||||
<dd>führt ohne Auswertung der Bedingung den Befehlszweig mit der Nummer <nr> aus</dd>
|
||||
</dl>
|
||||
</br>
|
||||
<br>
|
||||
</ul>
|
||||
<a name="DOIF_getBefehle"></a>
|
||||
<u>get-Befehle</u>
|
||||
@ -5339,7 +5385,7 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
<dt><a name="HTML-Code von uiTable">html</a></dt>
|
||||
<dd>liefert HTML-Code einer definierten uiTable zurück.</dd>
|
||||
</dl>
|
||||
</br>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<a name="DOIF_Attribute_kurz"></a>
|
||||
@ -5348,76 +5394,78 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
|
||||
<dl>
|
||||
<dt><a href="#DOIF_wait">Verzögerungen</a> <code><b>attr</b> <name> <b>wait </b><timer_1_1><b>,</b><timer_1_2><b>,...:</b><timer_2_1><b>,</b><timer_2_2><b>,...:...</b></code></dt>
|
||||
<dd>Zeit in Sekunden als direkte Angabe oder Berechnung, ein Doppelpunkt trennt die Timer der Bedingungsweige, ein Komma die Timer der Befehlssequenzen eines Bedingungszweiges.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_timerWithWait">Verzögerung von Timern</a> <code><b>attr</b> <name> <b>timerWithWait</b></code></dt>
|
||||
<dd>erweitert <code>wait</code> auf Zeitangaben</dd>
|
||||
</br>
|
||||
<dt><a href="#DOIF_do_always">Befehlswiederholung zulassen</a> <code><b>attr</b> <name> <b>do always</b></code></dt>
|
||||
<dd>wiederholt den Ausführungsteil, wenn die selbe Bedingung wiederholt wahr wird.</dd>
|
||||
</br>
|
||||
<dt><a href="#DOIF_do_resetwait">Zurücksetzen des Waittimers bei Wiederholung</a> <code><b>attr</b> <name> <b>do resetwait</b></code></dt>
|
||||
<dd>setzt den Waittimer zurück, wenn die selbe Bedingung wiederholt wahr wird.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<a name="do"></a>
|
||||
<dt><code><b>attr</b> <name> <b>do </b><<b>always</b>|<b>resetwait</b>></code></dt>
|
||||
<dd><code>always</code> wiederholt den Ausführungsteil, wenn die selbe Bedingung wiederholt wahr wird.<br>
|
||||
<code>resetwait</code> setzt den Waittimer zurück, wenn die selbe Bedingung wiederholt wahr wird.<br>
|
||||
</dd>
|
||||
<a name="DOIF_EndOfItem"></a>
|
||||
<br>
|
||||
<dt><a href="#DOIF_repeatcmd">Befehle wiederholen</a> <code><b>attr</b> <name> <b>repeatcmd </b><timer Bedingungszweig 1><b>:</b><timer Bedingungszweig 2><b>:...</b></code></dt>
|
||||
<dd>Zeit in Sekunden als direkte Angabe oder Berechnung, nach der Befehle wiederholt werden.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_cmdpause">Pause für Wiederholung</a> <code><b>attr</b> <name> <b>cmdpause </b><Pause cmd_1><b>:</b><Pause cmd_2><b>:...</b></code></dt>
|
||||
<dd>Zeit in Sekunden als direkte Angabe oder Berechnung, blockiert die Befehlsausführung während der Pause.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_repeatsame">Begrenzung von Wiederholungen</a> <code><b>attr</b> <name> <b>repeatsame </b><maximale Anzahl von cmd_1><b>:</b><maximale Anzahl von cmd_2><b>:...</b></code></dt>
|
||||
<dd>Anzahl als direkte Angabe oder Berechnung, begrenzt die maximale Anzahl unmittelbar folgender Befehlsausführungen.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_waitsame">Warten auf Wiederholung</a> <code><b>attr</b> <name> <b>waitsame </b><Wartezeit cmd_1><b>:</b><Wartezeit cmd_2><b>:...</b></code></dt>
|
||||
<dd>Wartezeit in Sekunden als direkte Angabe oder Berechnung, für ein unmittelbar wiederholtes Zutreffen einer Bedingung.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_waitdel">Löschen des Waittimers</a> <code><b>attr</b> <name> <b>waitdel </b><timer_1_1><b>,</b><timer_1_2><b>,...:</b><timer_2_1><b>,</b><timer_2_2><b>,...:...</b></code></dt>
|
||||
<dd>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.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_checkReadingEvent">Readingauswertung bei jedem Event des Devices</a> <code><b>attr</b> <name> <b>checkReadingEvent </b><<b>0</b>|<b>1</b>></code></dt>
|
||||
<dd>0 deaktiviert, 1 keine Funktion mehr, entspricht internen der Voreinstellung des Moduls.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_selftrigger">Selbsttriggerung</a> <code><b>attr</b> <name> <b>selftrigger </b><<b>wait</b>|<b>all</b>></code></dt>
|
||||
<dd>lässt die Triggerung des Gerätes durch sich selbst zu. <code>wait</code> zugelassen für verzögerte Befehle, <code>all</code> zugelassen auch für nicht durch wait verzögerte Befehle; es ist nur eine Rekusion möglich</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_timerevent">Event beim Setzen eines Timers</a> <code><b>attr</b> <name> <b>timerevent </b><<b>0</b>|<b>ungleich Null</b>></code></dt>
|
||||
<dd>erzeugt beim Setzen eines Timers ein Event. ungleich Null aktiviert, 0 deaktiviert</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_cmdState">Gerätestatus ersetzen</a> <code><b>attr</b> <name> <b>cmdState </b><Ersatz cmd_1_1><b>,</b>...<b>,</b><Ersatz cmd_1><b>|</b><Ersatz cmd_2_1><b>,</b>...<b>,</b><Ersatz cmd_2><b>|...</b></code></dt>
|
||||
<dd>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.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_startup">Befehle bei FHEM-Start ausführen </a> <code><b>attr</b> <name> <b>startup </b><FHEM-Befehle>|<b>{</b><Perl-Befehle mit DOIF-Syntax><b>}</b></code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_state">dynamischer Status </a> <code><b>attr</b> <name> <b>state </b><content></code></dt>
|
||||
<dd><content> ist das Ergebnis eines Perl-Ausdrucks, DOIF-Syntax ([<device>:<reading>], usw.) triggert bei Event die Berechnung.</dd>
|
||||
</br>
|
||||
<dt><a href="#DOIF_Readings">Erzeugen berechneter Readings </a> <code><b>attr</b> <name> <b>DOIF_Readings </b><readingname_1><b>:</b><content_1><b>,</b><readingname_2><b>:</b><content_2> ...</code></dt>
|
||||
<br>
|
||||
<dt><a href="#DOIF_DOIF_Readings">Erzeugen berechneter Readings </a> <code><b>attr</b> <name> <b>DOIF_Readings </b><readingname_1><b>:</b><content_1><b>,</b><readingname_2><b>:</b><content_2> ...</code></dt>
|
||||
<dd><content_n> ist das Ergebnis von Perl-Ausdrücken, DOIF-Syntax ([<device>:<reading>], usw.) triggert bei Event die Berechnung.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_notexist">Ersatzwert für nicht existierende Readings oder Status</a> <code><b>attr</b> <name> <b>notexist </b>"<Ersatzwert>"</code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_initialize">Status Initialisierung nach Neustart</a> <code><b>attr</b> <name> <b>intialize </b><Status nach Neustart></code></dt>
|
||||
<dd></dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_disable">Gerät vollständig deaktivieren</a> <code><b>attr</b> <name> <b>disable </b><<b>0</b>|<b>1</b>></code></dt>
|
||||
<dd>1 deaktiviert das Modul vollständig, 0 aktiviert es.</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_checkall">Alle Bedingungen prüfen</a> <code><b>attr</b> <name> <b>checkall </b><<b>event</b>|<b>timer</b>|<b>all</b>></code></dt>
|
||||
<dd><code>event</code> Alle Bedingungen werden geprüft, wenn ein Event-Trigger (Ereignisauslöser) auslöst.<br>
|
||||
<code>timer</code> Alle Bedingungen werden geprüft, wenn ein Timer-Trigger (Zeitauslöser) auslöst.<br>
|
||||
<code>all </code> Alle Bedingungen werden geprüft.<br>
|
||||
Die Befehle nach der ersten wahren Bedingung werden ausgeführt.
|
||||
</dd>
|
||||
</br>
|
||||
<br>
|
||||
<dt><a href="#DOIF_addStateEvent">Eindeutige Statuserkennung</a> <code><b>attr</b> <name> <b>addStateEvent </b><<b>0</b>|<b>ungleich Null</b>></code></dt>
|
||||
<dd>fügt einem Gerätestatus-Event "state:" hinzu. ungleich Null aktiviert, 0 deaktiviert, siehe auch <a href="#addStateEvent">addStateEvent</a></dd>
|
||||
</br>
|
||||
<dt><a href="#DOIF_setList__readingList">Readings, die mit set gesetzt werden können</a> <code><b>attr</b> <name> <b>readingList </b><Reading1> <Reading2> ...</code></dt>
|
||||
<dd>fügt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu. siehe auch <a href="#readingList">readingList</a></dd>
|
||||
</br>
|
||||
<dt><a href="#DOIF_setList__readingList">Readings mit Werteliste und optionaler Widgetangabe</a> <code><b>attr</b> <name> <b>setList </b><Reading1><b>:</b>⟨<Modifier1><b>,</b>⟩<Value1><b>,</b><Value2><b>,</b><...><b> </b><Reading2><b>:</b>⟨<Modifier2><b>,</b>⟩<Value1><b>,</b><Value2><b>,</b><...> ...</code></dt>
|
||||
<dd>fügt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu, siehe auch <a href="#setList">setList</a>, <a href="#widgetOverride">widgetOverride</a>, und <a href="#webCmd">webCmd</a></dd>
|
||||
<br>
|
||||
<a name="readingList"></a>
|
||||
<dt><code><b>attr</b> <name> <b>readingList </b><Reading1> <Reading2> ...</code></dt>
|
||||
<dd>fügt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu.</dd>
|
||||
<br>
|
||||
<dt><code><b>attr</b> <name> <b>setList </b><Reading1><b>:</b>⟨<Modifier1><b>,</b>⟩<Value1><b>,</b><Value2><b>,</b><...><b> </b><Reading2><b>:</b>⟨<Modifier2><b>,</b>⟩<Value1><b>,</b><Value2><b>,</b><...> ...</code></dt>
|
||||
<dd>fügt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu. <a href="#setList">setList</a>, <a href="#widgetOverride">widgetOverride</a>, und <a href="#webCmd">webCmd</a></dd>
|
||||
<br>
|
||||
<dt><a href="#DOIF_uiTable">User Interface für DOIF</a> <code><b>attr</b> <name> <b>uiTable</b> ⟨<b>{</b><perl code (format specification, template specification, function definition, control variable, ...)><b>}\n</b>⟩<template file import, method definition, table definition></code></dt>
|
||||
<dd><u>format specification:</u></dd>
|
||||
@ -5590,7 +5638,7 @@ Für unterschiedliche blockierende Funktionen ist jeweils ein eigener Name (<
|
||||
<ul>
|
||||
<a href="#DOIF_addStateEvent">addStateEvent</a>
|
||||
<a href="#DOIF_checkReadingEvent">checkReadingEvent</a>
|
||||
<a href="#DOIF_Readings">DOIF_Readings</a>
|
||||
<a href="#DOIF_DOIF_Readings">DOIF_Readings</a>
|
||||
<a href="#DOIF_disable">disable</a>
|
||||
<a href="#DOIF_initialize">initialize</a>
|
||||
<a href="#DOIF_notexist">notexist</a>
|
||||
|
Loading…
x
Reference in New Issue
Block a user