Merge pull request #479 from mampfes/staging

Staging
This commit is contained in:
Steffen Zimmermann
2022-12-17 14:40:47 +01:00
committed by GitHub
4 changed files with 131 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View 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.

View File

@@ -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