{"id":3436,"date":"2022-09-30T16:07:53","date_gmt":"2022-09-30T14:07:53","guid":{"rendered":"https:\/\/www.mariotti.de\/?p=3436"},"modified":"2022-09-30T16:07:53","modified_gmt":"2022-09-30T14:07:53","slug":"abfallkalender-in-home-assistant-einrichten-mit-mymuell-als-datenquelle","status":"publish","type":"post","link":"https:\/\/dev.mariotti.de\/?p=3436","title":{"rendered":"Abfallkalender in Home Assistant einrichten mit MyM\u00fcll als Datenquelle"},"content":{"rendered":"<p>Eine kurze Schritt-f\u00fcr-Schritt Anleitung zum einrichten eines Abfallkalender in Home Assistant mit <a href=\"https:\/\/www.mymuell.de\/\" target=\"_blank\" rel=\"noopener\">www.MyM\u00fcll.de<\/a> als Datenquelle.<\/p>\n<p>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.<\/p>\n<p>In der Home Assistant Oberfl\u00e4che w\u00e4hlt man <strong>&#8222;HACS | Integrationen&#8220;<\/strong> und installiert sich die Integration <strong>&#8222;Waste Collection Schedule&#8220;<\/strong><\/p>\n<p>Nun bearbeitet man mittels File Editor die configuration.yaml Datei und f\u00fcgt eine entsprechenden Abschnitt der unten zu sehen ist hinzu.<br \/>\nWobei wir zuvor noch die ID f\u00fcr die city_id und area_id jeweils passend f\u00fcr die gew\u00fcnschte\u00a0 Stadt und Stra\u00dfe ermitteln m\u00fcssen.<br \/>\nDies ist \u00fcber folgende URLs die man im Browser aufruft m\u00f6glich:<\/p>\n<p>URL zum auflisten aller St\u00e4dte um die city_id der eigenen Stadt zu ermitteln:<br \/>\n<a href=\"https:\/\/mymuell.jumomind.com\/mmapp\/loxone\/lox.php?r=cities\" target=\"_blank\" rel=\"noopener\">https:\/\/mymuell.jumomind.com\/mmapp\/loxone\/lox.php?r=cities<\/a><\/p>\n<p>URL zum ermitteln der aread_id falls die Stadt beim Abfuhrtermin zwischen Stra\u00dfen\/Ortsteilen unterscheidet, wobei man die zuvor ermittelte city_id als Parameter verwendet:<br \/>\n<a href=\"https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=streets&amp;city_id=2316\" target=\"_blank\" rel=\"noopener\">https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=streets&amp;city_id=2316<\/a><\/p>\n<p>URL zum testen der ermitteln city_id und aread_id, es sollten nun die passenden Abfuhrtermine angezeigt werden:<br \/>\n<a href=\"https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=dates&amp;city_id=2316&amp;area_id=17\" target=\"_blank\" rel=\"noopener\">https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=dates&amp;city_id=2316&amp;area_id=17<\/a><\/p>\n<p>Ist in eurer Stand der Abf\u00fchrerin f\u00fcr die ganze Stadt einheitlich ohne dass nach Stra\u00dfen und Ortsteilen unterschieden wird, dann tragt bitte als aread_id die city_id ein.<\/p>\n<p>Hier nur der entsprechende Abschnitt meiner configuration.yaml Datei, wobei dort die citry_id 2316 f\u00fcr Aschaffenburg steht, und die area_id 17 f\u00fcr Ortsteil in dem sich der Ahornweg befindet:<\/p>\n<pre><code class=\"language-yaml\"># Abfallkalender\nwaste_collection_schedule:\n  sources:\n    - name: jumomind_de\n      args:\n        service_id: mymuell\n        city_id: 1656\n        area_id: 1656\n        \nsensor:\n  - platform: waste_collection_schedule\n    name: next_collection \n    value_template: '{{value.types|join(\", \")}} in {{value.daysTo}} Tage'\n<\/code><\/pre>\n<p>Die \u00c4nderung in der configuration.yaml Datei erfordert ein Neustart von Home Assistant, danach kann man sich in der \u00dcbersicht eine entsprechende neue Karte anlegen, die auf die Entity sensor.next_collection zugreift, dies sieht z.B. wie folgt aus:<\/p>\n<p><a href=\"https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Karte-Uebersicht.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3441\" src=\"https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Karte-Uebersicht-1024x322.jpg\" alt=\"\" width=\"940\" height=\"296\" srcset=\"https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Karte-Uebersicht-1024x322.jpg 1024w, https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Karte-Uebersicht-300x94.jpg 300w, https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Karte-Uebersicht-2000x629.jpg 2000w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/a><\/p>\n<p>Hier der zugeh\u00f6rige yaml Code:<\/p>\n<pre><code class=\"language-yaml\">type: entity\nentity: sensor.next_collection\nname: N\u00e4chste M\u00fcllabfuhr\nicon: mdi:bucket<\/code><code class=\"language-yaml\">\n<\/code><\/pre>\n<p>Die Abfuhrtermine erscheinen \u00fcbrigens auch in der Kalenderansicht<\/p>\n<p><a href=\"https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Kalender-scaled-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3440\" src=\"https:\/\/dev.mariotti.de\/wp-content\/uploads\/2022\/09\/Home-Assistant-Abfuehrtermine-Kalender-1024x242.jpg\" alt=\"\" width=\"940\" height=\"222\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Zum Schluss noch ein kleiner Exkurs unabh\u00e4nig von Home Assistant,\u00a0 eigentlich geht es ja in meinem Blog sonst um Theme wie PowerShell und Co.<br \/>\nDeshalb will ich kurz zeigen, wie man die MyM\u00fcll Schnstelle auch mittels PowerShell abfragen kann, hier das entsprechende PowerShell Script:<\/p>\n<pre><code class=\"language-powershell\">    # Variable \n    $Wohnort = \"Aschaffenburg\" \n    $Stra\u00dfe = \"Ahornweg\"\n\n    # ID der Stadt ermitteln\n    $CitiesObject = Invoke-RestMethod -Uri \"https:\/\/mymuell.jumomind.com\/mmapp\/loxone\/lox.php?r=cities\"\n    $CityObject = $CitiesObject | Where-Object {$_.Name -ieq $Wohnort}\n    $CityObject | Format-Table\n\n    # ID der Stra\u00dfe ermitteln (nur in Gro\u00dfst\u00e4dten)\n    if ($CityObject.has_streets -eq $true) {\n        $StreetsObject = Invoke-RestMethod -Uri \"https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=streets&amp;city_id=$($CityObject.id)\"\n        $StreetObject = $StreetsObject | Where-Object {$_.Name -eq $Stra\u00dfe}\n        $StreetObject | Format-Table\n    }\n\n    # Abfallarten der Stadt ermitteln\n    $TrashObject = Invoke-RestMethod -Uri \"https:\/\/mymuell.jumomind.com\/mmapp\/api.php?r=trash&amp;city_id=$($CityObject.id)\"\n    $TrashObject | Format-Table\n\n    # Termine der Stadt ermitteln (je nachdem ob die Stadt nach Sra\u00dfen unterscheidet oder nicht)\n    if ($CityObject.has_streets -ieq $true) {\n        $TerminsObject = Invoke-RestMethod -Uri \"https:\/\/mymuell.jumomind.com\/webservice.php?idx=termins&amp;city_id=$($CityObject.id)&amp;area_id=$($StreetObject.area_id)\"\n    } else {\n        $TerminsObject = Invoke-RestMethod -Uri \"https:\/\/mymuell.jumomind.com\/webservice.php?idx=termins&amp;city_id=$($CityObject.id)&amp;area_id=$($CityObject.area_id)\"\n    }\n    $TerminsObject._data | FT cal_date_normal,cal_garbage_type\n\n    # Termine anzeigen und Abk\u00fcrzungen aufl\u00f6sen\n    $TerminsObject._data | Format-Table @{ name ='Datum'; expression ={$_.cal_date_normal}},@{ name='Abfallart'; expression={ switch ($_.cal_garbage_type) { 'B' {'Bio M\u00fcll'} 'K' {'Gelber Sack'} 'P' {'Altpapier'} 'R' {'Restm\u00fcll'} 'SCH' {'Schadstoffsammlung'} default {'Andere'} } } }\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Eine kurze Schritt-f\u00fcr-Schritt Anleitung zum einrichten eines Abfallkalender in Home Assistant mit MyM\u00fcll als Datenquelle<\/p>\n","protected":false},"author":2,"featured_media":3425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,37],"tags":[],"class_list":["post-3436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-home-assistant","category-powershell"],"_links":{"self":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3436"}],"version-history":[{"count":0,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3436\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/media\/3425"}],"wp:attachment":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}