Timerwizard mit frei definierbaren Zeiten

Folgendes Problem: Mehrere Skripte werden über den Timerwizard alle 30 Min gestartet. Zu dieser Zeit ist der Rechner stark belastet. Besser wäre: Alle Skripte etwas versetzt alle 30 Min starten.

Leider kann ich die Startzeit der erstmaligen Ausführung nicht einstellen. Neue Option?

Gruss
TK

Timer Wizard fallen lassen, und ein Schleifenskript einbauen, dass im Minutentakt aufgerufen wird !

Copy/Paste aus meinem Projekt:

$fht_loop = GetValueInteger("FHT_LOOP_COUNTER");

if ($fht_loop < 11) $fht_loop = $fht_loop + 1;
else ($fht_loop = 0);

SetValueInteger("FHT_LOOP_COUNTER", $fht_loop);

switch ($fht_loop)
        {
         case  1 : include_once("FLOOR_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  2 : include_once("SALA_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  3 : include_once("KITCH_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  4 : include_once("WC_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  5 : include_once("BATH1_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  6 : include_once("BATH2_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  7 : include_once("KID1_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  8 : include_once("KID2_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case  9 : include_once("MASBED_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

         case 10 : include_once("KID3_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;
                   
         case 11 : include_once("COMP_GLOBDEF.ips.php");
                   include(IPS_GetScriptFile("FHT_MODUL"));
                   break;

            }

Hier siehst du einen Schleifenzähler, der bis 11 zählt, und dann wieder bei 0 anfängt. Du kannst ihn aber auch auf 1 setzen. Warum 0, hat bei mir noch eine spezielle Funktion zusätzlich, sollte dich nicht beirren !
DU brauchst nur eine globale Variable, hier im Beispiel „FHT_LOOP_COUNTER“ und muss deine Skripte einfach in die „case“-Zeilen einzutragen !
Trigger dieses Skriptes ist : 60 Sekunden Intervall !
et voilà !

mfG Franz

Hallo,

ich hatte mich ebenfalls mit diesem Problem herumgeschlagen.

Die Version von Franz finde ich wirklich gut, ist vor Allem sehr übersichtlich.

@TK6:

Leider kann ich die Startzeit der erstmaligen Ausführung nicht einstellen. Neue Option?

Wenn Du aber die Startzeit definitiv festlegen willst, gibt es auch eine Möglichkeit. Ich habe mich im sFHTs mal mit beschäftigt.
Schau mal hier:http://www.ipsymcon.de/forum/showthread.php?t=1299&page=5
Damit kann man auf die Minute genau synchronisieren. Mit wenig mehr Aufwand lässt sich das auch auf die Sekunde genau festlegen.
Diese Variante hat noch einen entscheidenden Unterschied (deshalb habe ich das im sFHTs Script eingebaut):

Sie hat als Sender den TimerEvent. Im normalen TimerWizzard (seit dem letzten LiveUpdate) und mit der Version von Franz gibt der Aufruf als Sender immer Execute zurück. :confused:

Da ich diese Funktion auch vermehrt brauche, habe ich mittlerweile eine Funktion geschrieben, die ich dann mit zwei Parametern aufrufe: (synctime,looptime).

Wobei synctime die zu synchronisierende Minute und looptime die Laufzeit setzt. Dann einfach im Startscript aufrufen und schon stimmt die Zeit. :smiley: :smiley: :smiley:

Fabian