diff --git a/fhem/FHEM/98_DOIF.pm b/fhem/FHEM/98_DOIF.pm index 186556ccf..c8956a721 100644 --- a/fhem/FHEM/98_DOIF.pm +++ b/fhem/FHEM/98_DOIF.pm @@ -1020,8 +1020,8 @@ sub AggrIntDoIf $num++; push (@devices,$devname); } elsif (defined $value) { + $num++; if ($type eq "sum" or $type eq "average") { - $num++; push (@devices,$devname); $sum+=$number; } elsif ($type eq "max") { @@ -1035,7 +1035,6 @@ sub AggrIntDoIf @devices=($devname); } } elsif ($type eq "median") { - $num++; push @median_values, $number; push (@devices,$devname); } @@ -7409,6 +7408,7 @@ Eine ausführliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgel Indirekten Zeitangaben
Zeitsteuerung mit Zeitberechnung
Intervall-Timer
+ Zeittrigger alle X Tage
Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen
Zeitintervalle, Readings und Status ohne Trigger
Nutzung von Readings, Status oder Internals im Ausführungsteil
@@ -8259,7 +8259,7 @@ DOELSEIF ([([23:00]+int(rand(600)))])

Perl-Modus:
define di_light DOIF
-{[({sunset()}+900+int(rand(600)))];fhem_set"lamp on"}
+{[({sunset()}+900+int(rand(600)))];;fhem_set"lamp on"}
{[([23:00]+int(rand(600)))];;fhem_set"lamp off"}


@@ -8293,7 +8293,7 @@ Für die Zeitberechnung wird der Perlinterpreter benutzt, daher sind für die Be
Syntax:

-[<begin>-<end>,<relative timer>]
+[<begin>-<end>,<relative timer>]

Innerhalb des definierten Zeitintervalls, triggert der definierte Timer. Außerhalb des Zeitintervall wird kein Timer gesetzt.

@@ -8303,7 +8303,7 @@ Innerhalb des definierten Zeitintervalls, triggert der definierte Timer. Außerh attr di_pump do always

Perl-Modus:
-define di_pump DOIF {[08:00-22:00,+:30];fhem_set"pump on-for-timer 300"}
+define di_pump DOIF {[08:00-22:00,+:30];;fhem_set"pump on-for-timer 300"}

Es wird um 08:00, 08:30, 09:00, ..., 21:30 Uhr die Anweisung ausgeführt. Um 22:00 wird das letzte Mal getriggert, das Zeitintervall ist zu diesem Zeitpunkt nicht mehr wahr.

@@ -8313,7 +8313,24 @@ Es lassen sich ebenso indirekte Timer, Timer-Funktionen, Zeitberechnungen sowie attr di_rand_lamp do always

Perl-Modus:
-define di_rand_lamp DOIF {[{sunset()}-[end:state],+(rand(600)+900)|Sa So];fhem_set"lamp on-for-timer 300"}
+define di_rand_lamp DOIF {[{sunset()}-[end:state],+(rand(600)+900)|Sa So];;fhem_set"lamp on-for-timer 300"}
+
+
+Zeittrigger alle X Tage   back
+
+Mit Hilfe der Zeitberechnung kann ein Zeitpunkt statt täglich alle X Tage triggern.
+
+Syntax:
+
+[([<time>]+<days>*[24:00])]
+
+Anwendungsbeispiel: Alle zwei Tage sollen Pflanzen um 21:00 Uhr gewässert werden:
+
+define di_water_plants DOIF ([([21:00]+2*[24:00])])(set water on-for-timer 60)
+attr di_water_plants do always

+
+Perl-Modus:
+define di_water_plants DOIF {[([21:00]+2*[24:00])];;fhem_set"water on-for-timer 60"}


Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen   back