mirror of
https://github.com/sascha-hemi/hacs_waste_collection_schedule.git
synced 2026-03-21 03:04:09 +01:00
Merge pull request #363 from lal12/master
Added source for wermelskirchen
This commit is contained in:
@@ -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,86 @@
|
||||
import requests
|
||||
from datetime import datetime
|
||||
import urllib.parse
|
||||
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 = (
|
||||
"https://abfallkalender.citkomm.de/wermelskirchen/abfallkalender-"+
|
||||
str(now.year)+
|
||||
"/ics/FrontendIcs.html?tx_citkoabfall_abfallkalender%5Bstrasse%5D="+
|
||||
urllib.parse.quote_plus(self._street)+
|
||||
"&tx_citkoabfall_abfallkalender%5Bhausnummer%5D="+
|
||||
urllib.parse.quote_plus(self._house_number)+
|
||||
"&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B0%5D=86&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B1%5D=85&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B2%5D=84&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B3%5D=82&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B4%5D=81&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B5%5D=80&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B6%5D=79&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B7%5D=76&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B8%5D=75&tx_citkoabfall_abfallkalender%5Babfallarten%5D%5B9%5D=74"
|
||||
)
|
||||
r = requests.get(url)
|
||||
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