IPS_RunScriptEx mit verzögerter Ausführung des aufzurufenden Skriptes

Moin,

IPS_RunScriptEx ist ja ein schöner Befehl, um Steuerungen wie z. B. Heizung oder Licht durch ein zentrales Programm via Parameterübergabe anzusteuern. Davon mache ich reichlich Gebrauch :slight_smile:

Nun ist es bei meiner Lichtsteuerung erforderlich, dass das Licht zeitverzögert ausgeschaltet werden soll. Der Befehl

IPS_RunScriptEx(kid_ScriptLichtsteuerung, Array("Raum" => kva_Hans, "Status" => false, "Level" => 0.0, "Wartezeit" => 10));

würde aber sofort gestartet werden und ich kann nur über sleep(wartezeit) eine kurze Pause im aufzurufenden Skript einbauen. Wie erreiche ich, dass das aufzurufende Skript via Timer verzögert gestartet wird?

Ideal wäre also ein Befehl IPS_RunScriptEx mit einer erweiterten Syntax für einen Timer :cool:

IPS_RunScriptEx(kid_ScriptLichtsteuerung, Array("Raum" => kva_Hans, "Status" => false, "Level" => 0.0, "Wartezeit" => 10), Timer(60));

Bislang ist mir nur die Lösung eingefallen, für jeden Raum jeweils ein eigenes Skript für an- und ausschalten zu erstellen, welches dann einen Timer zugewiesen bekommt. So hatte ich es auch per virtuellem Tastendruck gelöst als die Lichtsteuerung noch auf der CCU lief.

Sollte jemand eine elegantere Lösung in petto haben, so wäre ich für Hinweise dankbar :wink:

Gruß
Hans

Dafür haben wir IPS_SetScriptTimer :slight_smile:

paresy

Hallo paresy,

das ist schon klar :slight_smile: Ich habe ja geschrieben, dass ich es pro Raum mit IPS_SetScriptTimer lösen kann. Nur wie bekomme ich es hin, dass auch die Parameter an meine Lichtsteuerung übergeben werden, die ja für alle Räume zuständig ist?

Gruß
Hans

Du müsstest in deinem Zielskript pro Raum so einen Timer erstellen. Dies dann leider manuell über IPS_CreateEvent & Co.

paresy

Hallo,

so das Problem ist gelöst :slight_smile:

Ich benutze 2 Scripte. Das 1. wird mit

IPS_RunScriptEx(kid_ScriptLichtsteuerung, Array("Raum" => kva_Hans, "Status" => "aus", "Wartezeit" => 80));

aufgerufen, während das 2. Script über die pro Raum vorhandenen Ereignisse nach berechnetem Startzeitpunkt getriggert wird. Dabei sind die Namen der Ereignisse so gewählt, dass das 2. Script die Informationen über den betroffenen Raum bekommt und die entsprechenden Lampen geschaltet werden :wink:

Gruß
Hans