Eine kurze Schritt-für-Schritt Anleitung zum einrichten eines Abfallkalender in Home Assistant mit www.MyMüll.de als Datenquelle.
Als Voraussetzungen muss Home Assistant incl. HACS, also der Home Assistant Community Store bereits eineigerichtet sein, darauf geht diese Einleitung nicht ein sondern es wird als gegeben angesehen.
In der Home Assistant Oberfläche wählt man „HACS | Integrationen“ und installiert sich die Integration „Waste Collection Schedule“
Nun bearbeitet man mittels File Editor die configuration.yaml Datei und fügt eine entsprechenden Abschnitt der unten zu sehen ist hinzu.
Wobei wir zuvor noch die ID für die city_id und area_id jeweils passend für die gewünschte Stadt und Straße ermitteln müssen.
Dies ist über folgende URLs die man im Browser aufruft möglich:
URL zum auflisten aller Städte um die city_id der eigenen Stadt zu ermitteln:
https://mymuell.jumomind.com/mmapp/loxone/lox.php?r=cities
URL zum ermitteln der aread_id falls die Stadt beim Abfuhrtermin zwischen Straßen/Ortsteilen unterscheidet, wobei man die zuvor ermittelte city_id als Parameter verwendet:
https://mymuell.jumomind.com/mmapp/api.php?r=streets&city_id=2316
URL zum testen der ermitteln city_id und aread_id, es sollten nun die passenden Abfuhrtermine angezeigt werden:
https://mymuell.jumomind.com/mmapp/api.php?r=dates&city_id=2316&area_id=17
Ist in eurer Stand der Abführerin für die ganze Stadt einheitlich ohne dass nach Straßen und Ortsteilen unterschieden wird, dann tragt bitte als aread_id die city_id ein.
Hier nur der entsprechende Abschnitt meiner configuration.yaml Datei, wobei dort die citry_id 2316 für Aschaffenburg steht, und die area_id 17 für Ortsteil in dem sich der Ahornweg befindet:
# Abfallkalender
waste_collection_schedule:
sources:
- name: jumomind_de
args:
service_id: mymuell
city_id: 1656
area_id: 1656
sensor:
- platform: waste_collection_schedule
name: next_collection
value_template: '{{value.types|join(", ")}} in {{value.daysTo}} Tage'
Die Änderung in der configuration.yaml Datei erfordert ein Neustart von Home Assistant, danach kann man sich in der Übersicht eine entsprechende neue Karte anlegen, die auf die Entity sensor.next_collection zugreift, dies sieht z.B. wie folgt aus:
Hier der zugehörige yaml Code:
type: entity entity: sensor.next_collection name: Nächste Müllabfuhr icon: mdi:bucket
Die Abfuhrtermine erscheinen übrigens auch in der Kalenderansicht
Zum Schluss noch ein kleiner Exkurs unabhänig von Home Assistant, eigentlich geht es ja in meinem Blog sonst um Theme wie PowerShell und Co.
Deshalb will ich kurz zeigen, wie man die MyMüll Schnstelle auch mittels PowerShell abfragen kann, hier das entsprechende PowerShell Script:
# Variable
$Wohnort = "Aschaffenburg"
$Straße = "Ahornweg"
# ID der Stadt ermitteln
$CitiesObject = Invoke-RestMethod -Uri "https://mymuell.jumomind.com/mmapp/loxone/lox.php?r=cities"
$CityObject = $CitiesObject | Where-Object {$_.Name -ieq $Wohnort}
$CityObject | Format-Table
# ID der Straße ermitteln (nur in Großstädten)
if ($CityObject.has_streets -eq $true) {
$StreetsObject = Invoke-RestMethod -Uri "https://mymuell.jumomind.com/mmapp/api.php?r=streets&city_id=$($CityObject.id)"
$StreetObject = $StreetsObject | Where-Object {$_.Name -eq $Straße}
$StreetObject | Format-Table
}
# Abfallarten der Stadt ermitteln
$TrashObject = Invoke-RestMethod -Uri "https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=$($CityObject.id)"
$TrashObject | Format-Table
# Termine der Stadt ermitteln (je nachdem ob die Stadt nach Sraßen unterscheidet oder nicht)
if ($CityObject.has_streets -ieq $true) {
$TerminsObject = Invoke-RestMethod -Uri "https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=$($CityObject.id)&area_id=$($StreetObject.area_id)"
} else {
$TerminsObject = Invoke-RestMethod -Uri "https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=$($CityObject.id)&area_id=$($CityObject.area_id)"
}
$TerminsObject._data | FT cal_date_normal,cal_garbage_type
# Termine anzeigen und Abkürzungen auflösen
$TerminsObject._data | Format-Table @{ name ='Datum'; expression ={$_.cal_date_normal}},@{ name='Abfallart'; expression={ switch ($_.cal_garbage_type) { 'B' {'Bio Müll'} 'K' {'Gelber Sack'} 'P' {'Altpapier'} 'R' {'Restmüll'} 'SCH' {'Schadstoffsammlung'} default {'Andere'} } } }
Hallo
Ist es möglich, nur bestimmte Termine anzeigen zu lassen? Bei uns wird 1,2,3 und 4 wöchentliche geleert.
Ich möchte aber nur die 2 wöchentliche Leerung anzeigen lassen.
Ich bekomme leider einen Fehler beim überprüfen der config,yaml
Invalid config for [waste_collection_schedule]: [sensor] is an invalid option for [waste_collection_schedule]. Check: waste_collection_schedule->waste_collection_schedule->sensor. (See /config/configuration.yaml, line 43).
als tip noch: Möchte man eine der Tonnen nicht anzeigen (weil man z.b. Restmüll nur alle 4 Wochen leeren lässt), dann kann man Tonnen auch ausblenden:
Ich lasse z.b. „Restmüll“ weg und will nur den „Restmüll grüner Deckel (4 wö.)“ sehen.
# Abfallkalender
waste_collection_schedule:
sources:
– name: jumomind_de
args:
service_id: mymuell
city_id: 2316
area_id: 10
customize:
– type: Restmüll
show: false
Hi,
funktioniert super! Danke!
Kleine Frage: wie löse ich eine Benachrichtigungsautomation am Tag vor der Leerung aus?
Danke vorab und viele Grüße
Gunnar
Hallo.
ich bekomme bei
customize:
– type: Restmüll
show: false
ein
Integration error: customize – Integration ‚customize‘ not found
YAML:
# Abfallkalender
waste_collection_schedule:
sources:
– name: jumomind_de
args:
service_id: mymuell
city_id: 67947
area_id: 1469
customize:
– type: Bioabfall, Restabfall 2-wöchentlich, Bioabfall-Saison
show: false
Was läuft hier verkehrt?
hat sich erledigt…