Repository: mampfes/hacs_waste_collection_schedule

Issue:
Request for Kreis Northeim
Please add the waste collection schedule for Kreis Northeim Germany:
https://abfall.nerdbridge.de/
Provides .ics and .json Data for every city in the Kreis with multiple types of waste to sellect.


Discussion:
Should work with [ics](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/ics.md).

Resolving patch:
diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/service/MuellmaxDe.py b/custom_components/waste_collection_schedule/waste_collection_schedule/service/MuellmaxDe.py
new file mode 100644
--- /dev/null
+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/service/MuellmaxDe.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+
+
+SERVICE_MAP = [
+    {
+        "title": "AWISTA Düsseldorf",
+        "url": "https://www.awista.de/",
+        "service_id": "Dus",
+    },
+    {
+        "title": "RSAG Rhein-Sieg-Kreis",
+        "url": "https://www.rsag.de",
+        "service_id": "Rsa",
+    },
+    {
+        "title": "USB Bochum",
+        "url": "https://www.usb-bochum.de/",
+        "service_id": "Usb",
+    },
+    {
+        "title": "Abfallwirtschaftsbetriebe Münster",
+        "url": "https://www.stadt-muenster.de",
+        "service_id": "Awm",
+    },
+    {
+        "title": "Entsorgungsbetrieb Stadt Mainz",
+        "url": "https://eb-mainz.de/",
+        "service_id": "Ebm",
+    },
+    {
+        "title": "EVS Entsorgungsverband Saar",
+        "url": "https://www.evs.de/",
+        "service_id": "Evs",
+    },
+    {
+        "title": "Landkreis Gießen",
+        "url": "https://www.lkgi.de/",
+        "service_id": "Lkg",
+    },
+    {
+        "title": "Stadt Hamm",
+        "url": "https://www.hamm.de/",
+        "service_id": "Ash",
+    },
+    {
+        "title": "Stadt Darmstadt",
+        "url": "darmstadt.de",
+        "service_id": "Ead",
+    },
+    {
+        "title": "TBR Remscheid",
+        "url": "https://www.tbr-info.de/",
+        "service_id": "Tbr",
+    },
+    {
+        "title": "Stadtbildpflege Kaiserslautern",
+        "url": "https://www.stadtbildpflege-kl.de/",
+        "service_id": "Ask",
+    },
+    {
+        "title": "Stadt Hanau",
+        "url": "https://www.hanau.de/",
+        "service_id": "His",
+    },
+    {
+        "title": "Stadt Maintal",
+        "url": "https://www.maintal.de/",
+        "service_id": "Mai",
+    },
+    {
+        "title": "Stadt Haltern am See",
+        "url": "https://www.haltern-am-see.de/",
+        "service_id": "Hal",
+    },
+    {
+        "title": "Kreisstadt Friedberg",
+        "url": "https://www.friedberg-hessen.de/",
+        "service_id": "Efb",
+    },
+]
diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/muellmax_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/muellmax_de.py
--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/muellmax_de.py
+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/muellmax_de.py
@@ -3,10 +3,17 @@
 import requests
 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
 from waste_collection_schedule.service.ICS import ICS
+from waste_collection_schedule.service.MuellmaxDe import SERVICE_MAP
 
 TITLE = "Müllmax"
 DESCRIPTION = "Source for Müllmax waste collection."
 URL = "https://www.muellmax.de"
+
+
+def EXTRA_INFO():
+    return [{"title": s["title"], "url": s["url"]} for s in SERVICE_MAP]
+
+
 TEST_CASES = {
     "Rhein-Sieg-Kreis, Alfter": {
         "service": "Rsa",
diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py
--- a/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py
+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py
@@ -1,10 +1,17 @@
 #!/usr/bin/env python3
 
+import site
 from html.parser import HTMLParser
+from pathlib import Path
 
 import inquirer
 import requests
 
+# add module directory to path
+package_dir = Path(__file__).resolve().parents[2]
+site.addsitedir(str(package_dir))
+from waste_collection_schedule.service.MuellmaxDe import SERVICE_MAP  # type: ignore # isort:skip # noqa: E402
+
 
 # Parser for HTML input (hidden) text
 class InputTextParser(HTMLParser):
@@ -87,12 +94,14 @@ def main():
         ("Landkreis Gießen", "Lkg"),
         ("Hamm", "Ash"),
         ("Darmstadt", "Ead"),
+        ("Remscheid", "Tbr"),
         ("Kaiserslautern", "Ask"),
         ("Hanau", "His"),
         ("Maintal", "Mai"),
         ("Haltern am See", "Hal"),
         ("Friedberg", "Efb"),
     ]
+    service_choices = [(s["title"], s["service_id"]) for s in SERVICE_MAP]
     questions = [
         inquirer.List(
             "service",


Test patch: