Treppenstufenbeleuchtung - Script

Hallo zusammen,

ich habe mir eine Treppenstufenbeleuchtung gebaut mit DMX-ArtNet.

Jetzt möchte ich das die Stufen zeitverzögert eingeschaltet werden. Dies ist das Script

<?php

DMX_SetRGB(56969, 250, 0, 0,);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(58919, 0, 0, 250);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(31762, 250, 0, 0);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(41469, 0, 0, 250);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(57181, 250, 0, 0);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(19903, 0, 0, 250);    // Einschalten
IPS_Sleep(1000);
DMX_SetRGB(35091, 250, 0, 0);    // Einschalten


//DMX_FadeRGB(56969, 250, 0, 250, 0.0);   // Einschalten
//DMX_FadeRGB(58919, 250, 0, 250, 10.0);  // Einschalten
//DMX_FadeRGB(31762, 250, 0, 250, 20.0);  // Einschalten
//DMX_FadeRGB(41469, 250, 0, 250, 30.0);  // Einschalten
//DMX_FadeRGB(57181, 250, 0, 250, 40.0);  // Einschalten
//DMX_FadeRGB(19903, 250, 0, 250, 50.0);  // Einschalten
//DMX_FadeRGB(35091, 250, 0, 250, 60.0);  // Einschalten



DMX_FadeRGBDelayed(56969, 0, 0, 0, 3.0, 7); // Ausschalten
DMX_FadeRGBDelayed(58919, 0, 0, 0, 3.0, 11); // Ausschalten
DMX_FadeRGBDelayed(31762, 0, 0, 0, 3.0, 14); // Ausschalten
DMX_FadeRGBDelayed(41469, 0, 0, 0, 3.0, 18); // Ausschalten
DMX_FadeRGBDelayed(57181, 0, 0, 0, 3.0, 22); // Ausschalten
DMX_FadeRGBDelayed(19903, 0, 0, 0, 3.0, 26); // Ausschalten
DMX_FadeRGBDelayed(35091, 0, 0, 0, 3.0, 30); // Ausschalten


Ich versuchte es mit IPS_Sleep, dies funktioniert auch aber es hagelt Fehlermeldungen zum anderen hatte ich mal gelesen das man den Befehl nicht unbedingt verwenden soll weil er das System sehr belastet.
Das ausschalten funktioniert einwandfrei.
Könnte mir bitte jemand helfen oder einen Rat geben wie ich dies am besten hinbekomme.

Es könnte mit Timer Event klappen aber ich verstehe einfach nicht wie dies funktioniert.

Viele Grüße
Thomas

Was für Fehlermeldung kommen denn?

Das Skript läuft halt länger und blockiert so einen Thread, außerdem kannst Du irgendwann ins Limit laufen wenn Du viele Pausen so setzt.

Du könntest die einzustellenden Parameter in einem Array hinterlegen. Dann rufst Du das Skript zyklisch auf und zählst bei jedem Aufruf eine Zähler Variable hoch. Die Zählervariable entspricht dann den Key aus dem Array den Du nutzten willst. Dies übergibst Du an die zu schaltende Funktion. Das lohnt sich aber wohl nur wenn die Pausen wirklich länger sind einen Timer zu nutzten. Ansonsten wäre es interessanter erst mal zu schauen was da für Fehlermeldungen wegen IPS-Sleep kommen und warum.

Warum nutzt du nicht auch zum Einschalten

Sonst wie Fonzo schreibt: was für Fehlermeldungen?

Jetzt habe ich es. Die Fehlermeldung war eine falsch konfigurierte Instanz.

@Heidewinkler: Genau das fragte ich mich soeben auch. Ich muß Fade ja nur auf 0.0 stellen.
Ich habe 2 Tage wenn es die Zeit erlaubte getüftelt, überlegt, gelesen und probiert, manchmal kommt man nicht auf das einfachste.

Jetzt sieht es so aus, die Farben und Zeiteinstellungen sind nur zu Testzwecken.

<?php

DMX_FadeRGBDelayed(56969, 250, 0, 0, 0.0, 1);   // Einschalten
DMX_FadeRGBDelayed(58919, 0, 0, 250, 0.0, 3);   // Einschalten
DMX_FadeRGBDelayed(31762, 0, 250, 0, 0.0, 6);   // Einschalten
DMX_FadeRGBDelayed(41469, 250, 0, 0, 0.0, 9);   // Einschalten
DMX_FadeRGBDelayed(57181, 0, 0, 250, 0.0, 12);  // Einschalten
DMX_FadeRGBDelayed(19903, 0, 250, 0, 0.0, 15);  // Einschalten
DMX_FadeRGBDelayed(35091, 250, 0, 0, 0.0, 18);  // Einschalten



//DMX_SetRGB(56969, 250, 0, 0,);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(58919, 0, 0, 250);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(31762, 250, 0, 0);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(41469, 0, 0, 250);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(57181, 250, 0, 0);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(19903, 0, 0, 250);    // Einschalten
//IPS_Sleep(1000);
//DMX_SetRGB(35091, 250, 0, 0);    // Einschalten






DMX_FadeRGBDelayed(56969, 0, 0, 0, 3.0, 7);  // Ausschalten
DMX_FadeRGBDelayed(58919, 0, 0, 0, 3.0, 11); // Ausschalten
DMX_FadeRGBDelayed(31762, 0, 0, 0, 3.0, 14); // Ausschalten
DMX_FadeRGBDelayed(41469, 0, 0, 0, 3.0, 18); // Ausschalten
DMX_FadeRGBDelayed(57181, 0, 0, 0, 3.0, 22); // Ausschalten
DMX_FadeRGBDelayed(19903, 0, 0, 0, 3.0, 26); // Ausschalten
DMX_FadeRGBDelayed(35091, 0, 0, 0, 3.0, 30); // Ausschalten

Eine frage hätte ich noch ist es besser über IPS_Sleep oder DMX_FadeRGBDelayed einzuschalten?

Vielen Dank Heidewinkler für den Denkanstoß.

Danke auch an Fonzo für deine Bemühungen.

IPS_Sleep verlängert die Scriptlaufzeit. Zu viel davon … nicht gut…
DMX_FadeRGBDelayed wird in der Instanz Verzögert… extra dafür gemacht.

Alles klar, habe ich mir fast gedacht. Danke nochmal.