add examples for ICS

remove them from ICS test-cases and ICS docu
This commit is contained in:
mampfes
2023-04-06 16:28:59 +02:00
parent 4921f0d3a4
commit 14c4ec8a60
39 changed files with 604 additions and 772 deletions

View File

@@ -66,6 +66,7 @@ Waste collection schedules in the following formats and countries are supported.
<summary>Belgium</summary>
- [Hygea](/doc/source/hygea_be.md) / hygea.be
- [Limburg.net](/doc/source/ics/limburg_net.md) / limburg.net
- [Recycle!](/doc/source/recycleapp_be.md) / recycleapp.be
</details>
@@ -121,6 +122,7 @@ Waste collection schedules in the following formats and countries are supported.
- [ART Trier](/doc/source/art_trier_de.md) / art-trier.de
- [ASO Abfall-Service Osterholz](/doc/source/abfall_io.md) / aso-ohz.de
- [ASR Stadt Chemnitz](/doc/source/asr_chemnitz_de.md) / asr-chemnitz.de
- [AVL - Abfallverwertungsgesellschaft des Landkreises Ludwigsburg mbH](/doc/source/ics/avl_ludwigsburg_de.md) / avl-ludwigsburg.de
- [AWA Entsorgungs GmbH](/doc/source/abfallnavi_de.md) / awa-gmbh.de
- [AWB Abfallwirtschaft Vechta](/doc/source/abfallwirtschaft_vechta_de.md) / abfallwirtschaft-vechta.de
- [AWB Bad Kreuznach](/doc/source/awb_bad_kreuznach_de.md) / app.awb-bad-kreuznach.de
@@ -132,6 +134,7 @@ Waste collection schedules in the following formats and countries are supported.
- [AWB Westerwaldkreis](/doc/source/abfall_io.md) / wab.rlp.de
- [AWG Kreis Warendorf](/doc/source/abfallnavi_de.md) / awg-waf.de
- [AWIDO Online](/doc/source/awido_de.md) / awido-online.de
- [Awista Starnberg](/doc/source/ics/awista_starnberg_de.md) / awista-starnberg.de
- [Bau & Service Oberursel](/doc/source/c_trace_de.md) / bso-oberursel.de
- [Bergischer Abfallwirtschaftverbund](/doc/source/abfallnavi_de.md) / bavweb.de
- [Berlin Recycling](/doc/source/berlin_recycling_de.md) / berlin-recycling.de
@@ -145,11 +148,15 @@ Waste collection schedules in the following formats and countries are supported.
- [Dillingen Saar](/doc/source/dillingen_saar_de.md) / dillingen-saar.de
- [Dinslaken](/doc/source/abfallnavi_de.md) / dinslaken.de
- [EAD Darmstadt](/doc/source/ead_darmstadt_de.md) / ead.darmstadt.de
- [EDG Entsorgung Dortmund](/doc/source/ics/edg_de.md) / edg.de
- [EGN Abfallkalender](/doc/source/egn_abfallkalender_de.md) / egn-abfallkalender.de
- [EGST Steinfurt](/doc/source/abfall_io.md) / egst.de
- [EGW Westmünsterland](/doc/source/abfallnavi_de.md) / egw.de
- [Entsorgungs- und Wirtschaftsbetrieb Landau in der Pfalz](/doc/source/c_trace_de.md) / ew-landau.de
- [Entsorgungsbetrieb Märkisch-Oderland](/doc/source/ics/entsorgungsbetrieb_mol_de.md) / entsorgungsbetrieb-mol.de
- [Entsorgungsbetriebe Essen](/doc/source/abfall_io.md) / ebe-essen.de
- [Entsorgungsgesellschaft Görlitz-Löbau-Zittau](/doc/source/ics/abfall_eglz_de.md) / abfall-eglz.de
- [FES Frankfurter Entsorgungs- und Service GmbH](/doc/source/ics/fes_frankfurt_de.md) / fes-frankfurt.de
- [Gemeinde Aschheim](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Gemeinde Blankenheim](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Gemeinde Bühlerzell](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
@@ -205,6 +212,7 @@ Waste collection schedules in the following formats and countries are supported.
- [Landkreis Schwäbisch Hall](/doc/source/lrasha_de.md) / lrasha.de
- [Landkreis Schwäbisch Hall](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Landkreis Sigmaringen](/doc/source/abfall_io.md) / landkreis-sigmaringen.de
- [Landkreis Stade](/doc/source/ics/landkreis_stade_de.md) / landkreis-stade.de
- [Landkreis Südliche Weinstraße](/doc/source/awido_de.md) / suedliche-weinstrasse.de
- [Landkreis Tirschenreuth](/doc/source/awido_de.md) / kreis-tir.de
- [Landkreis Tübingen](/doc/source/awido_de.md) / abfall-kreis-tuebingen.de
@@ -212,11 +220,13 @@ Waste collection schedules in the following formats and countries are supported.
- [Landkreis Wittmund](/doc/source/landkreis_wittmund_de.md) / landkreis-wittmund.de
- [Landkreisbetriebe Neuburg-Schrobenhausen](/doc/source/awido_de.md) / landkreisbetriebe.de
- [Landratsamt Aichach-Friedberg](/doc/source/awido_de.md) / lra-aic-fdb.de
- [Landratsamt Bodenseekreis](/doc/source/ics/bodenseekreis_de.md) / bodenseekreis.de
- [Landratsamt Dachau](/doc/source/awido_de.md) / landratsamt-dachau.de
- [Landratsamt Main-Tauber-Kreis](/doc/source/c_trace_de.md) / main-tauber-kreis.de
- [Landratsamt Traunstein](/doc/source/abfall_io.md) / traunstein.com
- [Landratsamt Unterallgäu](/doc/source/abfall_io.md) / landratsamt-unterallgaeu.de
- [Ludwigshafen am Rhein](/doc/source/abfall_io.md) / ludwigshafen.de
- [Lübeck Entsorgungsbetriebe](/doc/source/ics/luebeck_de.md) / luebeck.de
- [MZV Biedenkopf](/doc/source/buergerportal_de.md) / mzv-biedenkopf.de
- [MüllALARM / Schönmackers](/doc/source/abfall_io.md) / schoenmackers.de
- [Müllmax](/doc/source/muellmax_de.md) / muellmax.de
@@ -231,17 +241,20 @@ Waste collection schedules in the following formats and countries are supported.
- [Stadt Arnsberg](/doc/source/c_trace_de.md) / arnsberg.de
- [Stadt Bayreuth](/doc/source/c_trace_de.md) / bayreuth.de
- [Stadt Cottbus](/doc/source/abfallnavi_de.md) / cottbus.de
- [Stadt Detmold](/doc/source/ics/detmold_de.md) / detmold.de
- [Stadt Dorsten](/doc/source/abfallnavi_de.md) / ebd-dorsten.de
- [Stadt Ehingen](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Stadt Emden](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Stadt Emmendingen](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Stadt Fulda](/doc/source/awido_de.md) / fulda.de
- [Stadt Kaufbeuren](/doc/source/awido_de.md) / kaufbeuren.de
- [Stadt Koblenz](/doc/source/ics/koblenz_de.md) / koblenz.de
- [Stadt Kraichtal](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Stadt Landshut](/doc/source/abfall_io.md) / landshut.de
- [Stadt Memmingen](/doc/source/awido_de.md) / umwelt.memmingen.de
- [Stadt Messstetten](/doc/source/cmcitymedia_de.md) / cmcitymedia.de
- [Stadt Norderstedt](/doc/source/abfallnavi_de.md) / betriebsamt-norderstedt.de
- [Stadt Osnabrück](/doc/source/ics/osnabrueck_de.md) / osnabrueck.de
- [Stadt Overath](/doc/source/c_trace_de.md) / overath.de
- [Stadt Regensburg](/doc/source/awido_de.md) / regensburg.de
- [Stadt Solingen](/doc/source/abfallnavi_de.md) / solingen.de
@@ -250,6 +263,7 @@ Waste collection schedules in the following formats and countries are supported.
- [Stadtreinigung Dresden](/doc/source/stadtreinigung_dresden_de.md) / dresden.de
- [Stadtreinigung Hamburg](/doc/source/stadtreinigung_hamburg.md) / stadtreinigung.hamburg
- [Stadtreinigung Leipzig](/doc/source/stadtreinigung_leipzig_de.md) / stadtreinigung-leipzig.de
- [Stadtreinigung Leipzig](/doc/source/ics/stadtreinigung_leipzig_de.md) / stadtreinigung-leipzig.de
- [StadtService Brühl](/doc/source/stadtservice_bruehl_de.md) / stadtservice-bruehl.de
- [STL Lüdenscheid](/doc/source/abfallnavi_de.md) / stl-luedenscheid.de
- [Städteservice Raunheim Rüsselsheim](/doc/source/staedteservice_de.md) / staedteservice.de
@@ -260,6 +274,7 @@ Waste collection schedules in the following formats and countries are supported.
- [WGV Recycling GmbH](/doc/source/awido_de.md) / wgv-quarzbichl.de
- [Wolfsburger Abfallwirtschaft und Straßenreinigung](/doc/source/was_wolfsburg_de.md) / was-wolfsburg.de
- [WZV Kreis Segeberg](/doc/source/c_trace_de.md) / wzv.de
- [ZAH Hildesheim](/doc/source/ics/zah_hildesheim_de.md) / zah-hildesheim.de
- [ZAW Darmstadt-Dieburg](/doc/source/zaw_online_de.md) / zaw-online.de
- [Zweckverband Abfallwirtschaft Kreis Bergstraße](/doc/source/zakb_de.md) / zakb.de
- [Zweckverband Abfallwirtschaft Region Trier (A.R.T.)](/doc/source/ics/art_trier_de.md) / art-trier.de

View File

@@ -13,15 +13,6 @@ TITLE = "ICS"
DESCRIPTION = "Source for ICS based schedules."
URL = None
TEST_CASES = {
"Dortmund, Dudenstr. 5": {
"url": "https://www.edg.de/ical/kalender.ics?Strasse=Dudenstr.&Hausnummer=5&Erinnerung=-1&Abfallart=1,2,3,4"
},
"Leipzig, Sandgrubenweg 27": {
"url": "https://stadtreinigung-leipzig.de/wir-kommen-zu-ihnen/abfallkalender/ical.ics?position_nos=38296&name=Sandgrubenweg%2027"
},
"Ludwigsburg": {
"url": "https://kundenportal.avl-lb.de/WasteManagementLudwigsburg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=950230001&AboID=8188&Fra=BT;RT;PT;LT;GT"
},
"Esslingen, Bahnhof": {
"url": "https://api.abfall.io/?kh=DaA02103019b46345f1998698563DaAd&t=ics&s=1a862df26f6943997cef90233877a4fe"
},
@@ -39,9 +30,6 @@ TEST_CASES = {
"url": "https://www.awm-muenchen.de/entsorgen/abfuhrkalender?tx_awmabfuhrkalender_abfuhrkalender%5Bhausnummer%5D=11&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=70024507&tx_awmabfuhrkalender_abfuhrkalender%5Bstellplatz%5D%5Bpapier%5D=70024507&tx_awmabfuhrkalender_abfuhrkalender%5Bstellplatz%5D%5Brestmuell%5D=70024507&tx_awmabfuhrkalender_abfuhrkalender%5Bstrasse%5D=bahnstr.&tx_awmabfuhrkalender_abfuhrkalender%5Byear%5D={%Y}",
"version": 1,
},
"Buxtehude, Am Berg": {
"url": "https://abfall.landkreis-stade.de/api_v2/collection_dates/1/ort/10/strasse/90/hausnummern/1/abfallarten/R02-R04-B02-D04-D12-P04-R12-R14-W0-R22-R24-R31/kalender.ics"
},
# "Hausmüllinfo: ASR Chemnitz": {
# "url": "https://asc.hausmuell.info/ics/ics.php",
# "method": "POST",
@@ -89,23 +77,10 @@ TEST_CASES = {
},
"year_field": "year",
},
"Detmold": {
"url": "https://abfuhrkalender.detmold.de/icsmaker.php",
"method": "GET",
"params": {"strid": 338},
"year_field": "year",
},
"EAW Rheingau Taunus": {
"url": "https://www.eaw-rheingau-taunus.de/abfallsammlung/abfuhrtermine/feed.ics?tx_vierwdeaw_garbagecalendarics%5Baction%5D=ics&tx_vierwdeaw_garbagecalendarics%5Bcontroller%5D=GarbageCalendar&tx_vierwdeaw_garbagecalendarics%5Bstreet%5D=38",
"split_at": ",",
},
"Recollect, Ottawa": {
"url": "https://recollect.a.ssl.fastly.net/api/places/BCCDF30E-578B-11E4-AD38-5839C200407A/services/208/events.en.ics",
"split_at": "\\, [and ]*",
},
"Frankfurt am Main, Achenbachstrasse 3": {
"url": "https://www.fes-frankfurt.de/abfallkalender/QWNoZW5iYWNoc3RyLnwzfDYwNTk2.ics"
},
"Erlensee, Am Haspel": {
"url": "https://sperrmuell.erlensee.de/?type=reminder",
"method": "POST",

View File

@@ -33,6 +33,12 @@ def main():
action="store_true",
help="Print exception information and stack trace",
)
parser.add_argument(
"-I", "--ics", action="store_true", help="Test all .yaml file for ICS source"
)
parser.add_argument(
"-y", "--yaml", action="append", help="Test given .yaml file for ICS source"
)
args = parser.parse_args()
# read secrets.yaml
@@ -53,15 +59,21 @@ def main():
# add module directory to path
site.addsitedir(str(package_dir))
# find all source files for testing
if args.source is not None:
files = args.source
else:
files = filter(
# source file(s) given
source_files = args.source
elif not args.ics and args.yaml is None:
# no ICS yaml files given --> test all source files
source_files = filter(
lambda x: x != "__init__",
map(lambda x: x.stem, source_dir.glob("*.py")),
)
else:
# ICS yaml file(s) given
source_files = []
for f in sorted(files):
for f in sorted(source_files):
# iterate through all *.py files in waste_collection_schedule/source
print(f"Testing source {f} ...")
module = importlib.import_module(f"waste_collection_schedule.source.{f}")
@@ -80,49 +92,65 @@ def main():
# replace secrets in arguments
replace_secret(secrets, tc)
# create source
try:
source = module.Source(**tc)
result = source.fetch()
count = len(result)
if count > 0:
print(
f" found {bcolors.OKGREEN}{count}{bcolors.ENDC} entries for {name}"
)
else:
print(
f" found {bcolors.WARNING}0{bcolors.ENDC} entries for {name}"
)
test_fetch(module, name, tc, args)
# test if source is returning the correct date format
if (
len(
list(
filter(lambda x: type(x.date) is not datetime.date, result)
)
)
> 0
):
print(
f"{bcolors.FAIL} ERROR: source returns invalid date format (datetime.datetime instead of datetime.date?){bcolors.ENDC}"
)
# find all ICS yaml files for testing
ics_yaml_dir = Path(__file__).resolve().parents[4] / "doc" / "ics" / "yaml"
if args.ics:
# test all ICS yaml files
yaml_files = ics_yaml_dir.glob("*.yaml")
elif args.yaml:
# ICS yaml files specified
yaml_files = [Path(ics_yaml_dir, f).with_suffix(".yaml") for f in args.yaml]
elif args.source is None:
# neither source nor ICS yaml files specified --> test all yaml files
yaml_files = ics_yaml_dir.glob("*.yaml")
else:
# source files given --> don't test ICS yaml files
yaml_files = []
if args.list:
result = (
sorted(result, key=lambda x: x.date) if args.sorted else result
)
for x in result:
icon_str = f" [{x.icon}]" if args.icon else ""
weekday_str = x.date.strftime("%a ") if args.weekday else ""
print(
f" {x.date.isoformat()} {weekday_str}: {x.type}{icon_str}"
)
except KeyboardInterrupt:
exit()
except Exception as exc:
print(f" {name} {bcolors.FAIL}failed{bcolors.ENDC}: {exc}")
if args.traceback:
print(indent(traceback.format_exc(), 4))
# run through all .yaml files for ICS source
module = importlib.import_module("waste_collection_schedule.source.ics")
for f in sorted(yaml_files):
print(f"Testing ICS {f.name}")
with open(f) as stream:
# read yaml file
data = yaml.safe_load(stream)
# run through all test-cases
for name, tc in data["test_cases"].items():
test_fetch(module, name, tc, args)
def test_fetch(module, name, tc, args):
# create source
try:
source = module.Source(**tc)
result = source.fetch()
count = len(result)
if count > 0:
print(f" found {bcolors.OKGREEN}{count}{bcolors.ENDC} entries for {name}")
else:
print(f" found {bcolors.WARNING}0{bcolors.ENDC} entries for {name}")
# test if source is returning the correct date format
if len(list(filter(lambda x: type(x.date) is not datetime.date, result))) > 0:
print(
f"{bcolors.FAIL} ERROR: source returns invalid date format (datetime.datetime instead of datetime.date?){bcolors.ENDC}"
)
if args.list:
result = sorted(result, key=lambda x: x.date) if args.sorted else result
for x in result:
icon_str = f" [{x.icon}]" if args.icon else ""
weekday_str = x.date.strftime("%a ") if args.weekday else ""
print(f" {x.date.isoformat()} {weekday_str}: {x.type}{icon_str}")
except KeyboardInterrupt:
exit()
except Exception as exc:
print(f" {name} {bcolors.FAIL}failed{bcolors.ENDC}: {exc}")
if args.traceback:
print(indent(traceback.format_exc(), 4))
def replace_secret(secrets, d):

22
doc/ics/abfall_eglz_de.md Normal file
View File

@@ -0,0 +1,22 @@
# Entsorgungsgesellschaft Görlitz-Löbau-Zittau
Entsorgungsgesellschaft Görlitz-Löbau-Zittau is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.abfall-eglz.de/abfallkalender.html> and select your municipality.
- Right-click on `Entsorgungstermine als iCalendar herunterladen` and copy link address.
- Replace the `url` in the example configuration with this link.
## Examples
### Oppach
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://www.abfall-eglz.de/abfallkalender.html?ort=Oppach&ortsteil=Ort+Oppach&strasse=&ics=1
```

View File

@@ -9,7 +9,7 @@ Zweckverband Abfallwirtschaft Region Trier (A.R.T.) is supported by the generic
- Scroll down to `JAHRESKALENDER FÜR IHR OUTLOOK, ETC.`
- Set `Wann möchten Sie erinnert werden?` to `Am Abfuhrtag`.
- Click on `> Kalender (ICS) importieren` to get a webcal link.
- Copy this link into the configuration (see example).
- Replace the `url` in the example configuration with this link.
## Examples
@@ -20,5 +20,7 @@ waste_collection_schedule:
sources:
- name: ics
args:
regex: 'A.R.T. Abfuhrtermin: (.*)'
split_at: ' & '
url: webcal://abfallkalender.art-trier.de/ics-feed/54578_basberg_1-1800.ics
```

View File

@@ -0,0 +1,22 @@
# AVL - Abfallverwertungsgesellschaft des Landkreises Ludwigsburg mbH
AVL - Abfallverwertungsgesellschaft des Landkreises Ludwigsburg mbH is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.avl-ludwigsburg.de/> and select your location.
- Click on `URL ANZEIGEN` to get a webcal link.
- Replace the `url` in the example configuration with this link.
## Examples
### Sandgrubenweg 27
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://kundenportal.avl-lb.de/WasteManagementLudwigsburg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=941092001&AboID=76574&Fra=BT;RT;PT;LT;GT
```

View File

@@ -0,0 +1,22 @@
# Awista Starnberg
Awista Starnberg is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.awista-starnberg.de/abfallwirtschaftskalender/> and select your municipality.
- Click on `URL in die Zwischenablage kopieren`.
- Replace the `url` in the example configuration with this link.
## Examples
### Berg, Ahornweg 1
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://xmlcall.awista-starnberg.de/WasteManagementStarnberg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=162188001&AboID=104609&Fra=P;R;B;S;G
```

View File

@@ -0,0 +1,23 @@
# Landratsamt Bodenseekreis
Landratsamt Bodenseekreis is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/> and select your municipality.
- Click on `iCal-Kalender` and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
## Examples
### Hagnau
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/export/2023/hagnau/1,4,2,5,16,7,9,8,10,6/ics/
```

26
doc/ics/detmold_de.md Normal file
View File

@@ -0,0 +1,26 @@
# Stadt Detmold
Stadt Detmold is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://abfuhrkalender.detmold.de/> and select your location.
- Click on `Weitere Information`.
- Click on `Download ics-Datei (iCal).
- Right-click on `Download` link and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
## Examples
### Beateweg
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
regex: "M\xFCllabfuhr: (.*)"
url: https://abfuhrkalender.detmold.de/icsmaker.php?strid=146&year={%Y}
```

25
doc/ics/edg_de.md Normal file
View File

@@ -0,0 +1,25 @@
# EDG Entsorgung Dortmund
EDG Entsorgung Dortmund is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.edg.de/de/entsorgungsdienstleistungen/rein-damit/info-service/ical-webcal.htm?Submit1=Kalender+abonnieren> and select your location.
- Click on `Kalender erzeugen`.
- Set `Wann möchten Sie erinnert werden?` to `Am Abfuhrtag`.
- Below `Outlook und weitere` set `Erinnerung` to `Keine Erinnerung`.
- Click on `Link kopieren` to get a webcal link.
- Replace the `url` in the example configuration with this link.
## Examples
### Baackweg 1
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: webcal://www.edg.de/ical/kalender.ics?Strasse=Hanfweg&Hausnummer=1&Erinnerung=-1&Abfallart=1,2,3,4
```

View File

@@ -0,0 +1,23 @@
# Entsorgungsbetrieb Märkisch-Oderland
Entsorgungsbetrieb Märkisch-Oderland is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.entsorgungsbetrieb-mol.de/de/tourenplan-2022.html> and select your location.
- Click on `Exportieren`.
- Click on `Adresse kopieren` to copy link.
- Replace the `url` in the example configuration with this link.
## Examples
### Buckow, Hasenholz
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://mol.wastebox.gemos-management.de/Gemos/WasteBox/Frontend/TourSchedule/Raw/Name/2023/List/585587/2696,2697,2698,2699,2700,2701,2702,2703/Print/ics/Default/Abfuhrtermine.ics
```

View File

@@ -0,0 +1,25 @@
# FES Frankfurter Entsorgungs- und Service GmbH
FES Frankfurter Entsorgungs- und Service GmbH is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.fes-frankfurt.de/services/abfallkalender> and select your location.
- Click on `Kalender`.
- Copy link address.
- Replace the `url` in the example configuration with this link.
## Examples
### Achenbachstr. 2
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
regex: (.*)\s+\|
split_at: ' / '
url: https://www.fes-frankfurt.de/abfallkalender/QWNoZW5iYWNoc3RyLnwyfDYwNTk2.ics
```

23
doc/ics/koblenz_de.md Normal file
View File

@@ -0,0 +1,23 @@
# Stadt Koblenz
Stadt Koblenz is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://servicebetrieb.koblenz.de/abfallwirtschaft/entsorgungstermine-digital/>.
- Right-click on your municipality and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url by {%Y}.
## Examples
### Altstadt
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://servicebetrieb.koblenz.de/abfallwirtschaft/entsorgungstermine-digital/entsorgungstermine-2023-digital/altstadt-{%Y}.ics?cid=2ui7
```

View File

@@ -0,0 +1,22 @@
# Landkreis Stade
Landkreis Stade is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://abfall.landkreis-stade.de/abfuhrkalender/> and select your location.
- Right-click on `Als Kalenderdatei (.ics) herunterladen` and copy link address.
- Replace the `url` in the example configuration with this link.
## Examples
### Dollern, an der Bahn 1
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://abfall.landkreis-stade.de/api_v2/collection_dates/1/ort/12/strasse/60/hausnummern/1/abfallarten/R02-R04-B02-D04-D12-P04-R14-R12-W0-R22-R24-R31/kalender.ics
```

24
doc/ics/limburg_net.md Normal file
View File

@@ -0,0 +1,24 @@
# Limburg.net
Limburg.net is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.limburg.net/afvalkalender> and select your location.
- Click on `Download`.
- Under `Kies formaat`, select `Android/iPhone`.
- Copy the webcal link.
- Replace the `url` in the example configuration with this link.
## Examples
### Bandstraat 11, Bilzen
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: webcal://www.limburg.net/ics/afvalkalender/73006/10998/11/0
```

23
doc/ics/luebeck_de.md Normal file
View File

@@ -0,0 +1,23 @@
# Lübeck Entsorgungsbetriebe
Lübeck Entsorgungsbetriebe is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://insert-it.de/BMSAbfallkalenderLuebeck> and select your location.
- Right-click on `iCalendar` and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
## Examples
### Dampfpfeife 2
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://insert-it.de/BMSAbfallkalenderLuebeck/Main/Calender?bmsLocationId=127863&year={%Y}
```

23
doc/ics/osnabrueck_de.md Normal file
View File

@@ -0,0 +1,23 @@
# Stadt Osnabrück
Stadt Osnabrück is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://nachhaltig.osnabrueck.de/de/abfall/muellabfuhr/muellabfuhr-digital/online-abfuhrkalender/> and select your location.
- Right-click on `Termine importieren` and copy link address.
- Replace the `url` in the example configuration with this link.
## Examples
### Alte Landebahn 17
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
regex: OSB (.*)
url: https://geo.osnabrueck.de/osb-service/abfuhrkalender/?bezirk=2
```

View File

@@ -0,0 +1,23 @@
# Stadtreinigung Leipzig
Stadtreinigung Leipzig is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://stadtreinigung-leipzig.de/> and select your location.
- Click on `Abonnieren` to get a webcal link.
- Replace the `url` in the example configuration with this link.
## Examples
### Sandgrubenweg 27
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
regex: (.*), .*
url: https://stadtreinigung-leipzig.de/wir-kommen-zu-ihnen/abfallkalender/ical.ics?position_nos=38296&name=Sandgrubenweg
```

View File

@@ -0,0 +1,9 @@
title: Entsorgungsgesellschaft Görlitz-Löbau-Zittau
url: https://www.abfall-eglz.de
howto: |
- Goto <https://www.abfall-eglz.de/abfallkalender.html> and select your municipality.
- Right-click on `Entsorgungstermine als iCalendar herunterladen` and copy link address.
- Replace the `url` in the example configuration with this link.
test_cases:
Oppach:
url: "https://www.abfall-eglz.de/abfallkalender.html?ort=Oppach&ortsteil=Ort+Oppach&strasse=&ics=1"

View File

@@ -5,6 +5,9 @@ howto: |
- Scroll down to `JAHRESKALENDER FÜR IHR OUTLOOK, ETC.`
- Set `Wann möchten Sie erinnert werden?` to `Am Abfuhrtag`.
- Click on `> Kalender (ICS) importieren` to get a webcal link.
- Copy this link into the configuration (see example).
- Replace the `url` in the example configuration with this link.
test_cases:
Basberg: { url: "webcal://abfallkalender.art-trier.de/ics-feed/54578_basberg_1-1800.ics" }
Basberg:
url: "webcal://abfallkalender.art-trier.de/ics-feed/54578_basberg_1-1800.ics"
split_at: " & "
regex: "A.R.T. Abfuhrtermin: (.*)"

View File

@@ -0,0 +1,9 @@
title: AVL - Abfallverwertungsgesellschaft des Landkreises Ludwigsburg mbH
url: https://www.avl-ludwigsburg.de/
howto: |
- Goto <https://www.avl-ludwigsburg.de/> and select your location.
- Click on `URL ANZEIGEN` to get a webcal link.
- Replace the `url` in the example configuration with this link.
test_cases:
Sandgrubenweg 27:
url: "https://kundenportal.avl-lb.de/WasteManagementLudwigsburg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=941092001&AboID=76574&Fra=BT;RT;PT;LT;GT"

View File

@@ -0,0 +1,9 @@
title: Awista Starnberg
url: https://www.awista-starnberg.de/
howto: |
- Goto <https://www.awista-starnberg.de/abfallwirtschaftskalender/> and select your municipality.
- Click on `URL in die Zwischenablage kopieren`.
- Replace the `url` in the example configuration with this link.
test_cases:
Berg, Ahornweg 1:
url: "https://xmlcall.awista-starnberg.de/WasteManagementStarnberg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=162188001&AboID=104609&Fra=P;R;B;S;G"

View File

@@ -0,0 +1,10 @@
title: Landratsamt Bodenseekreis
url: https://www.bodenseekreis.de/
howto: |
- Goto <https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/> and select your municipality.
- Click on `iCal-Kalender` and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
test_cases:
Hagnau:
url: "https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/export/2023/hagnau/1,4,2,5,16,7,9,8,10,6/ics/"

View File

@@ -0,0 +1,13 @@
title: Stadt Detmold
url: https://www.detmold.de/
howto: |
- Goto <https://abfuhrkalender.detmold.de/> and select your location.
- Click on `Weitere Information`.
- Click on `Download ics-Datei (iCal).
- Right-click on `Download` link and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
test_cases:
Beateweg:
url: "https://abfuhrkalender.detmold.de/icsmaker.php?strid=146&year={%Y}"
regex: "Müllabfuhr: (.*)"

12
doc/ics/yaml/edg_de.yaml Normal file
View File

@@ -0,0 +1,12 @@
title: EDG Entsorgung Dortmund
url: https://www.edg.de/
howto: |
- Goto <https://www.edg.de/de/entsorgungsdienstleistungen/rein-damit/info-service/ical-webcal.htm?Submit1=Kalender+abonnieren> and select your location.
- Click on `Kalender erzeugen`.
- Set `Wann möchten Sie erinnert werden?` to `Am Abfuhrtag`.
- Below `Outlook und weitere` set `Erinnerung` to `Keine Erinnerung`.
- Click on `Link kopieren` to get a webcal link.
- Replace the `url` in the example configuration with this link.
test_cases:
Baackweg 1:
url: "webcal://www.edg.de/ical/kalender.ics?Strasse=Hanfweg&Hausnummer=1&Erinnerung=-1&Abfallart=1,2,3,4"

View File

@@ -0,0 +1,10 @@
title: Entsorgungsbetrieb Märkisch-Oderland
url: https://www.entsorgungsbetrieb-mol.de/
howto: |
- Goto <https://www.entsorgungsbetrieb-mol.de/de/tourenplan-2022.html> and select your location.
- Click on `Exportieren`.
- Click on `Adresse kopieren` to copy link.
- Replace the `url` in the example configuration with this link.
test_cases:
Buckow, Hasenholz:
url: "https://mol.wastebox.gemos-management.de/Gemos/WasteBox/Frontend/TourSchedule/Raw/Name/2023/List/585587/2696,2697,2698,2699,2700,2701,2702,2703/Print/ics/Default/Abfuhrtermine.ics"

View File

@@ -0,0 +1,12 @@
title: FES Frankfurter Entsorgungs- und Service GmbH
url: https://www.fes-frankfurt.de/
howto: |
- Goto <https://www.fes-frankfurt.de/services/abfallkalender> and select your location.
- Click on `Kalender`.
- Copy link address.
- Replace the `url` in the example configuration with this link.
test_cases:
Achenbachstr. 2:
url: "https://www.fes-frankfurt.de/abfallkalender/QWNoZW5iYWNoc3RyLnwyfDYwNTk2.ics"
regex: "(.*)\\s+\\|"
split_at: " \/ "

View File

@@ -0,0 +1,10 @@
title: Stadt Koblenz
url: https://www.koblenz.de/
howto: |
- Goto <https://servicebetrieb.koblenz.de/abfallwirtschaft/entsorgungstermine-digital/>.
- Right-click on your municipality and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url by {%Y}.
test_cases:
Altstadt:
url: "https://servicebetrieb.koblenz.de/abfallwirtschaft/entsorgungstermine-digital/entsorgungstermine-2023-digital/altstadt-{%Y}.ics?cid=2ui7"

View File

@@ -0,0 +1,9 @@
title: Landkreis Stade
url: https://www.landkreis-stade.de
howto: |
- Goto <https://abfall.landkreis-stade.de/abfuhrkalender/> and select your location.
- Right-click on `Als Kalenderdatei (.ics) herunterladen` and copy link address.
- Replace the `url` in the example configuration with this link.
test_cases:
Dollern, an der Bahn 1:
url: "https://abfall.landkreis-stade.de/api_v2/collection_dates/1/ort/12/strasse/60/hausnummern/1/abfallarten/R02-R04-B02-D04-D12-P04-R14-R12-W0-R22-R24-R31/kalender.ics"

View File

@@ -0,0 +1,12 @@
title: Limburg.net
url: https://www.limburg.net
country: be
howto: |
- Goto <https://www.limburg.net/afvalkalender> and select your location.
- Click on `Download`.
- Under `Kies formaat`, select `Android/iPhone`.
- Copy the webcal link.
- Replace the `url` in the example configuration with this link.
test_cases:
Bandstraat 11, Bilzen:
url: "webcal://www.limburg.net/ics/afvalkalender/73006/10998/11/0"

View File

@@ -0,0 +1,10 @@
title: Lübeck Entsorgungsbetriebe
url: https://www.luebeck.de
howto: |
- Goto <https://insert-it.de/BMSAbfallkalenderLuebeck> and select your location.
- Right-click on `iCalendar` and copy link address.
- Replace the `url` in the example configuration with this link.
- Replace the year in the url with `{%Y}`.
test_cases:
Dampfpfeife 2:
url: "https://insert-it.de/BMSAbfallkalenderLuebeck/Main/Calender?bmsLocationId=127863&year={%Y}"

View File

@@ -0,0 +1,10 @@
title: Stadt Osnabrück
url: https://www.osnabrueck.de/
howto: |
- Goto <https://nachhaltig.osnabrueck.de/de/abfall/muellabfuhr/muellabfuhr-digital/online-abfuhrkalender/> and select your location.
- Right-click on `Termine importieren` and copy link address.
- Replace the `url` in the example configuration with this link.
test_cases:
Alte Landebahn 17:
url: "https://geo.osnabrueck.de/osb-service/abfuhrkalender/?bezirk=2"
regex: "OSB (.*)"

View File

@@ -0,0 +1,10 @@
title: Stadtreinigung Leipzig
url: https://stadtreinigung-leipzig.de/
howto: |
- Goto <https://stadtreinigung-leipzig.de/> and select your location.
- Click on `Abonnieren` to get a webcal link.
- Replace the `url` in the example configuration with this link.
test_cases:
Sandgrubenweg 27:
url: "https://stadtreinigung-leipzig.de/wir-kommen-zu-ihnen/abfallkalender/ical.ics?position_nos=38296&name=Sandgrubenweg"
regex: "(.*), .*"

View File

@@ -0,0 +1,10 @@
title: ZAH Hildesheim
url: https://www.zah-hildesheim.de/
howto: |
- Goto <https://www.zah-hildesheim.de/termine/> and select your location.
- Right-click on `Export Kalender` and copy link address.
- Replace the `url` in the example configuration with this link.
test_cases:
Elze, Ortsteil Elze, Meisenweg:
url: "https://hildesheim.abfuhrkalender.de/ICalendar/Index.aspx?year={%Y}&streetID=5065"
regex: "(.*)(?:\\s\\(verschoben\\))"

View File

@@ -0,0 +1,23 @@
# ZAH Hildesheim
ZAH Hildesheim is supported by the generic [ICS](/doc/source/ics.md) source. For all available configuration options, please refer to the source description.
## How to get the configuration arguments
- Goto <https://www.zah-hildesheim.de/termine/> and select your location.
- Right-click on `Export Kalender` and copy link address.
- Replace the `url` in the example configuration with this link.
## Examples
### Elze, Ortsteil Elze, Meisenweg
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
regex: (.*)(?:\s\(verschoben\))
url: https://hildesheim.abfuhrkalender.de/ICalendar/Index.aspx?year={%Y}&streetID=5065
```

View File

@@ -4,63 +4,19 @@ Add support for schedules from ICS / iCal files. Files can be either stored in a
This source has been successfully tested with the following service providers:
### Belgium
- [Limburg.net](https://www.limburg.net/afvalkalender) ([Example](#limburgnet))
### Germany
- [FES Frankfurt](https://www.fes-frankfurt.de/) ([Notes](#fes-frankfurt))
- [Müllabfuhr-Deutschland](https://www.muellabfuhr-deutschland.de/) ([Notes](#müllabfuhr-deutschland))
#### Baden-Württemberg
- [Abfallwirtschaftsamt Bodenseekreis](https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/) ([Notes](#abfallwirtschaftsamt-bodenseekreis))
- [Abfallwirtschaft Kreis Böblingen](https://www.lrabb.de/start/Service+_+Verwaltung/Abfuhrtermine.html)
- [Abfall Landkreis Stade](https://abfall.landkreis-stade.de/)
- [AVL Ludwigsburg](https://www.avl-ludwigsburg.de/) ([Example](#avl-ludwigsburg))
- [AWB Esslingen](https://www.awb-es.de/)
#### Bayern
- [AWM München](https://www.awm-muenchen.de) ([Notes](#awm-münchen))
- [Awista Starnberg](https://www.awista-starnberg.de/)
- [Gemeinde Zorneding](https://www.zorneding.de/Wohnen-Leben/Abfall-Energie-Wasser/M%C3%BCllkalender/index.php) ([Notes](#gemeinde-zorneding))
#### Brandenburg
- [Entsorgungsbetrieb Märkisch-Oderland](https://www.entsorgungsbetrieb-mol.de/de/tourenplaene.html) ([Example](#entsorgungsbetrieb-märkisch-oderland))
#### Hessen
- [Erlensee](https://sperrmuell.erlensee.de/?type=reminder) ([Example](#erlensee))
- [EAW Rheingau Taunus](https://www.eaw-rheingau-taunus.de/service/abfallkalender.html) ([Example](#eaw-rheingau-taunus))
#### Niedersachsen
- [Abfallkalender Zollernalbkreis](https://www.zollernalbkreis.de/landratsamt/aemter++und+organisation/Elektronischer+Abfallkalender) ([Example](#abfallkalender-zollernalbkreis))
- [Abfallkalender Osnabrück](https://nachhaltig.osnabrueck.de/de/abfall/muellabfuhr/muellabfuhr-digital/online-abfuhrkalender/) ([Example](#abfallkalender-osnabrück))
- [ZAH Zweckverband Abfallwirtschaft Hildesheim](https://www.zah-hildesheim.de/termine/#Abfuhrplan) ([Example](#abfallkalender-hildesheim))
#### Nordrhein-Westfalen
- [EDG Entsorgung Dortmund](https://www.edg.de/)
#### Rheinland-Pfalz
- [Zweckverband Abfallwirtschaft A.R.T. Trier](https://www.art-trier.de)
- Landkreis Vulkaneifel
#### Sachsen
- [ASR Chemnitz](https://www.asr-chemnitz.de/kundenportal/entsorgungskalender/)
- [Stadtreinigung Leipzig](https://www.stadtreinigung-leipzig.de/)
- [Entsorgungsgesellschaft Görlitz-Löbau-Zittau](https://www.abfall-eglz.de/abfallkalender.0.html) ([Notes](#entsorgungsgesellschaft-görlitz-löbau-zittau))
#### Schleswig Holstein
- [Lübeck Entsorgungsbetriebe](https://insert-it.de/BMSAbfallkalenderLuebeck)
#### Thüringen
- [Abfallwirtschaftsbetrieb Ilm-Kreis](https://aik.ilm-kreis.de/) ([Notes](#abfallwirtschaftsbetrieb-ilm-kreis))
@@ -74,11 +30,6 @@ This source has been successfully tested with the following service providers:
- [ReCollect.net](https://recollect.net) ([Notes](#recollect))
- [Western Disposal Residential (Colorado)](https://www.westerndisposal.com/residential/) (Unofficial, [Notes](#western-disposal-colorado))
### United Kingdom
- [South Cambridgeshire](https://www.scambs.gov.uk/recycling-and-bins/find-your-household-bin-collection-day/) ([Notes](#south-cambridgeshire))
- [London Borough of Bromley](https://recyclingservices.bromley.gov.uk/waste) (Unofficial)
***
## Configuration via configuration.yaml
@@ -230,143 +181,6 @@ waste_collection_schedule:
***
### A.R.T. Trier - Zweckverband Abfallwirtschaft
#### Landkreis Vulkaneifel
Go to the website: [art-trier.de](https://www.art-trier.de/eo/cms?_bereich=artikel&_aktion=suche_rubrik&idrubrik=1003&_sortierung=info3_asc_info4_asc&info1=54578&info2=)
select your Postal code.
Select your reminder to:
Wann möchten Sie erinnert werden? Am Abfuhrtag
Um wie viel Uhr möchten Sie erinnert werden? 06:00 Uhr
Select the Button: Kalender (ICS) Importieren.
Window opens with the .ics link like this:
webcal://abfallkalender.art-trier.de/ics-feed/"Postleitzahl"_"Ort"_"Erinnerungstag-hier_0"_"Erinnerungs_Uhrzeit-hier_0600"
webcal://abfallkalender.art-trier.de/ics-feed/54578_basberg_0-1800.ics
Remove the beginning webcal and set instead a https!
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://www.art-trier.de/ics-feed/54578_basberg_0-0600.ics
sensor:
- platform: waste_collection_schedule
name: restmuell
details_format: upcoming
count: 4
value_template: '{{value.types|join(" + ")}} in {{value.daysTo}} Tag(en)'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'A.R.T. Abfuhrtermin: Restmüll'
- platform: waste_collection_schedule
name: altpapier
details_format: upcoming
count: 4
value_template: '{{value.types|join(" + ")}} in {{value.daysTo}} Tag(en)'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'A.R.T. Abfuhrtermin: Altpapier'
- platform: waste_collection_schedule
name: gelber_sack
details_format: upcoming
count: 4
value_template: '{{value.types|join(" + ")}} in {{value.daysTo}} Tag(en)'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'A.R.T. Abfuhrtermin: Gelber Sack'
- platform: waste_collection_schedule
name: tonnenbutton
count: 4
value_template: '{{value.types|join(", ")}}|{{value.daysTo}}|{{value.date.strftime("%d.%m.%Y")}}|{{value.date.strftime("%a")}}'
```
### Landkreis Trier-Saarburg
Landkreis Trier-Saarburg has Gelber Sack and Altpapier combined, which causes the above for Landkreis Vulkaneifel to fail to parse the .ics file.
The following will parse the .ics file properly:
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://abfallkalender.art-trier.de/ics-feed/54311_trierweiler_0-0600.ics
sensor:
- platform: waste_collection_schedule
name: restmuell
details_format: upcoming
count: 4
value_template: '{{value.types|join(" + ")}} in {{value.daysTo}} Tag(en)'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'A.R.T. Abfuhrtermin: Restmüll'
- platform: waste_collection_schedule
name: altpapier
details_format: upcoming
count: 4
value_template: '{{value.types|join(" + ")}} in {{value.daysTo}} Tag(en)'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'A.R.T. Abfuhrtermin: Altpapier & Gelber Sack'
- platform: waste_collection_schedule
name: tonnenbutton
count: 4
value_template: '{{value.types|join(", ")}}|{{value.daysTo}}|{{value.date.strftime("%d.%m.%Y")}}|{{value.date.strftime("%a")}}'
```
***
### AVL Ludwigsburg
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://kundenportal.avl-lb.de/WasteManagementLudwigsburg/WasteManagementServiceServlet?ApplicationName=Calendar&SubmitAction=sync&StandortID=950230001&AboID=8188&Fra=BT;RT;PT;LT;GT"
offset: 0
```
***
### Abfallwirtschaftsamt Bodenseekreis
Go to the [service provider website](https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/) and select location and desired waste types. Afterwards an iCal calendar export is provided. Simply take this URL and replace the year with "{%Y}" and use this URL within the configuration.
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://www.bodenseekreis.de/umwelt-landnutzung/abfallentsorgung-privat/termine/abfuhrkalender/export/{%Y}/salem/salem-i/1,4,5,16,7,8,10,6/ics/
customize:
- type: Restmüll 2-wöchentlich
alias: Restmüll
icon: mdi:trash-can
- type: Bioabfall 2-wöchentlich
alias: Bioabfall
icon: mdi:flower-outline
- type: Papier 4-wöchentlich
alias: Papierabfall
icon: mdi:trash-can-outline
- type: Gelber Sack
icon: mdi:recycle
```
***
### Gemeinde Zorneding
Go to the [service provider website](https://www.zorneding.de/Wohnen-Leben/Abfall-Energie-Wasser/M%C3%BCllkalender/index.php) and select location and desired waste types. Afterwards an iCal calendar export is provided. Simply click on download and visit the Download URL afterwards. Simply take this URL and use this URL within the configuration.
@@ -433,259 +247,6 @@ sensor:
***
### Abfallkalender Zollernalbkreis
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://www.abfallkalender-zak.de",
params:
city: 2,3,4
street: 3
types[]:
- restmuell
gelbersack
papiertonne
biomuell
gruenabfall
schadstoffsammlung
altpapiersammlung
schrottsammlung
weihnachtsbaeume
elektrosammlung
go_ics: Download
year_field: year
```
***
### Abfallkalender Osnabrück
```yaml
# include in configuration.yaml
waste_collection_schedule:
sources:
- name: ics
args:
# go to https://nachhaltig.osnabrueck.de/de/abfall/muellabfuhr/muellabfuhr-digital/online-abfuhrkalender/ and search you correct destrict
url: "https://geo.osnabrueck.de/osb-service/abfuhrkalender/?bezirk=10"
offset: 0
customize:
- type: OSB Biomüll
alias: Biomüll
icon: mdi:flower-outline
- type: OSB Gelber Sack
alias: GelberSack
icon: mdi:recycle
- type: OSB Restmüll
alias: Restmüll
icon: mdi:trash-can
- type: OSB Altpapier
alias: Altpapier
icon: mdi:trash-can-outline
fetch_time: "04:23"
day_switch_time: "09:30"
# include in sensors.yaml
- 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:
- Restmüll
- 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:
- Altpapier
- 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:
- Biomüll
- platform: waste_collection_schedule
name: AbfallRestmuellnext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- Restmüll
- platform: waste_collection_schedule
name: AbfallPapierTonnenext
details_format: "upcoming"
value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
types:
- Altpapier
- 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:
- Biomüll
- platform: waste_collection_schedule
name: AbfallNaechster
details_format: "upcoming"
value_template: ' {{ value.daysTo }} '
```
***
### Abfallkalender Hildesheim
Go to the website: [ZAH Hildesheim](https://www.zah-hildesheim.de/termine/#Abfuhrplan)
Push the button "Inhalt laden" to load the content of hildesheim.abfuhrkalender.de.
Step 1: Select your town.
Step 2: Select yout district.
Step 3: Select your street.
In the next step the calendar for the current year is displayed. Right-Click on "Export Kalender" and copy the URL of the calendar. The URL should look like this
https://hildesheim.abfuhrkalender.de/ICalendar/Index.aspx?year=2023&streetID=9999
The streetID (9999 is only an example) represents your address. Replace the the Year with {%Y} and use the URL within the configuration.
```yaml
# include in configuration.yaml
waste_collection_schedule:
sources:
- name: ics
calendar_title: Abfallkalender Hildesheim
args:
url: "https://hildesheim.abfuhrkalender.de/ICalendar/Index.aspx?year={%Y}&streetID=9999"
customize:
- type: 'Abfuhr Altpapier'
alias: 'Altpapier'
icon: mdi:package-variant
- type: 'Abfuhr Altpapier (verschoben)'
alias: 'Altpapier (verschoben)'
icon: mdi:package-variant
- type: 'Abfuhr Biomüll'
alias: 'Biomüll'
icon: mdi:bio
- type: 'Abfuhr Biomüll (verschoben)'
alias: 'Biomüll (verschoben)'
icon: mdi:bio
- type: 'Abfuhr Gelbe Tonne'
alias: 'Gelbe Tonne'
icon: mdi:recycle
- type: 'Abfuhr Gelbe Tonne (verschoben)'
alias: 'Gelbe Tonne (verschoben)'
icon: mdi:recycle
- type: 'Abfuhr Restmüll (14tägige Abfuhr)'
alias: 'Restmüll 2-wöchig'
icon: mdi:trash-can-outline
- type: 'Abfuhr Restmüll (14tägige Abfuhr) (verschoben)'
alias: 'Restmüll 2-wöchig (verschoben)'
icon: mdi:trash-can-outline
- type: 'Abfuhr Restmüll (14tägige und vierwöchentliche Abfuhr'
alias: 'Restmüll 2-/4-wöchig'
icon: mdi:trash-can-outline
- type: 'Abfuhr Restmüll (14tägige und vierwöchentliche Abfuhr (verschoben)'
alias: 'Restmüll 2-/4-wöchig (verschoben)'
icon: mdi:trash-can-outline
```
```yaml
# include in sensors.yaml
- platform: waste_collection_schedule
name: Abfall_Altpapier
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'Altpapier'
- 'Altpapier (verschoben)'
- platform: waste_collection_schedule
name: Abfall_Biomuell
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'Biomüll'
- 'Biomüll (verschoben)'
- platform: waste_collection_schedule
name: Abfall_GelbeTonne
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'Gelbe Tonne'
- 'Gelbe Tonne (verschoben)'
- platform: waste_collection_schedule
name: Abfall_Restmuell_2W
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'Restmüll 2-wöchig'
- 'Restmüll 2-wöchig (verschoben)'
- platform: waste_collection_schedule
name: Abfall_Restmuell_2u4W
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
types:
- 'Restmüll 2-/4-wöchig'
- 'Restmüll 2-/4-wöchig (verschoben)'
- platform: waste_collection_schedule
name: Abfall_Benachrichtigung
details_format: upcoming
count: 4
value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen (am {{value.date.strftime("%d.%m.%Y")}}){% endif %}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
- platform: waste_collection_schedule
name: Abfall_Benachrichtigung_Typ
details_format: upcoming
count: 4
value_template: '{{value.types|join(", ")}}'
date_template: '{{value.date.strftime("%d.%m.%Y")}}'
```
***
### EAW Rheingau Taunus
1. Find your ICS link via the <eaw_rheingau-taunus.de> web page
2. Remove the cHash attribute
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://www.eaw-rheingau-taunus.de/abfallsammlung/abfuhrtermine/feed.ics?tx_vierwdeaw_garbagecalendarics%5Baction%5D=ics&tx_vierwdeaw_garbagecalendarics%5Bcontroller%5D=GarbageCalendar&tx_vierwdeaw_garbagecalendarics%5Bstreet%5D=38"
split_at: ","
```
***
### ReCollect
To get the URL, search your address in the recollect form of your home town, click "Get a calendar", then "Add to iCal". Finally, the URL under "Subscribe to calendar" is your ICS calendar link:
@@ -707,54 +268,6 @@ waste_collection_schedule:
***
### Entsorgungsgesellschaft Görlitz-Löbau-Zittau
Remove the year from the generated URL to always get the current year.
***
### Lübeck Entsorgungsbetriebe
Go to the [service provider website](https://insert-it.de/BMSAbfallkalenderLuebeck) and select location. Right click iCalendar and copy link address. Simply insert this URL and replace the current year with {%Y}.
```yaml
waste_collection_schedule:
sources:
- name: ics
calendar_title: Müllabfuhr-Lübeck
args:
url: "https://insert-it.de/BMSAbfallkalenderLuebeck/Main/Calender?bmsLocationId=XXXXX&year={%Y}"
# ^^^Paste your URL under here^^^ ^^^Replace Year with {%Y} ^^^
customize:
- type: 'Leerung: PPK'
alias: Papiermüll
- type: "Leerung: Bioabfall"
alias: Biomüll
- type: 'Leerung: Restabfall'
alias: Restmüll
sensor:
- platform: waste_collection_schedule
name: "Papiermüll"
details_format: appointment_types
types:
- Papiermüll
- platform: waste_collection_schedule
name: "Biomüll"
details_format: appointment_types
types:
- Biomüll
- platform: waste_collection_schedule
name: "Restmüll"
details_format: appointment_types
types:
- Restmüll
```
***
### Müllabfuhr-Deutschland
You need to find the direct ics export link for your region, e.g. [Weimarer Land, Bad Berka](https://portal.muellabfuhr-deutschland.de/api-portal/mandators/194/cal/location/c0edd112-7b48-4b84-b2ed-314ca741c774/pickups/ics?year=2022&fractionIds=194003&fractionIds=194001&fractionIds=194002&appointmentStart=0600&appointmentEnd=0700&reminderMinutes=20).
@@ -800,124 +313,6 @@ waste_collection_schedule:
***
### Erlensee
Just replace the street number (8 in the example below) with the number of your street. You can find the right number if you inspect the street drop-down list [here](https://sperrmuell.erlensee.de/?type=reminder).
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://sperrmuell.erlensee.de/?type=reminder"
method: POST
params:
street: 8
eventType[]:
- 27
- 23
- 19
- 20
- 21
- 24
- 22
- 25
- 26
timeframe: 23
download: ical
```
***
### Entsorgungsbetrieb Märkisch-Oderland
Go [here](https://www.entsorgungsbetrieb-mol.de/de/tourenplaene.html), enter your address and select the collection types you want to include. Then click the "Exportieren" link and copy the url. Replace the year with `{%Y}`.
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://mol.wastebox.gemos-management.de/Gemos/WasteBox/Frontend/TourSchedule/Raw/Name/{%Y}/List/123456/2664,2665,2666,2668,2669,2670,2671/Print/ics/Default/Abfuhrtermine.ics
version: 2
calendar_title: "Müllabfuhr"
customize:
- type: Hausmüllbehälter
alias: Restmüll
icon: mdi:trash-can
- type: Gelber Sack
icon: mdi:recycle-variant
- type: Papiertonne
icon: mdi:package-variant
- type: Papiercontainer
icon: mdi:package-variant
- type: Biotonne
icon: mdi:leaf
- type: Grünabfall
icon: mdi:forest
- type: Schadstoffmobil
icon: mdi:bottle-tonic-skull
- type: Weihnachtsbaum
icon: mdi:pine-tree
```
***
### Limburg.net
This tool works for all municipalities of the province of Limburg and the municipality of Diest.
Find your ICS export link via the calendar page - enter your address so that the system can look up the necessary data for your city and street to construct the URL.
Generating the URL on the site of Limburg.net is the simplest.
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://limburg.net/api-proxy/public/kalender-download/ical/72030?straatNummer=66536&huisNummer=1&toevoeging=&includeAllEventTypes=1&eventTypes[]=14&eventTypes[]=22&eventTypes[]=23&eventTypes[]=26&eventTypes[]=27&eventTypes[]=29
```
You can also compose the URL yourself. You need the following elements for this:
1. the nis-code of your municipality: query the api with the name of your municipality; example: <https://limburg.net/api-proxy/public/afval-kalender/gemeenten/search?query=Peer>
```json
[{"nisCode":"72030","naam":"Peer"}]
```
2. the number of your street: query the api with the nis-code of your municipality and the name of your street
example: <https://limburg.net/api-proxy/public/afval-kalender/gemeente/72030/straten/search?query=Zuidervest>
```json
[{"nummer":"66536","naam":"Zuidervest"}]
```
3. your housenumber
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: "https://limburg.net/api-proxy/public/kalender-download/ical/72030"
method: GET
params:
straatNummer: 66536
huisNummer: 1
includeAllEventTypes: 1
eventTypes[]:
- 14
- 22
- 23
- 26
- 27
- 29
```
***
### Western Disposal Colorado
*Unofficial calendar* maintained by burkemw3@gmail.com
@@ -949,78 +344,6 @@ waste_collection_schedule:
***
### South Cambridgeshire
To use this you need to idenfify your Unique Property Reference Number (UPRN). There are a couple of ways of doing this:
1. The easiest way to discover your UPRN is by using https://www.findmyaddress.co.uk/ and entering in your address details.
Or
2. By looking at the URLs generated by the South Cambs web site:
1. Go to [South Cambs Bin Collections](https://www.scambs.gov.uk/recycling-and-bins/find-your-household-bin-collection-day/)
2. Enter your post code, then select your address from the dropdown. The results page will show your collection schedule.
3. Your UPRN is the collection of digits at the end of the URL, for example: *scambs.gov.uk/recycling-and-bins/find-your-household-bin-collection-day/#id=`10008079869`*
4. The iCal collection schedule can then be obtained using: *refusecalendarapi.azurewebsites.net/calendar/ical/`10008079869`*
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://refusecalendarapi.azurewebsites.net/calendar/ical/10008079869
version: 2
sensor:
- platform: waste_collection_schedule
source_index: 0
name: SouthCambsBins # Change this to whatever you want the UI to display
details_format: appointment_types
date_template: '{{value.date.strftime("%A %d %B %Y")}}' # date format becomes 'Tuesday 1 April 2022'
```
***
### London Borough of Bromley
The Bromley council has a simple way to generate an iCal. All you need is the URL
- Go to [Bromley Bin Collection](https://recyclingservices.bromley.gov.uk/waste)
- Enter your post code, then select your address from the dropdown. The results page will show your collection schedule.
- Your unique code can be found in the URL, eg: *recyclingservices.bromley.gov.uk/waste/`6261994`*
- You can either use the following link and replace your ID, or copy the link address on the "Add to you calendar" link: <https://recyclingservices.bromley.gov.uk/waste/6261994/calendar.ics>
Note:
- This has been designed to break each bin collection into different sensors.
- This was created at a property that has a garden waste subscription. You may need to amit that from the code
- This display number of days until collection. Replace `value_template` with `date_template: '{{value.date.strftime("%A %d %B %Y")}}'` to display date of collection
```yaml
#Waste Collection - London Borough of Bromley
waste_collection_schedule:
sources:
- name: ics
customize:
- type: Food Waste collection
alias: Food Waste
- type: Garden Waste collection
alias: Garden Waste
- type: Mixed Recycling (Cans, Plastics & Glass) collection
alias: Mixed Recycling
- type: Non-Recyclable Refuse collection
alias: General Waste
- type: Paper & Cardboard collection
alias: Cardboard
args:
url: YOUR_URL
version: 2
```
***
### Regular Expression
```yaml
@@ -1036,23 +359,9 @@ Removes the needless prefix "Abfuhr: " from the waste collection type.
***
### FES Frankfurt
```yaml
waste_collection_schedule:
sources:
- name: ics
args:
url: https://www.fes-frankfurt.de/abfallkalender/<your-id>.ics
split_at: " \/ "
regex: "(.*)\\s+\\|"
```
***
### Abfallwirtschaftsbetrieb Ilm-Kreis
Go to the [service provider website](https://aik.ilm-kreis.de/Abfuhrtermine/) and select location and street. Selection of desired waste types is optional. Afterwards an iCal calendar export is provided. Download it and find the download URL. Some parameters of the URL can be ommited. (e.g. `kat`, `ArtID`, `alarm`)
Go to the [service provider website](https://aik.ilm-kreis.de/Abfuhrtermine/) and select location and street. Selection of desired waste types is optional. Afterwards an iCal calendar export is provided. Download it and find the download URL. Some parameters of the URL can be ommitted. (e.g. `kat`, `ArtID`, `alarm`)
Important: The base url of the provider's website `https://aik.ilm-kreis.de` needs to be set as a [custom header](#custom-headers) `referer`. Otherwise you'll get an HTTP 403 error.

View File

@@ -1,4 +1,4 @@
# Abfallwirtschaft Zollernalbkreis
# Gemeinde Lindau
Support for schedules provided by [https://www.lindau.ch/abfalldaten](https://www.lindau.ch/abfalldaten).

File diff suppressed because one or more lines are too long

View File

@@ -125,10 +125,6 @@ def browse_ics_yaml(sources):
yaml_dir = doc_dir / "ics" / "yaml"
md_dir = doc_dir / "ics"
files = filter(
lambda x: x != "__init__",
map(lambda x: x.stem, yaml_dir.glob("*.yaml")),
)
files = yaml_dir.glob("*.yaml")
for f in files:
with open(f) as stream: