Einen Müllkalender im ICAL Format in Openhab darstellen
Unser Abfallentsorger ist so innovativ seinen Müllkalender elektronisch im ICAL Format darzustellen. Das ist an sich schon mal sehr schön. Jetzt möchte ich es erreichen, dass ich die Mülltermine der kommenden 4 Wochen in Openhab (und später noch woanders) angezeigt bekomme. Ja ich könnte auch den gesamten Kalender als Overlay in meinem Kalender halten aber da ist eh schon soviel drin. Leider gibt es kein ICAL Modul für Openhab und das Google Kalenderbinding kann ich auch nicht darstellen.
Nun bin ich folgenden Weg gegangen. Ich lade mir den gesamten Kalender mit meinen Müllterminen auf den Raspberry Pi. Diese Datei wandele ich mit ical2html in eine html Datei und werfe diese Datei einem “monströsen” sed Script vor. Dieser sed Aufruf löscht alle html und sonstigen Informationen die ich nicht brauche und wandelt die “technischen Begriffe” in normale Begriffe um.
Dann habe ich eine Textdatei die ich eigentlich schon über das html Binding von Openhab importieren könnten. Nun gefällt mir aber das “iframe” nicht in dem diese Datei dargestellt wird. Deswegen wandele ich diese Textdatei noch in ein kleines Bild um und dieses Bild wird dann in Openhab dargestellt.
Zuerst die Voraussetzungen installieren
apt-get install ical2html
Und so sieht das ganze dann am Ende aus
ical2html $(date +%Y%m%d) P4W /path/to/RSAG_Abfuhrtermine_Stand_20150304.ICS \
| sed -f sed-muell.txt | paste -d " " - - | convert label:@- /var/www/rsag.png
Die sed Befehle sehen so aus
vi /root/sed-muell.txt
s/^<t.*//g
s/^<!.*//g
s/^<m.*//g
s/^<\/t.*//g
s/^<lin.*//g
s/^<span class=veve.*//g
s/^<span class=catego.*//g
s/^<div class=veve.*//g
s/^<span class=notime.*//g
s/^title=\"1D".*//g
s/^<\/div>//g
s/title="//g
s/">(whole<\/abbr> <abbr class\=duration//g
s/<span class=summary>//g
s/<\/span>//g
s/^ \"http.*//g
/^$/d
s/^\(201.\)\(..\)\(.*\)/\3.\2.\1/g
s/RSAG//g
s/Papiertonne 4-wö/Papier/g
s/Restmülltonne 2-wö/Restmüll/g
s/Wertstofftonne oder -sack 4-wö./Gelber Müll/
s/Biotonne 2-wö. (inklusive Bündel-Mitnahme)/Bio Müll/g
s/Biotonne-Zusatzleerung (keine Bündel-Mitnahme)/Bio Zusatz/g
Das ganze kann man natürlich noch etwas schöner gestalten aber die Informationen sind erst mal da. Für andere ical Datein müsste man sich diese Ersetzungen natürlich anders zusammensetzen.
In die Sitemap wird das dann so eingebunden
vi /etc/openhab/configurations/sitemaps/default.sitemap
Image item=rsag label="Müllabfuhr" url="http://your.web.server/rsag.png"