Mithilfe des pxlBlcks könnt Ihr Euch auf verschiedenen Wegen über Ereignisse informieren lassen. Eine dieser Möglichkeiten besteht darin sich zuvor eingestellte Icons anzeigen lassen zu können.
Leider funktioniert diese Möglichkeit nur auf LED-Matrizen mit einer Höhe größer als eins, also nicht auf den pxlBlcks welch “nur” einen LED-Streifen bzw. eine 1×60 LED-Matrix verwenden.
Deswegen gibt es neben der Möglichkeit Icons anzuzeigen auch noch die Möglichkeit Animationen anzuzeigen. Diese Animationen funktionieren auf allen vom pxlBlck-plugin unterstützten LED-Matrizen.
Grundlagen zu Animationen
Animationen können nur über den korrekten Befehl angezeigt werden. Das heißt, dass diese auch nur Ereignisbezogen ausgeführt werden.
Zum Beispiel könnt Ihr eine Animation auslösen, wenn eine bestimmte nachricht per MQTT an den pxlBlck gesendet wird, ein angeschlossener Sensor einen Bestimmten Zustand eingenommen hat aber auch zum Beispiel dann, wenn der pxlBlck gestartet ist oder die Verbindung zum WLAN verloren hat. Ein paar Beispiele dazu werde ich unter dem Tag pxlBlckUsecase sammeln. Ihr findet eine Liste dieser Usecases unter https://nerdiy.de/tag/pxlblckusecase/
Im folgenden ein paar Grundlagen zum Grundsätzlichen Aufbau des Befehls zum Auslösen von Animationen auf dem pxlBlck. Wie Ihr diesen Befehl an den pxlBlck senden könnt ist auch in dem Artikel ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen beschrieben. Grundsätzliche Informationen zum Aufbau der Befehle des pxlBlck könnt Ihr dazu auch in diesem Artikel nachlesen pxlBlck – Befehle zur Konfiguration des pxlBlck
Befehlsname
pbani
Befehlsübersicht
pbani,[animation_type 1-6],[color_on_red 0-255],[color_on_green 0-255],[color_on_blue 0-255],[color_off_red 0-255],[color_off_green 0-255],[color_off_blue 0-255],[animation_delay 0-500],
Parameter-Beschreibung
Parametername | Beschreibung | Erlaubter Wertebereich |
---|---|---|
animation_type | Dieser parameter legt den Typ der Animation fest. Eine Übersicht über die Möglichen Animationen findet Ihr in der nachfolgenden Tabelle. | 1-6 |
color_on_red | Dieser Parameter bestimmt die Helligkeit der Roten Farbe bei der Eingangsanimation. | 0-255 |
color_on_green | Dieser Parameter bestimmt die Helligkeit der Grünen Farbe bei der Eingangsanimation. | 0-255 |
color_on_blue | Dieser Parameter bestimmt die Helligkeit der Blauen Farbe bei der Eingangsanimation. | 0-255 |
color_off_red | Dieser Parameter bestimmt die Helligkeit der Roten Farbe bei der Ausgangsanimation. | 0-255 |
color_off_green | Dieser Parameter bestimmt die Helligkeit der Grünen Farbe bei der Ausgangsanimation. | 0-255 |
color_off_blue | Dieser Parameter bestimmt die Helligkeit der Blauen Farbe bei der Ausgangsanimation. | 0-255 |
animation_delay | Hiermit könnt Ihr die Zeitdauer für die Animation festlegen. Sie wird in Millisekunden angegeben und beschreibt die Anzeigedauer pro Pixel. | 0-500 |
Übersicht der Animationen
ID | Beschreibung |
---|---|
1 | Die LED-Matrix wird von Rechts mit der Eingangsfarbe gefüllt und dann nach Links mit der Ausgangsfarbe überschrieben. |
2 | Die LED-Matrix wird von Links mit der Eingangsfarbe gefüllt und dann nach Rechts mit der Ausgangsfarbe überschrieben. |
3 | Eine Vertikale Linie (in Eingangsfarbe) wandert von Links nach Rechts (in Ausgangsfarbe). |
4 | Eine Vertikale Linie (in Ausgangsfarbe) wandert von Links nach Rechts (in Eingangsfarbe). |
5 | Die LED-Matrix wird von Beiden Seite zur Mtte hin gefüllt und dann wieder aufgelöst. |
6 | Die LED-Matrix wird von der Mitte aus gefüllt und dann wieder aufgelöst. |
Infos zur Implementierung
Die Ausführung von Animationen ist so implementiert, dass während die Animation angezeigt wird keine anderen Aufgaben ausgeführt werden können. Das hat zur Folge, dass während der Anzeige einer Animation zum Beispiel das Laden des Webmenüs des pxlBlck nicht fortgesetzt werden kann. Außerdem werden während der Ausführungszeit der Animation auch keine anderen Befehle bearbeitet. Diese sollten aber nach Abschluss der Animation ausgeführt werden.
“Cooldown-Time”
Die Bearbeitung von Animationen ist zeitlich begrenzt. Das heißt das der pxlBlck nach dem Empfang eines Befehls zur Anzeige einer Animation eine zeit lang weitere Befehle zur Animationsanzeige ignoriert.
Diese Zeitspanne ist im Quellcode festgelegt und lässt sich im Betrieb nicht verändern. Wenn Ihr diese ändern wollt: Sie ist mit dem #define PXLBLCK_ANIMATION_COOLDOWN_TIME definiert.
Beispiele
Im folgenden Absatz sind ein paar Beispiel-Befehle und deren Ansicht auf den verschiedenen pxlBlcks aufgeführt.
Infos:
- Animationstyp: 1
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 150,0,0
- Ausgangsfarbe (RGB Wert): 0,0,150
Befehl:
pbani,1,150,0,0,0,0,150,50
Infos:
- Animationstyp: 2
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,2,50,50,50,0,0,50,50,
Infos:
- Animationstyp: 3
- Verzögerung: 150ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,3,50,50,50,0,50,0,150,
Infos:
- Animationstyp: 4
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,4,50,50,50,0,50,0,50,
Infos:
- Animationstyp: 5
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,0,50
Befehl:
pbani,5,50,50,50,0,0,50,50,
Infos:
- Animationstyp: 6
- Verzögerung: 20ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,6,50,50,50,0,50,0,50,
Infos:
- Animationstyp: 5
- Verzögerung: 20ms (20ms ist die genutzte Standardverzögerung, falls dieser Parameter auf Null gesetzt wird)
- Eingangsfarbe (RGB Wert): 150,0,0
- Ausgangsfarbe (RGB Wert): 0,0,0
Befehl:
pbani,5,150,0,0,0,0,0,
Infos:
- Animationstyp: 1
- Verzögerung: 20ms (20ms ist die genutzte Standardverzögerung, falls dieser Parameter auf Null gesetzt wird)
- Eingangsfarbe (RGB Wert): 100,100,100
- Ausgangsfarbe (RGB Wert): 0,0,0
Befehl:
pbani,1,100,100,100,0,0,0,
Infos:
- Animationstyp: 1
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 150,0,0
- Ausgangsfarbe (RGB Wert): 0,0,150
Befehl:
pbani,1,150,0,0,0,0,150,50
Infos:
- Animationstyp: 3
- Verzögerung: 150ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,3,50,50,50,0,50,0,150
Infos:
- Animationstyp: 4
- Verzögerung: 50ms
- Eingangsfarbe (RGB Wert): 50,50,50
- Ausgangsfarbe (RGB Wert): 0,50,0
Befehl:
pbani,4,50,50,50,0,50,0,50
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂