IPS_SetEventCyclicTimeFrom

Hallo Zusammen,

ich habe ein kleines Problem mit dem „IPS_SetEventCyclicTimeFrom“ Befehl.

Ich Start aus einem Script einen Timer mit folgendem Befehl:

IPS_SetEventCyclicTimeFrom(47406 ,intval(date('H')), intval(date('i')+5), 0); 

Soweit funktioniert auch alles. Nur Wenn das Script z.b. um 6.57Uhr ausgeführt wird bekomme ich die Fehlermeldung ungültige Minute.
Hat jemand eine Idee wie ich den Timer anders starten kann ohne das ich eine Fehlermeldung bekomme?

Gruß Stephan

Abend!

Der Teil war Schmarn :smiley:

Edit: Ich versuche grad deinen Fehler nachzustellen, bekomme es aber nicht hin :confused: Wie kann man das nachstellen? Kannst du es genauer erklären?
> Kommt der Fehler sicher von dieser Zeile?

Alternative Methode:
>> IPS_SetEventCyclicTimeBounds — IP-Symcon :: Automatisierungssoftware

Mehr Infos? :slight_smile:

Grüße,
Chris

Weil es 6:62 Uhr nicht gibt.
Maximal gehts bis 59.

Aaaaaah :smiley: Gut, dass einer hier mitdenkt :wink:

Alternative, wie geschrieben „…TimeBounds“:

		$EventTime= time() + $Zeit;
		IPS_SetEventCyclicTimeBounds($EventID, $EventTime, 0);

Edit: So kann man den „Fehler“ immer nachstellen :slight_smile:

IPS_SetEventCyclicTimeFrom($IDvomTestEvent ,intval(date('H')), intval(date('i')+60), 0);

Grüße,
Chris

Hallo Zusammen,

sorry, das ich mich erst jetzt melde.
Danke für den Tipp, das war genau mein Problem.

Der Befehl funktioniert auch soweit.

Nur der Doku zu „IPS_SetEventCyclicTimeBounds“ steht aber folgendes:

Ab IP-Symcon 3.1 ist diese Funktion veraltet und wird nur noch zur Abwärtskompatibilität emuliert. Bitte weichen Sie auf die neuen Funktionen IPS_SetEventCyclicTimeFrom und IPS_SetEventCyclicTimeTo aus

Muss ich jetzt trotzendem etwas anderes machen für die Zukunft ?

Gruß Stephan

Öhm…verdammt, gar nicht gesehen. Auf so Sachen müsste viel deutlicher hingewiesen werden… :mad:

Ja, dann musst du (und ich auch), auf die von dir genannten Varianten zurückgreifen.

Grüße,
Chris

@Stephan

Um den ursprünglichen Befehl weiterzubenutzen, kannst du’s so probieren (300 Sekunden addiert):


IPS_SetEventCyclicTimeFrom(47406 ,intval(date('H', time() + 300)), intval(date('i', time() + 300)), 0);

Oder einfach mal in die __compatibility.inc.php schauen wie Paresy es emuliert :smiley:
(Dürfte wohl auch fast das gleiche wie von Nancilla hinauslaufen, ups…)
Michael

Es gibt hier Leute, die haben immer wieder gute Ideen :smiley:

Auszug aus „__compatibility.inc.php“:

if (!function_exists('IPS_SetEventCyclicTimeBounds')) {

	function IPS_SetEventCyclicTimeBounds($EventID, $FromTime, $ToTime)
	{
		$ret = true;
		if($FromTime == 0) {
			$ret = $ret & IPS_SetEventCyclicTimeFrom($EventID, 0, 0, 0);
		} else {
			$ret = $ret & IPS_SetEventCyclicTimeFrom($EventID, (int)date("H", $FromTime), (int)date("i", $FromTime), (int)date("s", $FromTime));
		}
		if($ToTime == 0) {
			$ret = $ret & IPS_SetEventCyclicTimeTo($EventID, 0, 0, 0);
		} else {
			$ret = $ret & IPS_SetEventCyclicTimeTo($EventID, (int)date("H", $ToTime), (int)date("i", $ToTime), (int)date("s", $ToTime));
		}	
		return $ret;		
	}	

}

Grüße,
Chris