Variablen aus anderen Scripten abfragen oder setzen

Sodele,

nach weiteren Erfolglosen Versuchen, hoffe ich, das mir hier doch noch jemand einen Tip geben kann.
Dieses Script läßt sich ohne Probleme manuell ausführen (ext. Variable setzen, Rollo herunterfahren, nach 2 sec Rollo stoppen). Wenn ich genau dieses Script über einen Timer starten lasse, macht es Mist (Das Rollo fährt zu lange runter, und macht einige weitere Steps nach unten (obwohl kein Befahl im Script steht)). Wenn ich das setzen der Variablen hinter ein weiteren Sleep (1sec.) am Ende des Scriptes setze, wird das Verhalten zwar besser, aber die Zeit stimmt immer noch nicht und Steps gibt es manchmal auch.

???

<?

//ext. Variable für nachfolgende Scripte setzen.
SetValue(24409 /*[xComfort Gateway\Wohnzimmer\Status für Wohnzimmer Rollo Tür Taster Variable]*/,0 );
// Rollo herunterfahren
MXC_ShutterMoveDown(35798 /*[xComfort Gateway\Wohnzimmer\xComfort Shutter Rollo Wonzimmer Tür]*/);
// Zeit die das Rollo herunter fahren soll.
IPS_Sleep(2000);
// Nach Ablauf der Zeit wird das Rollo angehalten.
MXC_ShutterStop(35798 /*[xComfort Gateway\Wohnzimmer\xComfort Shutter Rollo Wonzimmer Tür]*/);


?>

Gibt es hier ein Problem mit V2 oder mache ich etwas Falsch, was ich nicht sehe ???

Viele Grüße

Olaf

Hallo Olaf,

wie meinst Du das ? Ereignis hinzufügen, Zyklisches Ereignis ?

Wenn ein Timer läuft, startet er je nach angegebener Zeit das Script automatisch.

Wenn ich genau dieses Script über einen Timer starten lasse, macht es Mist (Das Rollo fährt zu lange runter, und macht einige weitere Steps nach unten (obwohl kein Befahl im Script steht)).

Hallo Rainer,

ja genau, ich habe ein Ereignis hinzugefügt, damit das Script zu einer bestimmten Zeit startet.
Wenn das Script über den Timer startet, dann macht es wie oben beschrieben Mist.
Wenn ich es manuell starte („Ausführen“ in der Console) dann läuft es Problemlos.

Evtl. gibt es ja hier jemanden das auch Moeller einsetzt, und das mal nachvollziehen kann, so langsam zweifel ich an mir…:confused:

Viele Grüße

Olaf

Hallo zusammen,

so wie aussieht habe ich es hinbekommen.:smiley:

Ich habe den IPS_Sleep Befehl durch IPS_SetScriptTimer(xxxxxx,1) ersetzt.
mit dem ich 1sec. nach dem „Rollo runter Befehl“ ein neu erstelltes „Rollo Stop Script“ aufrufe, indem auch der Timer auf 0 gesetzt wird.

Jetzt scheint es zu laufen, werde es aber noch ein paar Tage testen…:wink:

Mich würde aber trotzdem interessieren warum es mit IPS_Sleep zu diesen Unregelmäßigkeiten gekommen ist, evtl. mag ja mal ein Entwickler danach schauen, mit dem weiter oben stehende Script läßt sich das gut reproduzieren. Es scheint als wenn die Ausführung des Scriptes manuel und automatisch über ein Ereignis (Timer) unterschiedlich ist.

  1. Rollo runter Script:
<?

//ext. Variable für nachfolgende Scripte setzen.
SetValue(24409 /*[xComfort Gateway\Wohnzimmer\Status für Wohnzimmer Rollo Tür Taster Variable]*/,0 );

// Rollo herunterfahren
MXC_ShutterMoveDown(35798 /*[xComfort Gateway\Wohnzimmer\xComfort Shutter Rollo Wonzimmer Tür]*/);

// Durch den Timer, wird nach Ablauf der Zeit das Rollo über das Stop Script angehalten.
IPS_SetScriptTimer(29669 /*[xComfort Gateway\Wohnzimmer\Rollo Wohnzimmer Tür Stop]*/, 1);

?>

2.Stop Script:

<?

//Rollo wird gestopt
MXC_ShutterStop(35798 /*[xComfort Gateway\Wohnzimmer\xComfort Shutter Rollo Wonzimmer Tür]*/);

//Timer wird auf 0 gesetzt.
IPS_SetScriptTimer(29669 /*[xComfort Gateway\Wohnzimmer\Rollo Wohnzimmer Tür Stop]*/, 0);

?>

Viele Grüße

Olaf