mirror of
https://github.com/sascha-hemi/hacs_waste_collection_schedule.git
synced 2026-03-21 03:04:09 +01:00
@@ -131,6 +131,7 @@ Currently the following service providers are supported:
|
||||
- [Südbrandenburgischer Abfallzweckverband](./doc/source/sbazv_de.md)
|
||||
- [Umweltbetrieb Stadt Bielefeld](./doc/source/bielefeld_de.md)
|
||||
- [WAS Wolfsburg](./doc/source/was_wolfsburg_de.md)
|
||||
- [Wermelskirchen](./doc/source/wermelskirchen_de.md)
|
||||
|
||||
### Lithuania
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
from waste_collection_schedule import Collection # type: ignore[attr-defined]
|
||||
from waste_collection_schedule.service.ICS import ICS
|
||||
|
||||
TITLE = "Abfallkalender Wermelskirchen"
|
||||
DESCRIPTION = "Source for Abfallabholung Wermelskirchen, Germany"
|
||||
URL = "https://www.wermelskirchen.de/rathaus/buergerservice/formulare-a-z/abfallkalender-online/"
|
||||
|
||||
TEST_CASES = {
|
||||
"Rathaus": {"street": "Telegrafenstraße", "house_number": "29"},
|
||||
"Krankenhaus": {"street": "Königstraße", "house_number": "100"},
|
||||
"Mehrzweckhalle": {"street": "An der Mehrzweckhalle", "house_number": "1"},
|
||||
}
|
||||
|
||||
INFOS = {
|
||||
"Restabfall 2-woechentlich": {
|
||||
"icon": "mdi:trash-can",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/1/b/csm_Restmuell_6b2b32c774.png",
|
||||
},
|
||||
"Restabfall 4-woechentlich": {
|
||||
"icon": "mdi:trash-can",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/1/b/csm_Restmuell_6b2b32c774.png",
|
||||
},
|
||||
"Restabfall 6-woechentlich": {
|
||||
"icon": "mdi:trash-can",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/1/b/csm_Restmuell_6b2b32c774.png",
|
||||
},
|
||||
"Gelber Sack": {
|
||||
"icon": "mdi:recycle-variant",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/f/4/csm_GelbeTonne_24ffc276b2.png",
|
||||
},
|
||||
"Papier": {
|
||||
"icon": "mdi:package-variant",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/2/3/csm_Papiertonne_919ed3b5da.png",
|
||||
},
|
||||
"Biotonne": {
|
||||
"icon": "mdi:leaf",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/6/f/csm_Biotonne_wk_ae1b0e61aa.png",
|
||||
},
|
||||
"Schadstoffsammlung": {
|
||||
"icon": "mdi:bottle-tonic-skull",
|
||||
"image": "https://abfallkalender.citkomm.de/fileadmin/_processed_/4/2/csm_sondermuell_62f5701a7b.png",
|
||||
},
|
||||
"Weihnachtsbaum": {"icon": "mdi:pine-tree", "image": ""},
|
||||
}
|
||||
|
||||
|
||||
class Source:
|
||||
def __init__(self, street, house_number):
|
||||
self._street = street
|
||||
self._house_number = str(house_number)
|
||||
self._ics = ICS()
|
||||
|
||||
def fetch(self):
|
||||
# the url contains the current year, but this doesn't really seems to matter at least for the ical, since the result is always the same
|
||||
# still replace it for compatibility sake
|
||||
now = datetime.now()
|
||||
url = f"https://abfallkalender.citkomm.de/wermelskirchen/abfallkalender-{str(now.year)}/ics/FrontendIcs.html"
|
||||
params = {
|
||||
"tx_citkoabfall_abfallkalender[strasse]": self._street,
|
||||
"tx_citkoabfall_abfallkalender[hausnummer]": self._house_number,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][0]": 86,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][1]": 85,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][2]": 84,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][3]": 82,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][4]": 81,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][5]": 80,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][6]": 79,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][7]": 76,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][8]": 75,
|
||||
"tx_citkoabfall_abfallkalender[abfallarten][9]": 74,
|
||||
}
|
||||
r = requests.get(url, params=params)
|
||||
r.raise_for_status()
|
||||
|
||||
r.encoding = "utf-8"
|
||||
dates = self._ics.convert(r.text)
|
||||
|
||||
entries = []
|
||||
for d in dates:
|
||||
info = INFOS.get(d[1], {"icon": "mdi:trash-can", "image": ""})
|
||||
entries.append(
|
||||
Collection(d[0], d[1], picture=info["image"], icon=info["icon"])
|
||||
)
|
||||
return entries
|
||||
42
doc/source/wermelskirchen_de.md
Normal file
42
doc/source/wermelskirchen_de.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Wermelskirchen Abfallkalender
|
||||
|
||||
Support for schedules provided by [Abfallkalender Wermelskirchen](https://www.wermelskirchen.de/rathaus/buergerservice/formulare-a-z/abfallkalender-online/) located in NRW, Germany.
|
||||
|
||||
## Limitations
|
||||
|
||||
The used api (ics) only provides future waste collection dates.
|
||||
|
||||
## Configuration via configuration.yaml
|
||||
|
||||
```yaml
|
||||
waste_collection_schedule:
|
||||
sources:
|
||||
- name: wermelskirchen_de
|
||||
args:
|
||||
street: Telegrafenstraße
|
||||
house_number: "10"
|
||||
customize:
|
||||
- type: Restabfall 2-woechentlich
|
||||
alias: Restabfall
|
||||
show: false
|
||||
- type: Restabfall 4-woechentlich
|
||||
alias: Restabfall
|
||||
show: true
|
||||
- type: Restabfall 6-woechentlich
|
||||
alias: Restabfall
|
||||
show: false
|
||||
```
|
||||
|
||||
### Configuration Variables
|
||||
|
||||
**street**<br>
|
||||
*(string) (required)*
|
||||
|
||||
**house_number**<br>
|
||||
*(string) (required)*
|
||||
|
||||
## How to get the source arguments
|
||||
|
||||
Set your street and your house number. Should they not work, check on [Abfallkalender Wermelskirchen](https://www.wermelskirchen.de/rathaus/buergerservice/formulare-a-z/abfallkalender-online/) and use the closest entries.
|
||||
|
||||
Depending on your booked schedule for "Restabfall"/"Restmüll" you should set `show` in one of the types to true and the others to false.
|
||||
1
info.md
1
info.md
@@ -116,6 +116,7 @@ Currently the following service providers are supported:
|
||||
- [Südbrandenburgischer Abfallzweckverband](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/sbazv_de.md)
|
||||
- [Umweltbetrieb Stadt Bielefeld](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/bielefeld_de.md)
|
||||
- [WAS Wolfsburg](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/was_wolfsburg_de.md)
|
||||
- [Wermelskirchen](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/doc/source/wermelskirchen_de.md)
|
||||
|
||||
### Lithuania
|
||||
|
||||
|
||||
Reference in New Issue
Block a user