Hier zeige ich euch wie ihr einen Abfallkalender in openHAB 3 einrichten könnt, der euch ein Tag vorher Bescheid gibt und euch das auch in der Sitemap anzeigt.
Vorraussetzung:
- Kalender muss im iCal Format vorliegen (gibt es z.B. bei der Stadt Bielefeld hier: https://anwendungen.bielefeld.de/WasteManagementBielefeld/WasteManagementServlet)
- das Binding „iCalendar-Binding“ muss installiert sein
Die „things“ erstellen:
Bridge icalendar:calendar:abfallkalender "Abfallkalender" @ "RPI4" [ url="http://xx:8080/static/Leerungstermine580443.ics", refreshTime=360 ]
Thing icalendar:eventfilter:ma202205ab "Abfall morgen" (icalendar:calendar:abfallkalender) [ maxEvents=1, datetimeUnit="DAY", datetimeStart=1, datetimeEnd=2, datetimeRound=true ]
Die „items“ erstellen:
String ABFALL_heute_name "Abholung heute: [%s]" <calendar> { channel="icalendar:calendar:abfallkalender:current_title" }
String ABFALL_alsnaechstes_name "Abholung als naechstes [%s]" <calendar> { channel="icalendar:calendar:abfallkalender:next_title" }
DateTime ABFALL_alsnaechstes_datum "Abholung am [%1$tT, %1$tY-%1$tm-%1$td]" <calendar> { channel="icalendar:calendar:ma202205ab:next_start" }
String ABFALL_morgen_name "Abholung morgen: [%s]" <calendar> { channel="icalendar:eventfilter:ma202205ab:result_0#title" }
Die „rules“ erstellen, für die Erinnerung um 11 Uhr für den nächsten Tag:
rule "Abfallkalender"
when
Item ABFALL_morgen_name changed
then
if (ABFALL_morgen_name.state != UNDEF) {
createTimer(now.plusHours(11)) [|
sendNotification("xx@xx.de", "Morgen wird folgender Müll abgeholt: " + ABFALL_morgen_name.state)
]
}
end
Ggf. die „sitemap“ anpassen:
Text item=ABFALL_heute_name label="Abholung heute: [%s]" icon="abfall" visibility=[ABFALL_heute_name!=UNDEF]
Text item=ABFALL_morgen_name label="Abholung morgen: [%s]" icon="abfall" visibility=[ABFALL_morgen_name!=UNDEF]