Moin…
ich bin mir unsicher in welches Unterforum dies gehört… gerne passend verschieben, danke.
Ich nutze seit längerem eine RGB LED um den Status bestimmter Geräte zu signalisieren. Dabei steht jede Farbe für einen bestimmten Status. z.B.:
- Weiß → “Waschmaschine fertig und noch nicht entleert”
- Orange → “Trockner fertig und noch nicht entleert”
- Rot → “Partikelsensor-Wert >X”
Nun habe ich aber das ganze so gebastelt, dass beim Eintritt des Status dann entsprechend die Farbe gesetzt wird (Genauer gesagt ein Pulse-Effekt in der Farbe).
Das Problem: Ein Status/eine Farbe überschreibt dadurch eine andere, die möglichweise noch aktiv war.
Wenn ich also z.B. die fertige Waschmaschine noch nicht entleert habe, aber dann der Partikelsensor über Wert X steigt, ist die LED Rot und ich erkenne nichts mehr zur Waschmaschine (weiß)
Idee: Statt die LED direkt anzusteuern, soll eine Information in eine queue aufgenommen werden, die dann geloopt wird.
Meine Idee wäre in etwa so:
(ist halt kein echter code… sondern nur eine grobe Skizzierung der Idee)
if "waschmashine done and still not emptied"
set notification.washing-machine color white
set notification.washing-machine status on
endif
if "Particelsensor >X"
set notification.particle-sensor color red
set notification.particle-sensor status on
endif
Funktion zum ansteuern der LED:
function pulse-light() {
set RGB
turn light on
pause 1s
turn light off
}
Loop welcher ständig läuft
loop
get list of notification.* = status-on with value of color (aka generate queue)
if no status-on
do pause 1s
else
for each status-on
do pulse-light()
done
endif
loop off
Habt ihr eine Idee, wie das am besten mit Automationen/Scripts/etc… oder gar als Addon umgesetzt werden könnte?
danke und vg