gestern habe ich mir ganz schön meine Hirnzellen vergewaltigt, das war deutlich schwerer als gedacht, daher teile ich es gerne hier mit euch.
Idee: Stehlampe mit einzeln ansteuerbaren Pixeln, die nicht nur Effekte anzeigt (optische Spielerei), sondern auch Benachrichtigungen aus Loxone (nerdige Spielerei mit Mehrwert).
In meinem Fall brennt im oberen Bereich der Lampe:
- Ein weißes Licht falls die Waschmaschine fertig ist
- Ein blaues Licht wenn der Keller gelüftet werden sollte
- Ein grünes Licht wenn die Feuchtesensoren im Garten anschlagen -> Garten bewässern
- Ein rotes Licht wenn Fenster oder Türen im Haus aufstehen
- Ein gelbes Licht wenn das Bad am nächsten Tag früher geheizt werden soll
- Ein magentyfarbenes Licht wenn das Arbeitszimmer meiner Frau stärker geheizt wird (Homeoffice)
- Ein cyanfarbenes Licht wenn mein Arbeitszimmer stärker geheizt wird
(gerade die letzten drei sind sehr spezifisch, hier kann man natürlich auch was ganz anderes nehmen, zum Beispiel Müllabfuhr...)
...darüber hinaus brennt bei mir übern Tag als Effekt im Hauptbereich der Lampe ein Feuer, dessen Intensität vom verfügbaren PV-Strom-Überschuss abhängt
-> erstes Bild: mittlerer PV-Überschuss, sonst nix
-> zweites Bild: stärkerer PV-Überschuss, Fenster offen (rot)
-> drittes Bild: wenig PV-Überschuss, Fenster offen (rot) und mein Arbeitszimmer im Homeoffice-Modus (cyan)
(in Echt kommen die Farben deutlich besser rüber)
Herausforderung: Einfach wäre gewesen, wenn ich übers WLED einzelne fest vergebene Segmente definiert hätte. Aber dann wären stets Elemente leer wenn gerade keine Benachrichtigung anliegt -> verschwendeter Platz. Daher passe ich die Segmente dynamisch an, so dass immer der maximale Bereich für das Hauptsegment zur Verfügung steht, und das war echt ein ganz schöner Brainfuck!
Aufbau Loxone Programmierung: Ändert sich der Zustand der Benachrichtigungen, wird eine Sequenz gestartet, die jede Benachrichtigung einzeln durchgeht: Ist Benachrichtigung 1 aktiv, wird Segment 1 angelegt und brennt in Farbe weiß, liegt keine Benachrichtigung an, wird Segment 7 gelöscht (dann können es ja nur noch maximal 6 Segmente sein). Weiter zum zweiten Block: Ist sonst noch keine Benachrichtigung davor aktiv aber Benachrichtigung 2 liegt an wird Segment 1 erstellt und leuchtet blau, ist Benachrichtigung 2 nicht aktiv, wird Segment 6 gelöscht (nun können noch maximal 5 vorhanden sein). Ist davor schon eine Benachrichtigung aktiv und Benachrichtigung 2 auch, wird Segment 2 erstellt und leuchtet blau, ist schon eine Benachrichtigung aktiv aber Benachrichtigung 2 nicht, wird Segment 7 gelöscht (nun maximal 6 Segmente).
Bei Segment 7 wird das dann eine ganz schön längliche Tapete an Fällen die man abfangen muss...
Im letzten Schritt wird Segment 0 noch an die neue Größe angepasst, dadurch muss man auch den Effekt der dort läuft nochmal neu triggern.
Anpassungen: Leider müsst ihr zur individuellen Anpassung auf eure LED-Leiste seeeehr viele Zeilen anpassen (Start- und End-LED "S" und "S2"), und wenn man da nicht zu 100% konzentriert ist macht man nen Fehler den man vermutlich nie wieder findet. Dennoch hoffe ich, dass mein Template jemandem hilft, und wenn es nur ein Denkanstoß ist ein ähnliches Problem zu lösen.
Viele Grüße,
Manuel
Update 20.01.2024: Bei mir lief jetzt über Jahre ne sehr alte Version von WLED. Nach Update auf die neuste Version sahen die Effekte nicht mehr so aus wie sie sollen, gab wohl ne Änderung in der Ansteuerung von Segmenten ab Version 13
--> Nach Downgrade auf diese Version sieht wieder alles aus wie es soll:
Kommentar