LED Stripe steuern mit ArtNet

Liebe Liste,

ich habe einen WS2812- Stripe, der mir mit WLED nette Effekte zeigt. zusätzlich möchte ich ihn zur Visu nutzen, um z.B. einen Countdown als Bargraph anzuzeigen.

Mein Ansatz ist Artnet mit DMX_FadeChannelDelayed in einem Script, im Prinzip funktioniert das auch. Im Script allerdings ist das für mich nicht nachvollziehbar:

$sec=5;
//DMX_SetChannel(19705,0,0);
DMX_FadeChannelDelayed(19705,0,0,0,0);
DMX_FadeChannelDelayed(19705,1,255,$sec,0);
DMX_FadeChannelDelayed(19705,4,255,$sec,10);
DMX_FadeChannelDelayed(19705,7,255,$sec,20);

ich hätte da jetzt erwartet, dass 3 LEDS brav nacheinander hoch gedimmt werden, bis alle 3 leuchten. Leider aber gehen vor dem nächsten Fade-Befehl die LEDs wieder aus. Es geht erst die erste LED an, dann nach 10s aus, dann dimmen 2 LEDs hoch, dann wieder aus, etc. Was mache ich falsch bzw. wie kriege ich das richtig hin ?

Danke,
Tom

More Input!

Grundsätzlich müsste nach Script-Aufruf LED 1 innerhalb 5sec voll hell werden. 5sec später dimmt LED 4 voll hoch, 5sec später dimmt LED 7 innerhalb 5sec hoch. Endzustand alle 3 LED Leuchten hell.
Wenn es anders abläuft stimmt etwas in den Instanzen /zuordnung der LEDs nicht.
Mit WLED habe ich zwar keine Erfahrungen aber DMX Ist DMX

Vielleicht missverstehe ich den Hinweis in der Doku, aber wenn delayed benutzt wird und der letzte Parameter ist 0, dann wird doch abgebrochen und nicht gefaded?!
Michael

Ich bin mir nicht sicher, aber soweit ich mich erinnere startet Delay 0 sofort den Fade, kein Delay bricht ab.

Aber ich kenne mich nicht mit WLED aus. Bei meinen RGBW Leds hat jede LED eine Eigene Instanz a’ 4 Kanäle. Auch im WS2812 Pixel Controller.

Doku sagt… Für mich aber auch nicht ganz verständlich:

Wenn keine Verzögerungszeit angegeben wird, bricht dieser Befehl alle für die betroffenen Kanäle verzögertern über DMX_FadeChannelDelayed gesetzten Fadings ab. Damit kann eine neue Kette an verzögerten Fadings sauber gesetzt werden. Wenn keine verzögerten Fadings genutzt werden, ist dieser Hinweis nicht relevant

Hatte jetzt so interpretiert das im Code oben der erste Befehl erstmal alles abbricht (Kanal 0 sind ja alle).
Und der zweite dann auch nicht dimmt, sondern nur nochmal versucht vorherige delays von Kanal 1 abzubrechen.
Und erst ab dem dritten Befehl mit Kanal 2 passiert wirklich etwas.
Michael

Setzt alle Kanäle auf 0. Naja vielleicht das gleiche wie Abbrechen.
Eine Delay von 0 in DMX_FadeChannelDelayed nutze ich nicht in meinem Programmen.
Ich werde es mal morgen testen. Im Moment habe ich keinen Optischen Zugriff, kann also nicht sehen was passiert.

@TomW kann ja einfach mal probieren die zweite Zeile in

DMX_FadeChannelDelayed(19705,1,255,$sec,0.1);

zu ändern.

Danke für eure Antworten und Ideen. Zuerst die weiteren Infos:

  • Instanz 19705 ist ein DMX Output, 8 bit, 90 Kanäle - da 30 RGB LEDs. Daher erklärt sich auch, wieso ich oben LED 1,4, 7 anspreche, das sind dann die roten LEDs der ersten 3 LEDs.

weitere Experimente:

  • wenn ich im ersten 0.1 als Fadezeit angebe, ändert sich nichts bzw. nicht spürpar, der erste LED wird dann wohl 100ms später angehen. Das dürfte dann tatsächlich so sein, dass das dann eben mit 0 sofort losgeht. Der erste Befehl setzt alles zurück, falls das Script gestartet wird, während die Sequenz noch läuft
  • was ganz interessant ist: AUch nach dem letzten Befehl gehen alle LEDs wenige sek später aus. Es bleibt also nie etwas an.
  • wenn ich $sec auf 10 setze, dann gehen die LEDs zumindest zwischendurch nicht aus.

Ich glaube fast, dass das eine Eigenart von WLED ist. Es scheint so zu sein, dass das Teil nach wenigen Sekunden alles wieder ausschaltet, wenn da nichts mehr kommt.

Steuerst du den WLED nur über IPS an, oder parallel auch mit etwas anderem?

Ich hatte bei meinem ArtNet Dimmern das Problem dass ich sie nur über IPS steuern konnte. Wenn ich sie über die DMX4ALL App verändert hatte, setzte IPS sie nach ein paar Sekunden zurück. Irgendwie hat ArtNet da einen zyklischen Refresh von 4 Sekunden. Hat irgend etwas mit dem UDP Socket zu tun.
Du musst mal hier etwas suchen. Ist schon einige Jahre her wo es hier diskutiert wurde.