Ich bin schon seit einiger Zeit dran, die Mülltermine in Home Assistant zu bekommen. Doch irgendwie hat das nie geklappt. Nun habe ich mich doch nochmal mit dem Thema beschäftigt.
Grundlage ist das im HACS zu bekommene hacs_waste_collection_schedule
Grundsätzlich ein schönes Teil, doch irgendwie kompliziert einzurichten.
Prinzipiell kann er nämlich verscheidene Online Dienste abfragen. In meinem Fall wäre das MyMüll gewesen.
Also brav mit:
https://mymuell.jumomind.com/mmapp/loxone/lox.php?r=cities
die Stadt herausgesucht und mit :
https://mymuell.jumomind.com/mmapp/api.php?r=streets&city_id=50669 dann die Straße.
Am Ende kann man sich die Daten in Rohform anschauen :
https://mymuell.jumomind.com/mmapp/api.php?r=dates&city_id=50669&area_id=902
[{"id":"103977888","title":"Restm\u00fcll 4-w\u00f6chentl","trash_name":"RAT_REST4W","day":"2021-10-22","description":"","color":"2F4F4F"},{"id":"103977869","title":"Restm\u00fcll 14-t\u00e4gig","trash_name":"RAT_REST14","day":"2021-10-22","description":"","color":"2F4F4F"},{"id":"103977893","title":"Restm\u00fcllcontainer 14-t\u00e4gl.","trash_name":"RAT_R_CONT14","day":"2021-10-22","description":"","color":"2F4F4F"},{"id":"103977793","title":"Biotonne","trash_name":"RAT_BIO","day":"2021-10-22","description":"","color":"cc9933"},{"id":"103977932","title":"Restm\u00fcllcontainer w\u00f6chentl.","trash_name":"RAT_R_CONT_W","day":"2021-10-22","description":"","color":"2F4F4F"},{"id":"103977829","title":"Gelbe Tonne \/ S\u00e4cke","trash_name":"RAT_GELB","day":"2021-10-28","description":"","color":"f0f500"},{"id":"103977931","title":"Restm\u00fcllcontainer w\u00f6chentl.","trash_name":"RAT_R_CONT_W","day":"2021-10-29","description":"","color":"2F4F4F"},{"id":"103977817","title":"Blaue Tonne","trash_name":"RAT_BLAU","day":"2021-11-04","description":"","color":"079dfd"},{"id":"103977964","title":"Restm\u00fcllcontainer w\u00f6chentl.","trash_name":"RAT_R_CONT_W","day":"2021-11-06","description":"","color":"2F4F4F"},{"id":"103977894","title":"Restm\u00fcllcontainer 14-t\u00e4gl.","trash_name":"RAT_R_CONT14","day":"2021-11-06","description":"","color":"2F4F4F"},{"id":"103977868","title":"Restm\u00fcll 14-
Der Eintrag in der configuration.yaml hätte dann so ausgesehen:
waste_collection_schedule:
sources:
- name: jumomind_de
args:
service_id: mymuell
city_id: 50669
area_id: 902
Klappt aber nicht!
Nach stundenlanger Recherche bin ich dann auf das Video von Daniel von smarthomeyourself gestoßen, der die Einbindung mittels ICS Datei erklärt.
Eigentlich stellt nämlich jede Kommune die Abfall Termine im ICalender (ICS) Format bereit. Klar muss man die am Jahresanfang importieren, aber dann hat man auch Ruhe.
Hier also das Video, aber wie immer stellt das Video wieder einige Fragen auf, und ich bleibe meiner Linie treu, nicht das gleiche zu erklären, sondern zu präsentieren, wie ich es gemacht habe.
Unter dem Video gehts also weiter mit meinen persönlichen Erfahrungen.
Einrichtung:
Basierend des Videos also die ICS Datei bei meiner Stadt geholt und im /config/www Verzeichnis in HA geladen.
Hier also mein Eintrag in der configuration.yaml:
waste_collection_schedule:
sources:
- name: ics
args:
file: "www/Abfallkalender.ics"
customize:
- type: Biotonne
alias: BioTonne
icon: mdi:flower-outline
- type: Gelber Sack
alias: GelberSack
icon: mdi:recycle
- type: Restmüll 14-täg.
alias: Restmuell
icon: mdi:trash-can
- type: Blaue Tonne
alias: PapierTonne
icon: mdi:trash-can-outline
- type: Restmüll 4-wöchtl.
show: false
Restmüll 4-wöchtl. habe ich in meiner Config ausgeblendet, denn meine Restmülltonne wird alle 2 Wochen geleert.
Weiterhin hab ich mir ein paar eigene Icons ausgesucht. Zur Erinnerung, die gibts HIER
Weiter geht es wie beschrieben mit den Sensoren. Auch hier habe ich einen anderen Weg gewählt. Hintergrund sind die Value Templates.
Value Templates benutzt man, wenn man den Wert des Sensors in einem anderen Format haben möchte, als er geliefert wird. Nähere Infos, für den, dem es interessiert gibt es HIER. Es gibt bestimmt einen schickeren Weg, aber ich habe einfach mehrere Sensoren der gleichen Quelle gebaut, dann aber mit verschiedenen Templates. Hier also meine sensors.yaml
# Müll Temrine
- platform: waste_collection_schedule
name: AbfallRestmuell
details_format: "upcoming"
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
types:
- Restmuell
- platform: waste_collection_schedule
name: AbfallPapierTonne
details_format: "upcoming"
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
types:
- PapierTonne
- platform: waste_collection_schedule
name: AbfallGelberSack
details_format: "upcoming"
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
types:
- GelberSack
- platform: waste_collection_schedule
name: AbfallBiotonne
details_format: "upcoming"
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
types:
- BioTonne
- platform: waste_collection_schedule
name: AbfallRestmuellnext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- Restmuell
- platform: waste_collection_schedule
name: AbfallPapierTonnenext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- PapierTonne
- platform: waste_collection_schedule
name: AbfallGelberSacknext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- GelberSack
- platform: waste_collection_schedule
name: AbfallBiotonnenext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- BioTonne
- platform: waste_collection_schedule
name: AbfallNaechster
details_format: "upcoming"
value_template: ' {{ value.daysTo }} '
Anzeige:
Nun muss der Kram natürlich angezeigt werden. Im Video gibts da ja auch verschiedene Ansätze. Er benutzt die GUI zur Erstellung, aber ich als alter Programmierer bevorzuge die YAML Methode, daher hier die Umsetzung aus dem Video im Lovelance YAML Mode:
ui-lovelance.yaml
- type: entities
title: nächste Müll Abholung
entities:
- entity: sensor.abfallrestmuell
name: Restmüll
- entity: sensor.abfallbiotonne
name: Biotonne
- entity: sensor.abfallgelbersack
name: Gelber Sack
- entity: sensor.abfallpapiertonne
name: Blaue Tonne
Wie oben beschrieben habe ich einfach einen zweiten Sensor gebaut um via Value Template an das Datum zu kommen.
ui-lovelance.yaml
- type: entities
title: Abfallkalender
entities:
- entity: sensor.abfallbiotonnenext
name: Biotonne
- entity: sensor.abfallgelbersacknext
name: Gelber Sack
- entity: sensor.abfallrestmuellnext
name: Restmüll
- entity: sensor.abfallpapiertonnenext
name: Blaue Tonne
Die Markdown Card kannte ich persönlich noch garnicht. Ist aber ne coole Sache html Inhalte anzuzeigen. Ich hab das Beispiel aus dem Video auch einwenig ausprobiert. Hier das Resultat.
Da es sich nunmal um html Code handelt wird er hier auf der Webseite auch interpetiert.
Daher der Code als Bild und weiter unten als Download (Text Datei)
Was im Video jetzt nicht so rüber kam, ist dass die Termine auch im Kalender angezeigt werden:
Zum Schluss fehlen jetzt natürlich noch die Benachrichtigungen. wir wollen ja wissen, wann wir den Müll raus stellen wollen. Um wieder an den "Raw" Wert des Sensors zu kommen hat mein "abfallnaechster" Sensor kein value Template.
Da meine Frau und ich beide die HA App auf dem Handy haben nutzen wir natürlich auch das leicht zu konfigurierende Benachrichtigungssystem der App.
Hier halte ich mich ans Video und prüfe um 17.00 Uhr ob morgen Müll rausgestellt werden muss.
Das Thema wurde zwar im Video erklärt, wie aber der komplette Code ausschaut bekommt ihr bei mir :-)
Weiterhin ist der Vorteil des YAML Modes gegenüber der GUI Variante im Video, dass man hier sehr wohl value Templates benutzen kann um den Text umzuformatieren.
automations.yaml
- alias: Müll Rausstellen
trigger:
platform: time
at: '17:00:00'
condition:
- condition: numeric_state
entity_id: sensor.abfallnaechster
below: 2
action:
- service: notify.mobile_app_ingo_s21
data:
message: "Müll rausstellen {{ states.sensor.abfallnaechster.attributes.values() | first | replace('papiertonne', 'Papiermüll') | replace('gelbersack', 'Gelber Sack') | replace('restmuell', 'Restmüll') }}"
- service: notify.mobile_app_heike_s21
data:
message: "Müll rausstellen {{ states.sensor.abfallnaechster.attributes.values() | first | replace('papiertonne', 'Papiermüll') | replace('gelbersack', 'Gelber Sack') | replace('restmuell', 'Restmüll') }}"
DMI (Freitag, 01 April 2022 16:31)
Wie bekomme ich es hin, dass sich die Einträge unterhalb von "Weitere Termine" automatisch nach Datum sortieren. Also die Reihenfolge aktualisiert, dass die als nächstes abzuholende Müllart als oberster Listeneintrag über den in nächster Datumsreihenfolge steht? Weder die von SmartHome yourself-Variante noch sonstige im Internet nachzulesenden Varianten ändern dies in meiner Umgebung.
KsNero (Sonntag, 06 März 2022 08:15)
Ok hat sich erledigt.
Habe oben nicht gelesen, das die Integration "Waste Collection Schedule" installiert werden muss.
KsNero (Sonntag, 06 März 2022 07:59)
Hallo, ich bekomme immer eine Fehlermeldung.
Konfiguration fehlerhaft
Integration error: waste_collection_schedule - Integration 'waste_collection_schedule' not found.
Was mache ich falsch? Hab es so eingefügt wie oben beschrieben.
Gruß KsNero