Timer unterhalb des ausführenden Scriptes anlegen

Diese Script habe ich aus dem Beispiel genommen:

if($_IPS['SENDER'] == "Execute")
{
    $eventid = @IPS_GetEventIDByName("Timer", $_IPS['SELF']);
    if($eventid === false)
    {
        $eventid = IPS_CreateEvent(1); //Cyclic
        IPS_SetEventActive($eventid, true);
        IPS_SetName($eventid, "Timer");
        IPS_SetEventScript($eventid, $_IPS['SELF']);
        IPS_SetEventCyclic($eventid, 0, 0, 0, 0, 3, 6);
    }
}

Sollte der Timer nicht direkt unterhalb des hier laufenden Scriptes angelegt werden? Bei mir legt er den Timer immer in den Root an. Jemand eine Idee was ich falsch mache?

Dir fehlt:

IPS_SetParent :wink:
>> IPS_SetParent — IP-Symcon :: Automatisierungssoftware

In deinem Fall:

if($_IPS['SENDER'] == "Execute") 
{ 
    $eventid = @IPS_GetEventIDByName("Timer", $_IPS['SELF']); 
    if($eventid === false) 
    { 
        $eventid = IPS_CreateEvent(1); //Cyclic 
        IPS_SetName($eventid, "Timer"); 
        IPS_SetParent($eventid, $_IPS['SELF']); 
        IPS_SetEventCyclic($eventid, 0, 0, 0, 0, 3, 6); 
        IPS_SetEventActive($eventid, true); 
    } 
}  

Grüße,
Chris

Und du nutzt IPS_SetEventScript auch falsch. Damit wird nicht das Ziel-Skript gesetztm welches ausgeführt werden soll.
Sondern PHP-Code welcher direkt ausgeführt werden soll.
IPS_SetEventScript — IP-Symcon :: Automatisierungssoftware

Wenn das Ziel ein Skript sein soll, so ist dies mit IPS_SetParent zu regeln, wie von Bayaro schon geschrieben.

Michael