Was können wir verbessern?

Dokumentation

IPS_SetEventCyclic

boolean IPS_SetEventCyclic (integer $EreignisID, integer $Datumstyp, integer $Datumsintervall, integer $Datumstage, integer $Datumstagesintervall, integer $Zeittyp, integer $Zeitintervall)

Parameterliste

EreignisID ID des zu verändernden Ereignisses
Datumstyp
Wert Beschreibung
0 Kein Datumstyp. Tägliche Ausführung.
1 Einmalig. IPS_SetEventCyclicDateFrom für Zieldatum
2 Täglich
3 Wöchentlich
4 Monatlich
5 Jährlich
Datumsintervall
Datumstyp Beschreibung
0 0 (Keine Auswertung)
1 0 (Keine Auswertung)
2 Alle X Tage
3 Alle X Wochen
4 Alle X Monate
5 1 = Januar … 12 = Dezember
Datumstage
Datumstyp Beschreibung
0 0 (Keine Auswertung)
1 0 (Keine Auswertung)
2 0 (Keine Auswertung)
3 siehe Tabelle: Tageswerte (gewünschte Tageswerte müssen addiert werden)
4 siehe Tabelle: Tageswerte oder 0 für jeden X Tag im Monat
5 0 (Keine Auswertung)

Tabelle: Tageswerte

Tag Wert
Montag 1
Dienstag 2
Mittwoch 4
Donnerstag 8
Freitag 16
Samstag 32
Sonntag 64
Datumstagesintervall
Datumstyp Beschreibung
0 0 (Keine Auswertung)
1 0 (Keine Auswertung)
2 0 (Keine Auswertung)
3 0 (Keine Auswertung)
4 Jeden X Datumstag im Monat oder jeden X Tag im Monat, falls Datumstag = 0
5 Jeden X Tag im angegebenen Monat
Zeittyp
Wert Beschreibung
0 Einmalig IPS_SetEventCyclicTimeFrom für Zielzeit
1 Sekündlich
2 Minütlich
3 Stündlich
Zeitintervall
Zeittyp Beschreibung
0 0 (Keine Auswertung)
1 Alle X Sekunden
2 Alle X Minuten
3 Alle X Stunden

Rückgabewerte

Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.

Beschreibung

Um ein zyklisches Ereignis zu konfigurieren, muss festgelegt werden, in welchen Intervallen dieses ausgeführt werden soll. Dazu gehört ein Datumsintervall, welches das Intervall in einem bestimmten Tages-, Wochen-, Monats- oder Jahresrythmus festlegt und ein Zeitintervall, welches an dem jeweiligen Tag ein sekunden-, minuten- oder stundenbasierendes Intervall festlegt.

Wird das Datumsintervall als “Woche” gewählt, so besteht die Möglichkeit die Tage der Woche zu bestimmten an denen das Ereignis gestartet werden soll. Bei Monatlichem oder Jährlichem Datumsintervall kann der Tag im Monat/Jahr im Parameter Datumswert angegeben werden. Bei allen anderen Typen kann der Parameter mit dem Platzhalter 0 angegeben werden.

Spitzfindigkeiten: - (Monatlich) Bei der Variante “Am X. Tag alle Y Monate” bedeutet X > 31, dass der letzte Tag im Monat gewählt wird. Wenn z.B. für X = 31 ausgewählt wird, so werden nur Monate berücksichtigt, die 31 Tage haben. - (Monatlich) Bei der Variante “Am X. Wochentag alle Y Monate” bedeutet X >5, dass die letzte Woche gewählt wird. Wenn z.B. für X = 5 ausgewählt wird, so werden nur Monate berücksichtigt, die einen jeweiligen 5. Wochentag haben. - (Jährlich) Bei der Variante “Am X. Monat” wird ein Timer nur ausgeführt, wenn X ein gültiger Tag in diesem Monat ist, andernfalls wird der Timer nicht ausgeführt.

Beispiel

//Zum aktuellen Zeitpunkt alle 8 Wochen etwas ausführen
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, (int)date("H"), (int)date("i"), (int)date("s"));
IPS_SetEventCyclicDateFrom($eid, (int)date("d"), (int)date("m"), (int)date("Y"));
IPS_SetEventCyclic($eid, 2 /* Täglich */ , 8 * 7 /* Alle 8 Wochen */,0,0,0,0);
IPS_SetEventActive($eid, true);
 
//Jeden Tag alle 6 Stunden ab 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 2 /* Täglich */, 1 /* Jeden Tag */, 0, 0, 3 /* Stündlich */, 6 /* Alle 6 Stunden */);   
 
//Alle 2 Minuten ab 0 Uhr bis 12 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 0 /* Keine Datumsüberprüfung */, 0, 0, 2, 2 /* Minütlich */ , 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeTo($eid, 12, 0, 0);
 
//Alle 2 Minuten zwischen 8 Uhr und 10 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 0 /* Keine Datumsüberprüfung */, 0, 0, 2, 2 /* Minütlich */ , 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeFrom($eid, 8, 0, 0);
IPS_SetEventCyclicTimeTo($eid, 10, 0, 0);
 
//Alle 2 Wochen am Montag+Mittwoch einmalig um genau 0:00 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 3 /* Wöchentlich */, 2 /* Alle 2 Wochen */, 1+4 /* Montag (1) + Dienstag (4) */, 0, 0, 0); 
 
//Täglich um 15 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, 15, 0, 0);
 
//Am ersten Tag im Monat um 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 4 /* Monatlich */, 1 /* Jeden Monat */, 0 /* Egal welcher Tag */, 1 /* Erster Tag im Monat */, 0, 0); 
 
//Am ersten Freitag im Monat um 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 4 /* Monatlich */, 1 /* Jeden Monat */, 16 /* Am Freitag */, 1 /* Erster Freitag im Monat */, 0, 0);
Haben Sie noch Fragen?