Calendar, CalView & Co

Begonnen von TubeHead, 07 Februar 2026, 14:40:02

Vorheriges Thema - Nächstes Thema

TubeHead

#15
... so kann man es natürlich auch machen 8)

Ich habe es jetzt anders gelöst.
Ursprünglich wollte ich ja einen der Indikatoren abwechselnd in den entsprechenden Farben abwechselnd blinken lassen. Das kann AWTRIX aber nativ nicht. Blinken ja, aber nicht im Wechsel mit zwei oder drei Farben. Das hätte per MQTT in einer Schleife an alle drei Pixeluhren gesendet werden müssen; zu viel Aufwand und Payload...
Ich setze daher nun eine CustomApp mit den entsprechenden Farben.

Das Modul "Abfall" nutze ich nicht. Ich bin den manuellen Weg gegangen mit zwei DOIF:

defmod set_trash DOIF ([13:00] and defined fhem('get calendar events filter:field(summary)=~"Restmüll" limit:when=tomorrow')) (set $SELF bk 1)\
DOELSEIF ([13:00] and defined fhem('get calendar events filter:field(summary)=~"Gelbe" limit:when=tomorrow')) (set $SELF ye 1)\
DOELSEIF ([13:00] and defined fhem('get calendar events filter:field(summary)=~"Papier" limit:when=tomorrow')) (set $SELF bl 1)\
DOELSE (set $SELF bk 0, set $SELF ye 0, set $SELF bl 0)
attr set_trash do always
attr set_trash group Kalender
attr set_trash readingList bk ye bl
attr set_trash room 980 - Umwelt
attr set_trash stateFormat bk,ye,bl

setstate set_trash 0,0,0
setstate set_trash 2026-02-08 11:34:44 bk 0
setstate set_trash 2026-02-08 11:34:44 bl 0
setstate set_trash 2026-02-08 11:34:44 cmd 4
setstate set_trash 2026-02-08 11:34:44 cmd_event set_trash
setstate set_trash 2026-02-08 11:34:44 cmd_nr 4
setstate set_trash 2026-02-08 11:23:19 mode enabled
setstate set_trash 2026-02-08 11:34:44 state cmd_4
setstate set_trash 2026-02-08 11:23:19 timer_01_c01 08.02.2026 13:00:00
setstate set_trash 2026-02-08 11:23:19 timer_02_c02 08.02.2026 13:00:00
setstate set_trash 2026-02-08 11:23:19 timer_03_c03 08.02.2026 13:00:00
setstate set_trash 2026-02-08 11:34:44 ye 0

... und ...

defmod set_pixel_muell DOIF ([set_trash] eq "0,0,0") (set MQTT publish pixel1/custom/trash {} )\
DOELSEIF ([set_trash] eq "1,0,0") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [4, 0, 24, 8, "#BEBEBE"]},{"dt": [4, 1, "M ü l l", "#00FF00"]}]} )\
DOELSEIF ([set_trash] eq "0,1,0") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [4, 0, 24, 8, "#FFFF00"]},{"dt": [4, 1, "M ü l l", "#00FF00"]}]} )\
DOELSEIF ([set_trash] eq "0,0,1") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [4, 0, 24, 8, "#0000FF"]},{"dt": [4, 1, "M ü l l", "#00FF00"]}]} )\
DOELSEIF ([set_trash] eq "1,1,0") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [2, 0, 13, 8, "#FFFF00"]},{"df": [17, 0, 13, 8, "#BEBEBE"]},{"dt": [3, 1, "M ü  l l", "#101010"]}]} )\
DOELSEIF ([set_trash] eq "0,1,1") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [2, 0, 13, 8, "#FFFF00"]},{"df": [17, 0, 13, 8, "#0000FF"]},{"dt": [3, 1, "M ü  l l", "#ff33ff"]}]} )\
DOELSEIF ([set_trash] eq "1,0,1") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [2, 0, 13, 8, "#BEBEBE"]},{"df": [17, 0, 13, 8, "#0000FF"]},{"dt": [3, 1, "M ü  l l", "#000000"]}]} )\
DOELSEIF ([set_trash] eq "1,1,1") (set MQTT publish pixel1/custom/trash {"draw":[{"df": [0, 0, 10, 8, "#FFFF00"]},{"df": [11, 0, 10, 8, "#BEBEBE"]},{"df": [22, 0, 10, 8, "#0000FF"]},{"dt": [4, 1, "M ü l l", "#00FF00"]}]} )
attr set_pixel_muell group Kalender
attr set_pixel_muell room 980 - Umwelt

setstate set_pixel_muell cmd_1
setstate set_pixel_muell 2026-02-08 11:34:44 Device set_trash
setstate set_pixel_muell 2026-02-08 11:21:15 cmd 1
setstate set_pixel_muell 2026-02-08 11:21:15 cmd_event set_pixel_muell
setstate set_pixel_muell 2026-02-08 11:21:15 cmd_nr 1
setstate set_pixel_muell 2026-02-08 11:34:44 e_set_trash_STATE 0,0,0
setstate set_pixel_muell 2026-02-08 11:21:00 mode enabled
setstate set_pixel_muell 2026-02-08 11:21:15 state cmd_1

Inzwischen habe ich auch die Daten vom Google-Kalender anstelle der lokalen Datei eingebunden. Nun warte ich auf 13:00 Uhr, um zu schauen, ob auch alles automatisch funktioniert ;)

EDIT:
Funktioniert nicht wie erwartet  >:(  Ich habe (mal wieder) übersehen, das ein DOIF beim ersten Treffer beendet wird. Ich muss also die Abfragen noch umstellen... Irgendwann lerne ich das auch noch mal  ::)