diff --git a/FHEM/98_DOIF.pm b/FHEM/98_DOIF.pm
index 1dad38dfc..3ba1a9f48 100644
--- a/FHEM/98_DOIF.pm
+++ b/FHEM/98_DOIF.pm
@@ -4200,7 +4200,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:
@@ -4237,7 +4237,7 @@ attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday
{[07:30|[myweekday]];fhem_set"radio off"}
attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday,weekend,workdays
-
+
Zeitsteuerung mit Zeitintervallen back
Zeitintervalle werden im Format angegeben: [<begin>-<end>]
,
@@ -4486,7 +4486,7 @@ Innerhalb der Perlberechnung können Readings, Status oder Internals wie gewohnt
define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})
attr di_average do always
-
+
Ersatzwert für nicht existierende Readings oder Status back
@@ -4513,7 +4513,7 @@ so lässt sich das über das Attribut notexist
bewerkstelligen. Ein
Syntax: attr <DOIF-module> notexist "<default value>"
-
+
Verzögerungen back
@@ -4552,8 +4552,7 @@ Beispiel:
attr my_doif wait 1:[mydummy:state]*3:rand(600)+100,Attr("mydevice","myattr","")
-
-
+
Verzögerungen von Timern back
@@ -4599,7 +4598,7 @@ DOELSEIF ([light] eq "off" and [sensor:humidity]<60)
attr di_fan wait 120:0:180
-
+
Zurücksetzen des Waittimers für das gleiche Kommando back
Im Gegensatz zu do always
wird ein Waittimer mit dem Attribut do resetwait
auch dann zurückgesetzt, wenn die gleiche Bedingung wiederholt wahr wird.
@@ -4612,7 +4611,7 @@ Das Attribut do resetwait
impliziert eine beliebige Wiederholung wi
attr di_push wait 1800
attr di_push do resetwait
-
+
Wiederholung von Befehlsausführung back
@@ -4657,7 +4656,7 @@ Zwischen 5:00 und 22:00 Uhr läuft die Zirkulationspumpe alle 60 Minuten jeweils
attr di_presence_simulation repeatcmd rand(3600)+2200
-
+
Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung back
@@ -4670,7 +4669,7 @@ In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die
attr di_frost cmdpause 3600
attr di_frost do always
-
+
Begrenzung von Wiederholungen eines Kommandos back
@@ -4691,7 +4690,7 @@ in Kombination mit do always
bzw. do resetwait
gilt f
attr di_repeat repeatsame 0:2
attr di_repeat do always
-
+
Ausführung eines Kommandos nach einer Wiederholung einer Bedingung back
@@ -4704,7 +4703,7 @@ Für Kommandos, für die waitsame
nicht gelten soll, werden die ent
attr di_shuttersup waitsame 2
attr di_shuttersup do always
-
+
Löschen des Waittimers nach einer Wiederholung einer Bedingung back
@@ -4726,8 +4725,7 @@ Die Attribute wait
und waitdel
lassen sich für versch
attr di_cmd wait 2:0
attr di_cmd waitdel 0:2
-
-
+
Readingauswertung bei jedem Event des Devices back
@@ -4736,7 +4734,7 @@ Bei Angaben der Art [<Device>:<Reading>]
wird das Modul
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
checkReadingEvent 1
keine weitere Funktion mehr.
-
+
Eindeutige Statuserkennung back
@@ -4750,7 +4748,7 @@ Bei Statusänderungen eines Devices wird bei der Angabe des Attributes add
attr di_lamp do always
attr di_lamp addStateEvent
-
+
Triggerung durch selbst ausgelöste Events back
@@ -4763,13 +4761,13 @@ Die Auswertung des eigenen Zustands z. B. über [$SELF:cmd] funktioniert dagegen
Bei der Verwendung des Attributes selftrigger all
sollte beachtet werden, dass bereits in der zweiten Rekursion,
wenn ein Befehl nicht durch wait verzögert wird, FHEM eine weitere Triggerung unterbindet, um Endlosschleifen zu verhindern.
-
+
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.
-
+
Zeitspanne eines Readings seit der letzten Änderung back
Bei Readingangaben kann die Zeitspanne mit [<Device>:<Reading>:sec]
in Sekunden seit der letzten Änderung bestimmt werden.
@@ -4782,7 +4780,7 @@ attr di_lamp do always
Bei HM-Bewegungsmelder werden periodisch Readings aktualisiert, dadurch wird das Modul getrigger, auch wenn keine Bewegung stattgefunden hat.
Der Status bleibt dabei auf "motion". Mit der obigen Abfrage lässt sich feststellen, ob der Status aufgrund einer Bewegung tatsächlich upgedatet wurde.
-
+
Alle Bedingungen prüfen back
@@ -4798,7 +4796,7 @@ Folgende Parameter können angegeben werden:
Zu beachten ist, dass bei einer wahren Bedingung die dazugehörigen Befehle ausgeführt werden und die Abarbeitung immer beendet wird -
es wird also grundsätzlich immer nur ein Befehlszweig ausgeführt und niemals mehrere.
-
+
Darstellungselement mit Eingabemöglichkeit im Frontend und Schaltfunktion back
@@ -4834,7 +4832,7 @@ attr di_web setList myInput:first,second
benutzerdefinierte Readings
Bedingungsloses Ausführen von Befehlen
-
+
uiTable, das User Interface back
@@ -5089,7 +5087,7 @@ DEF TPL_temp(STY($1.$TPL{unit},FUNC_temp($1)))
Links
FHEMWEB-Widgets
-
+
Status des Moduls back
@@ -5118,7 +5116,7 @@ Der Ausführungsteil kann jeweils ausgelassen werden.
define di_hum DOIF ([outdoor:humidity]>70) DOELSEIF ([outdoor:humidity]>50) DOELSE
attr di_hum cmdState wet|normal|dry
-
+
Anpassung des Status mit Hilfe des Attributes state
back
@@ -5141,7 +5139,7 @@ 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
@@ -5171,7 +5169,7 @@ attr di_temp DOIF_Readings temperature:[#average:d2:":temperature":temperature]<
Hierbei wird der aufwändig berechnete Durchschnittswert nur einmal berechnet, statt zwei mal, wenn man die Aggregationsfunktion direkt in der Bedingung und im Ausführungsteil angeben würde.
-
+
Vorbelegung des Status mit Initialisierung nach dem Neustart back
@@ -5183,7 +5181,7 @@ Mit dem Attribut initialize
Wird der Status vorbelegt, mit Initiali
Das ist insb. dann sinnvoll, wenn das System ohne Sicherung der Konfiguration (unvorhergesehen) beendet wurde und nach dem Neustart die zuletzt gespeicherten Zustände des Moduls nicht mit den tatsächlichen übereinstimmen.
-
+
Ausführen von Befehlsketten beim Starten von FHEM back
@@ -5203,7 +5201,7 @@ Beispiele:
attr di_test startup sleep 60;set lamp1 off;set lamp2 off
attr di_test startup {myfunction()},set lamp1 on,set lamp2 on
-
+
Deaktivieren des Moduls back
@@ -5211,10 +5209,10 @@ Ein DOIF-Modul kann mit Hilfe des Attributes disable, deaktiviert werden. Dabei
Soll das Modul nur vorübergehend deaktiviert werden, so kann das durch set <DOIF-modul> disable
geschehen.
-
+
Set-Befehle
-
+
Überprüfung aller DOIF-Bedingungen mit Ausführung eines DOIF-Zweiges back
@@ -5226,7 +5224,7 @@ Beispiel:
attr di_test startup set $SELF checkall
-
+
Inaktivieren des Moduls back
@@ -5234,7 +5232,7 @@ Mit dem set-Befehl disable
wird ein DOIF-Modul inaktiviert. Hierbei
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
@@ -5247,7 +5245,7 @@ mit dem set-Befehl initialize
wird ein DOIF-Modul initialisiert. Ei
Im Gegensatz zum set-Befehl enable
wird der letzte Zustand des Moduls gelöscht, damit wird ein Zustandswechsel herbeigeführt, der nächste Trigger führt zur Ausführung eines wahren DOIF-Zweiges.
Diese Eigenschaft kann auch dazu genutzt werden, ein bereits aktives Modul zu initialisieren.
-
+
Auführen von Befehlszweigen ohne Auswertung der Bedingung back
@@ -5281,7 +5279,7 @@ attr di_lamp setList on off
Zusätzlich führt die Definition von setList
zur Ausführung von set di_lamp on/off
durch das Anlicken des Lampensymbols wie im vorherigen Beispiel.
-
+
Weitere Anwendungsbeispiele back
Zweipunktregler a la THRESHOLD
@@ -5570,12 +5568,12 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
Verzögerung von Timern attr <name> timerWithWait
erweitert wait
auf Zeitangaben
-
+
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.
@@ -5632,13 +5630,13 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
Eindeutige Statuserkennung attr <name> addStateEvent <0|ungleich Null>
fügt einem Gerätestatus-Event "state:" hinzu. ungleich Null aktiviert, 0 deaktiviert, siehe auch addStateEvent
-
+
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:
$TABLE = "<CSS-Attribute>"
ergänzt das table-Elemente um CSS-Attribute.