Die Integration des Abfuhrkalenders der AWM München in den Home Assistant gestaltet sich etwas hakelig, ist aber machbar:
Zunächst muss im Home Assistant das Modul hacs_waste_collection_schedule aus dem HACS installiert werden.
Versucht man jetzt, das Modul über die UI einzurichten, zeigt es zwar eine lange Liste verschiedener Quellen für Abfuhrdaten, aber die Münchner AWM sind leider nicht dabei. Eine Integration kann man aber trotzdem über die Anbindung für iCal-Kalender-Dateien (*.ics) erreichen. Dazu sind nur einige Konfigurationseinstellungen nötig:
Link zum Abfuhrkalender
Zunächst einmal benötigt man den Link zum persönlichen Abfuhrkalender. Dazu füllt man auf der Webseite der AWM die Adresse aus, anschließend findet sich unten auf der Seite ein Link zum Download der Kalenderdatei. Mit einem Rechtsklick und “Link kopieren” kann man den Link ins Clipboard kopieren.
Einrichtung der ICS Quelle für hacs_waste_collection_schedule
In config.yaml
, der Hauptkonfigurationsdatei von Home Assistant, fügen wir jetzt unseren Kalender als Quelle hinzu. Unter url
fügen wir den Link auf das Kalenderfile ein, den wir oben kopiert haben. Den cHash
-Parameter entfernen wir vollständig, den Parameter mit der fixen Jahreszahl (&tx_awmabfuhrkalender_abfuhrkalender%5Byear%5D=2023
) ersetzen wir durch den dynamischen Platzhalter {Y}
:
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://www.awm-muenchen.de/entsorgen/abfuhrkalender?tx_awmabfuhrkalender_abfuhrkalender%5Bhausnummer%5D=29&tx_awmabfuhrkalender_abfuhrkalender%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_abfuhrkalender%5Bleerungszyklus%5D%5BP%5D=1%2F2%3BG&tx_awmabfuhrkalender_abfuhrkalender%5Bleerungszyklus%5D%5BR%5D=001%3BU&tx_awmabfuhrkalender_abfuhrkalender%5Bsection%5D=ics&tx_awmabfuhrkalender_abfuhrkalender%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_abfuhrkalender%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_abfuhrkalender%5Bstellplatz%5D%5Bbio%5D=70095855&tx_awmabfuhrkalender_abfuhrkalender%5Bstellplatz%5D%5Bpapier%5D=70095855&tx_awmabfuhrkalender_abfuhrkalender%5Bstellplatz%5D%5Brestmuell%5D=70095855&tx_awmabfuhrkalender_abfuhrkalender%5Bstrasse%5D=Georg-Brauchle-Ring&tx_awmabfuhrkalender_abfuhrkalender%5Byear%5D={%Y}"
version: 1
split_at: ', '
regex: '(.*), Georg-Brauchle-Ring. 29'
Mit dem split_at
-Attribut, können wir mehrere Einträge, die bei den AWM in einen einzigen Kalendereintrag zusammengefasst werden, in ihre einzelnen Bestandteile zerlegen. Da die AWM (unnötigerweise) bei jedem Eintrag in den Terminkalender die gewählte Adresse anhängt, müssen wir diese noch mit einem regulären Ausdruck (regex
) entfernen (Hier für die Beispieladresse Georg-Brauchle-Ring. 29).
Sensoren
Jetzt müssen wir noch die Sensoren für Home Assistant anlegen, die die gewünschten Daten bereitstellen. In meinem Fall interessieren mich die Tage bis zur nächsten Leerung und der eingetragene Wochentag, also zwei Sensoren pro Tonne (Restmüll, Altpapier, Biomüll). Man könnte z.B. genauso gut mit value_template: '{{value.date.strftime("%d.%m.%Y")}}'
das konkrete Datum der Leerung bereitstellen. Die redundante Generierung des Wochentags fühlt sich für mich falsch an, bisher habe ich aber noch keinen eleganteren Weg in Home Assistant gefunden.
# WCS Restmüll
- platform: waste_collection_schedule
name: wcs_restmuell_days
value_template: '{{value.daysTo}}'
types:
- Restmülltonne
- platform: waste_collection_schedule
name: wcs_restmuell_weekday
value_template: "{{ ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'][value.date.weekday()] }}"
types:
- Restmülltonne
# WCS Altpapier
- platform: waste_collection_schedule
name: wcs_altpapier_days
value_template: '{{value.daysTo}}'
types:
- Papiertonne
- platform: waste_collection_schedule
name: wcs_altpapier_weekday
value_template: "{{ ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'][value.date.weekday()] }}"
types:
- Papiertonne
# WCS Biomüll
- platform: waste_collection_schedule
name: wcs_biomuell_days
value_template: '{{value.daysTo}}'
types:
- Biotonne
- platform: waste_collection_schedule
name: wcs_biomuell_weekday
value_template: "{{ ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'][value.date.weekday()] }}"
types:
- Biotonne
Darstellung in der Lovelace-UI
In meinem Falle reicht eine ganz einfache Darstellung der nächsten Termine:
Die habe ich mir ganz einfach mit dem sehr hilfreichen multiple-entity-row-Widget erstellt, das ich auch sonst schon bei vielen Gelegenheiten benutze:
type: entities
entities:
- entity: sensor.wcs_restmuell_days
type: custom:multiple-entity-row
icon: mdi:delete-empty
unit: Tage
name: Restmüll
entities:
- entity: sensor.wcs_restmuell_weekday
name: false
- entity: sensor.wcs_altpapier_days
type: custom:multiple-entity-row
icon: mdi:note-multiple
name: Altpapier
unit: Tage
entities:
- entity: sensor.wcs_altpapier_weekday
name: false
- entity: sensor.wcs_biomuell_days
type: custom:multiple-entity-row
icon: mdi:leaf-circle
name: Biomüll
unit: Tage
entities:
- entity: sensor.wcs_biomuell_weekday
name: false