Add CMCityMedia

This commit is contained in:
Julian Haag
2023-02-09 14:50:34 +01:00
parent 8c0260535a
commit 091312a369
6 changed files with 564 additions and 1 deletions

View File

@@ -127,17 +127,30 @@ Waste collection schedules in the following formats and countries are supported.
- [Bremener Stadreinigung](/doc/source/c_trace_de.md) / die-bremer-stadtreinigung.de
- [Bürgerportal](/doc/source/buergerportal_de.md) / c-trace.de
- [C-Trace](/doc/source/c_trace_de.md) / c-trace.de
- [CM City Media - Müllkalender](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Dillingen Saar](/doc/source/dillingen_saar_de.md) / dillingen-saar.de
- [Dinslaken](/doc/source/abfallnavi_de.md) / dinslaken.de
- [EGN Abfallkalender](/doc/source/egn_abfallkalender_de.md) / egn-abfallkalender.de
- [EGW Westmünsterland](/doc/source/abfallnavi_de.md) / egw.de
- [Entsorgungsbetriebe Essen](/doc/source/abfall_io.md) / ebe-essen.de
- [Gemeinde Aschheim](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Blankenheim](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Bühlerzell](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Deggenhausertal](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Kalletal](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Kappelrodeck](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Kressbronn am Bodensee](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Lindlar](/doc/source/abfallnavi_de.md) / lindlar.de
- [Gemeinde Mittelbiberach](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Oberstadion](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Roetgen](/doc/source/abfallnavi_de.md) / roetgen.de
- [Gemeinde Schutterwald](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Senden (Westfalen)](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Gemeinde Unterhaching](/doc/source/awido_de.md) / unterhaching.de
- [Göttinger Entsorgungsbetriebe](/doc/source/abfall_io.md) / geb-goettingen.de
- [Gütersloh](/doc/source/abfallnavi_de.md) / guetersloh.de
- [Halver](/doc/source/abfallnavi_de.md) / halver.de
- [Hohenlohekreis](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Jumomind](/doc/source/jumomind_de.md) / jumomind.de
- [KAEV Niederlausitz](/doc/source/kaev_niederlausitz.md) / kaev.de
- [Kreis Coesfeld](/doc/source/abfallnavi_de.md) / wbc-coesfeld.de
@@ -166,6 +179,7 @@ Waste collection schedules in the following formats and countries are supported.
- [Landkreis Rotenburg (Wümme)](/doc/source/abfall_io.md) / lk-awr.de
- [Landkreis Schweinfurt](/doc/source/awido_de.md) / landkreis-schweinfurt.de
- [Landkreis Schwäbisch Hall](/doc/source/lrasha_de.md) / lrasha.de
- [Landkreis Schwäbisch Hall](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Landkreis Sigmaringen](/doc/source/abfall_io.md) / landkreis-sigmaringen.de
- [Landkreis Südliche Weinstraße](/doc/source/awido_de.md) / suedliche-weinstrasse.de
- [Landkreis Tirschenreuth](/doc/source/awido_de.md) / kreis-tir.de
@@ -190,9 +204,14 @@ Waste collection schedules in the following formats and countries are supported.
- [Stadt Aachen](/doc/source/abfallnavi_de.md) / aachen.de
- [Stadt Cottbus](/doc/source/abfallnavi_de.md) / cottbus.de
- [Stadt Dorsten](/doc/source/abfallnavi_de.md) / ebd-dorsten.de
- [Stadt Ehingen](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Stadt Emden](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Stadt Emmendingen](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [Stadt Kaufbeuren](/doc/source/awido_de.md) / kaufbeuren.de
- [Stadt Kraichtal](/doc/source/cmcitymedia_de.md) / sslslim.cmcitymedia.de/v1
- [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) / sslslim.cmcitymedia.de/v1
- [Stadt Norderstedt](/doc/source/abfallnavi_de.md) / betriebsamt-norderstedt.de
- [Stadt Regensburg](/doc/source/awido_de.md) / regensburg.de
- [Stadt Solingen](/doc/source/abfallnavi_de.md) / solingen.de

View File

@@ -0,0 +1,259 @@
#!/usr/bin/env python3
SERVICE_MAP = [
{ # Blankenheim, 53945
"hpid": 415,
"realm": 41500,
"name": "Blankenheim App - Müllkalender",
"region": "Gemeinde Blankenheim",
"icons": {
"158": "mdi:package-variant", # Altpapier
"154": "mdi:leaf", # Biomüll
"159": "mdi:tree", # Grüngut
"157": "mdi:recycle", # Leichtverpackungen
"155": "mdi:trash-can", # Restmüll
"160": "mdi:truck-flatbed", # Sondermüll
"161": "mdi:truck-flatbed", # Sondermüll Rewe-Parkplatz
},
},
{
"hpid": 95,
"realm": 9501,
"name": "www.lrasha.de - Müllkalender",
"region": "Landkreis Schwäbisch Hall",
"icons": {
"16": "mdi:trash-can", # Bio- und Restmüllabfuhr (60 l/120 l/240 l/1,1 m³)
"12": "mdi:recycle", # Gelbe Säcke
"14": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 1,
"realm": 100,
"name": "www.buehlerzell.de - Müllkalender",
"region": "Gemeinde Bühlerzell",
"icons": {
"44": "mdi:trash-can", # Bio- und Restmüllabfuhr (60 l/120 l/240 l/1,1 m³)
"42": "mdi:recycle", # Gelbe Säcke
"43": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 107,
"realm": 10701,
"name": "www.kressbronn.de - Müllkalender",
"region": "Gemeinde Kressbronn am Bodensee",
"icons": {
"47": "mdi:trash-can", # Bio- und Restmüllabfuhr
"46": "mdi:recycle", # Gelbe Säcke
"48": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 168,
"realm": 16801,
"name": "www.hohenlohekreis.de - Müllkalender",
"region": "Hohenlohekreis",
"icons": {
"31": "mdi:leaf", # Bioenergietonne
"36": "mdi:pine-tree", # Christbaumsammlung
"30": "mdi:trash-can", # Restmülltonne
"33": "mdi:recycle", # Wertstofftonne Altpapier
"32": "mdi:package-variant", # Wertstofftonne Verpackung
},
},
{
"hpid": 225,
"realm": 22500,
"name": "Deggenhausertal App - Müllkalender",
"region": "Gemeinde Deggenhausertal",
"icons": {
"141": "mdi:nail", # Altmetallsammlung Vereine
"138": "mdi:leaf", # Bioabfall 2-wöchentlich
"139": "mdi:pine-tree", # Christbaumsammlung
"143": "mdi:tree", # Gartenabfall
"142": "mdi:recycle", # Gelber Sack
"146": "mdi:package-variant", # Papier 4-wöchentlich
"145": "mdi:package-variant", # Papiercontainer 2-wöchentlich nur nach Anmeldung
"140": "mdi:package-variant", # Papiersammlung Vereine
"144": "mdi:biohazard", # Problemstoffsammlung
"136": "mdi:trash-can", # Restmüll 2-wöchentlich
"137": "mdi:trash-can", # Restmüll 4-wöchentlich
},
},
{
"hpid": 233,
"realm": 23301,
"name": "kraichtal.de - Müllkalender 1",
"region": "Stadt Kraichtal",
"icons": {
"19": "mdi:package-variant", # Altpapier
"21": "mdi:trash-can", # Reststoff
"25": "mdi:biohazard", # Schadstoff
"18": "mdi:recycle", # Wertstoff
},
},
{
"hpid": 248,
"realm": 24800,
"name": "www.kappelrodeck.de - Müllkalender",
"region": "Gemeinde Kappelrodeck",
"icons": {
"75": "mdi:trash-can", # Bio- und Restmüllabfuhr (60 l/120 l/240 l/1,1 m³)
"73": "mdi:recycle", # Gelbe Säcke
"74": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 331,
"realm": 33100,
"name": "www.schutterwald.de - Müllkalender",
"region": "Gemeinde Schutterwald",
"icons": {
"67": "mdi:trash-can", # Bio- und Restmüllabfuhr (60 l/120 l/240 l/1,1 m³)
"65": "mdi:recycle", # Gelbe Säcke
"66": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 374,
"realm": 37401,
"name": "www.aschheim.de - Müllkalender",
"region": "Gemeinde Aschheim",
"icons": {
"38": "mdi:leaf", # Biomüll
"147": "mdi:vacuum", # Biotonnenreinigung
"37": "mdi:recycle", # Gelber Sack
"41": "mdi:biohazard", # Giftmobil
"45": "mdi:tree", # Häckselaktion
"61": "mdi:package-variant", # Papier Aschheim
"165": "mdi:package-variant", # Papier Dornach
"39": "mdi:trash-can", # Restmüll Nord
"40": "mdi:trash-can", # Restmüll Süd
"68": "mdi:plus", # Sonderleerung
},
},
{
"hpid": 390,
"realm": 39000,
"name": "Mittelbiberach App - Müllkalender",
"region": "Gemeinde Mittelbiberach",
"icons": {
"149": "mdi:trash-can", # Bio- und Restmüllabfuhr
"148": "mdi:recycle", # Gelbe Säcke
"150": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 391,
"realm": 39100,
"name": "www.ehingen.de - Müllkalender",
"region": "Stadt Ehingen",
"icons": {
"116": "mdi:leaf", # Biotonne
"121": "mdi:package-variant", # Blaue Tonne
"117": "mdi:pine-tree", # Christbaum
"122": "mdi:tree", # Gartenabraum
"118": "mdi:recycle", # Gelber Sack
"123": "mdi:trash-can", # Hausmüll
"119": "mdi:package-variant", # Vereinssammlung Papier
"120": "mdi:package-variant", # Vereinssammlung Papier und Kartonagen
},
},
{
"hpid": 420,
"realm": 42000,
"name": "Senden (Westfalen) App - Müllkalender",
"region": "Gemeinde Senden (Westfalen)",
"icons": {
"97": "mdi:leaf", # Biotonne
"95": "mdi:recycle", # gelbe Tonne/säcke
"102": "mdi:tree", # Häcksler - Auf der Horst
"99": "mdi:tree", # Häcksler - Drachenwiese, Droste-zu-Senden-Str.
"100": "mdi:tree", # Häcksler - Gemeindl. Bauhof
"101": "mdi:tree", # Häcksler - Parkplatz Havixbecker Str.
"98": "mdi:tree", # Häcksler - Spielplatz Siebenstücken
"96": "mdi:package-variant", # Papiertonne
"94": "mdi:trash-can", # Restmülltonne
"103": "mdi:biohazard", # Schadstoffmobil
},
},
{
"hpid": 421,
"realm": 42100,
"name": "KEPTN App - Müllkalender",
"region": "Stadt Emden",
"icons": {
"56": "mdi:recycle", # Gelber Sack (Gelbe Tonne)
"57": "mdi:package-variant", # Papier, Pappe, Karton (Blaue Tonne)
"55": "mdi:trash-can", # Restabfall (Graue Tonne)
},
},
{
"hpid": 424,
"realm": 42400,
"name": "Emmendingen App - Müllkalender",
"region": "Stadt Emmendingen",
"icons": {
"79": "mdi:trash-can", # Bio- und Restmüllabfuhr (60 l/120 l/240 l/1,1 m³)
"77": "mdi:recycle", # Gelbe Säcke
"78": "mdi:package-variant", # Papiertonne
},
},
{
"hpid": 426,
"realm": 42600,
"name": "DORFnet - Müllkalender",
"region": "Gemeinde Kalletal",
"icons": {
"63": "mdi:package-variant", # Blaue Altpapiertonne
"124": "mdi:recycle", # Gelbe Tonne
"64": "mdi:trash-can", # Graue Restmülltonne
"69": "mdi:leaf", # Grüne Biotonne
"70": "mdi:leaf", # Saisonbiotonne
"71": "mdi:biohazard", # Schadstoffsammlung
"72": "mdi:baby", # Windelsack
},
},
{
"hpid": 441,
"realm": 44100,
"name": "Messstetten App - Müllkalender",
"region": "Stadt Messstetten",
"icons": {
"113": "mdi:package-variant", # Altpapiersammlung
"107": "mdi:package-variant", # Altpapiertonne
"106": "mdi:leaf", # Biotonne
"115": "mdi:pine-tree", # Christbaumsammlung
"108": "mdi:recycle", # Gelber Sack
"109": "mdi:tree", # Grünabfall-Abfuhr
"110": "mdi:fridge", # Kühlgeräte, Bildschirme und Fernsehgeräte
"104": "mdi:trash-can", # Restmülltonne
"105": "mdi:trash-can", # Restmülltonne 1100 l
"111": "mdi:biohazard", # Schadstoffsammlung Gewerbe in der Kreismülldeponie
"112": "mdi:biohazard", # Schadstoffsammlung im Wertstoffzentrum
"114": "mdi:nail", # Schrottsammlung
},
},
{
"hpid": 447,
"realm": 44700,
"name": "Oberstadion App - Müllkalender",
"region": "Gemeinde Oberstadion",
"icons": {
"128": "mdi:tshirt-crew", # Altkleider
"133": "mdi:nail", # Altmetall
"162": "mdi:leaf", # Bioabfalltonne
"129": "mdi:package-variant", # Blaue Tonne
"130": "mdi:pine-tree", # Christbaumabfuhr
"132": "mdi:tree", # Gartenabraum
"127": "mdi:recycle", # Gelber Sack
"126": "mdi:trash-can", # Hausmüll
"131": "mdi:tree", # Holzabfuhr
"164": "mdi:biohazard", # Problemstoffannahme im Entsorgungszentrum
"135": "mdi:biohazard", # Schadstoffmobil
"134": "mdi:trash-can-outline", # Sperrmüll
"163": "mdi:package-variant", # Straßensammlung Papier
},
},
]

View File

@@ -0,0 +1,56 @@
import datetime
import requests
import ssl
from waste_collection_schedule import Collection
from waste_collection_schedule.service.CMCityMedia import SERVICE_MAP
TITLE = "CM City Media - Müllkalender"
DESCRIPTION = "Source script for cmcitymedia.de"
URL = "https://sslslim.cmcitymedia.de/v1/"
TEST_CASES = {
"Blankenheim - Bezirk F: Lindweiler, Rohr": {"hpid": 415, "district": 1371},
"Blankenheim": {"hpid": 415, "realmid": 41500},
"Oberstadion": {"hpid": 447, "district": 1349},
}
def EXTRA_INFO():
return [{"title": s["region"], "url": URL} for s in SERVICE_MAP]
API_URL = "https://sslslim.cmcitymedia.de/v1/{}/waste/{}/dates"
DATE_FORMAT = "%Y-%m-%d"
class TLSAdapter(requests.adapters.HTTPAdapter):
def init_poolmanager(self, *args, **kwargs):
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT@SECLEVEL=1')
kwargs['ssl_context'] = ctx
return super(TLSAdapter, self).init_poolmanager(*args, **kwargs)
class Source:
def __init__(self, hpid, realmid=None, district=None):
self.hpid = hpid
self.service = next((item for item in SERVICE_MAP if item["hpid"] == self.hpid), None)
self.realmid = realmid if realmid else self.service["realm"]
self.district = district
self.session = requests.Session()
self.session.mount('https://', TLSAdapter())
def fetch(self):
entries = []
district_param = f"?district={self.district}" if self.district else ""
result = self.session.get(API_URL.format(self.hpid, self.service["realm"]) + district_param)
result.raise_for_status()
for item in result.json()["result"][1]["items"]:
entries.append(
Collection(
date=datetime.datetime.strptime(item["date"], DATE_FORMAT).date(),
t=item["name"],
icon=self.service["icons"][item["wastetype"]],
)
)
return entries

View File

@@ -0,0 +1,175 @@
import requests
import ssl
class TLSAdapter(requests.adapters.HTTPAdapter):
def init_poolmanager(self, *args, **kwargs):
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT@SECLEVEL=1')
kwargs['ssl_context'] = ctx
return super(TLSAdapter, self).init_poolmanager(*args, **kwargs)
def get_waste_types(hpid, realmid):
session = requests.session()
session.mount('https://', TLSAdapter())
r = session.get(f"https://sslslim.cmcitymedia.de/v1/{hpid}/waste/{realmid}/types")
r.raise_for_status()
r = r.json()
items = r["result"][1]["items"]
return items
def get_waste_districts(hpid, realmid):
session = requests.session()
session.mount('https://', TLSAdapter())
r = session.get(f"https://sslslim.cmcitymedia.de/v1/{hpid}/waste/{realmid}/districts")
r.raise_for_status()
r = r.json()
items = r["result"][1]["items"]
return items
def get_waste_realms(hpid):
session = requests.session()
session.mount('https://', TLSAdapter())
r = session.get(f"https://sslslim.cmcitymedia.de/v1/{hpid}/waste")
r.raise_for_status()
r = r.json()
realm = r["result"][1]["items"]
return realm
def get_all_hpid():
i_from = 0
i_to = 1000 # currently max i found is
founds = []
session = requests.session()
session.mount('https://', TLSAdapter())
for i in range(i_from, i_to):
r = session.get(f"https://sslslim.cmcitymedia.de/v1/{i}/waste")
if r.status_code == 200:
r = r.json()
items = r["result"][1]["items"]
if len(items) > 0:
print(f"Found hpid: {i} -> {items}")
founds.append((i, items))
if len(items) > 1:
print("Found more than one, aborting, look what's going on here, because this is not expected.")
break
return founds
def gen_all_icons():
founds = get_all_hpid()
text = ""
for hpid, realms in founds:
for realm in realms:
text += gen_icons(hpid, realm)
return text
def gen_icons(hpid, realm):
realmid = realm["id"]
types = get_waste_types(hpid, realmid)
text = "{ \n"
text += f'"hpid": {hpid},\n'
text += f'"realm": {realmid},\n'
text += f'"name": "{realm["name"]}",\n'
text += '"icons": {\n'
for t in types:
text += f'"{t["id"]}": "", # {t["name"]}\n'
text += '}, \n'
text += '}, \n'
return text
def main():
i = input("What do you want to do? (0: wizard, 1: get all hpid, 2: get waste types, 3: get waste districts, 4: generate icons list, 5: generate all icons lists): ")
if i == "1":
print(get_all_hpid())
elif i == "2":
hpid = input("hpid: ")
realmid = get_waste_realms(hpid)[0]["id"]
types = get_waste_types(hpid, realmid)
for t in types:
print(f"{t['id']}: {t['name']}")
elif i == "3":
hpid = input("hpid: ")
realmid = get_waste_realms(hpid)[0]["id"]
districts = get_waste_districts(hpid, realmid)
for d in districts:
print(f"{d['id']}: {d['name']}")
elif i == "4":
hpid = input("hpid: ")
realm = get_waste_realms(hpid)[0]
text = gen_icons(hpid, realm)
print("Copy this into custom_components/waste_collection_schedule/waste_collection_schedule/service/CMCityMedia.py")
print("")
print(text)
elif i == "5":
print(gen_all_icons())
elif i == "0":
print("Wizard:")
print("Did you find your hpid? (y/n) (look at custom_components/waste_collection_schedule/waste_collection_schedule/service/CMCityMedia.py)")
i = input()
if i == "y":
print("Great, input your hpid:")
else:
print("Ok, let's try to find it. This can take a while.")
get_all_hpid()
print("Did you know your hpid? (y/n)")
i = input()
if i == "n":
print("Ok, aborting. Then this script does not work for you.")
return
hpid = input("hpid: ")
realmid = get_waste_realms(hpid)[0]["id"]
districts = get_waste_districts(hpid, realmid)
print("Found districts:")
for i, district in enumerate(districts):
print(f"{i}: {district['name']}")
print("Which one do you want to use? You also can use none, if you want all districts then type n.")
i = input()
if i == "n":
print("Ok, put this in your configuration.yaml:")
print(f"""
waste_collection_schedule:
sources:
- name: cmcitymedia_de
args:
hpid: {hpid}
realmid: {realmid}
""")
else:
district = districts[int(i)]
if district is None:
print("This is not a valid district.")
return
print("Ok, put this in your configuration.yaml:")
print(f"""
waste_collection_schedule:
sources:
- name: cmcitymedia_de
args:
hpid: {hpid}
realmid: {realmid}
district: {district['id']}
""")
else:
print("Unknown command.")
main()

View File

@@ -0,0 +1,54 @@
# CM City Media - Müllkalender
Support for schedules provided by [CM City Media - Müllkalender](https://sslslim.cmcitymedia.de/v1/). The official homepage is using the URL [cmcitymedia.de](https://www.cmcitymedia.de/de/startseite) instead.
## Configuration via configuration.yaml
```yaml
waste_collection_schedule:
sources:
- name: cmcitymedia_de
args:
hpid: 1
realmid: 1
district: 1
```
### Configuration Variables
**hpid**
*(integer) (required)*
**realmid**
*(integer) (optional) (automatic grab default one)*
**district**
*(integer) (optional)*
## Example
```yaml
waste_collection_schedule:
sources:
- name: cmcitymedia_de
args:
hpid: 415
district: 1371
```
## How to get the source arguments
## Simple Variant: Use wizard script
You can find common hpid values in [https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/custom_components/waste_collection_schedule/waste_collection_schedule/service/CMCityMedia.py](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/custom_components/waste_collection_schedule/waste_collection_schedule/service/CMCityMedia.py)
There is a script with an interactive command line interface which generates the required source configuration:
[https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/citymedia_de.py](https://github.com/mampfes/hacs_waste_collection_schedule/blob/master/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/citymedia_de.py)
Run this script from a shell and answer the questions. You start the wizard with option 0.
### Hardcore Variant: Extract arguments from App
1. Decompile the App, extract the source code and search in the source code for hpid or get the hpid from somewhere else
2. Use the Wizard to get the other arguments or use something like postman to get the other arguments from the [API](https://sslslim.cmcitymedia.de/v1/)

View File

@@ -20,7 +20,7 @@ Waste collection schedules from service provider web sites are updated daily, de
| Austria | Burgenländischer Müllverband, infeo, Stadtservice Korneuburg, Umweltprofis, WSZ Moosburg |
| Belgium | Hygea, Recycle! |
| Canada | City of Toronto |
| Germany | Abfall Stuttgart, Abfall-Wirtschafts-Verband Nordschwaben, Abfall.IO / AbfallPlus, Abfallbewirtschaftung Ostalbkreis, Abfallkalender Würzburg, AbfallNavi (RegioIT.de), Abfalltermine Forchheim, Abfallwirtschaft Alb-Donau-Kreis, Abfallwirtschaft Lahn-Dill-Kreises, Abfallwirtschaft Landkreis Böblingen, Abfallwirtschaft Landkreis Freudenstadt, Abfallwirtschaft Landkreis Harburg, Abfallwirtschaft Landkreis Kitzingen, Abfallwirtschaft Landkreis Landsberg am Lech, Abfallwirtschaft Landkreis Wolfenbüttel, Abfallwirtschaft Neckar-Odenwald-Kreis, Abfallwirtschaft Nürnberger Land, Abfallwirtschaft Ortenaukreis, Abfallwirtschaft Rems-Murr, Abfallwirtschaft Rendsburg, Abfallwirtschaft Stadt Fürth, Abfallwirtschaft Stadt Nürnberg, Abfallwirtschaft Stadt Schweinfurt, Abfallwirtschaft Südholstein, Abfallwirtschaft Werra-Meißner-Kreis, Abfallwirtschaft Zollernalbkreis, Abfallwirtschafts-Zweckverband des Landkreises Hersfeld-Rotenburg, Abfallwirtschaftsbetrieb Bergisch Gladbach, Abfallwirtschaftsbetrieb Esslingen, Abfallwirtschaftsbetrieb Landkreis Ahrweiler, Abfallwirtschaftsbetrieb Landkreis Altenkirchen, ALBA Berlin, ART Trier, ASO Abfall-Service Osterholz, AWA Entsorgungs GmbH, AWB Bad Kreuznach, AWB Köln, AWB Landkreis Augsburg, AWB Landkreis Bad Dürkheim, AWB Landkreis Fürstenfeldbruck, AWB Landkreis Göppingen, AWB Oldenburg, AWB Westerwaldkreis, AWG Kreis Warendorf, AWIDO Online, Bergischer Abfallwirtschaftverbund, Berlin Recycling, Berliner Stadtreinigungsbetriebe, Bielefeld, Bogenschütz Entsorgung, Bremener Stadreinigung, Bürgerportal, C-Trace, Dillingen Saar, Dinslaken, EGN Abfallkalender, EGW Westmünsterland, Entsorgungsbetriebe Essen, Gemeinde Lindlar, Gemeinde Roetgen, Gemeinde Unterhaching, Göttinger Entsorgungsbetriebe, Gütersloh, Halver, Jumomind, KAEV Niederlausitz, Kreis Coesfeld, Kreis Heinsberg, Kreis Pinneberg, Kreiswirtschaftsbetriebe Goslar, KV Cochem-Zell, KWU Entsorgung Landkreis Oder-Spree, Landkreis Ansbach, Landkreis Bayreuth, Landkreis Berchtesgadener Land, Landkreis Calw, Landkreis Coburg, Landkreis Erding, Landkreis Erlangen-Höchstadt, Landkreis Gotha, Landkreis Günzburg, Landkreis Heilbronn, Landkreis Kelheim, Landkreis Kronach, Landkreis Limburg-Weilburg, Landkreis Nordwestmecklenburg, Landkreis Ostallgäu, Landkreis Rhön Grabfeld, Landkreis Rosenheim, Landkreis Rotenburg (Wümme), Landkreis Schweinfurt, Landkreis Schwäbisch Hall, Landkreis Sigmaringen, Landkreis Südliche Weinstraße, Landkreis Tirschenreuth, Landkreis Tübingen, Landkreis Wittmund, Landkreisbetriebe Neuburg-Schrobenhausen, Landratsamt Aichach-Friedberg, Landratsamt Dachau, Landratsamt Traunstein, Landratsamt Unterallgäu, Ludwigshafen am Rhein, MZV Biedenkopf, MüllALARM / Schönmackers, Müllmax, Neunkirchen Siegerland, Neustadt a.d. Waldnaab, Pullach im Isartal, RegioEntsorgung Städteregion Aachen, Rhein-Hunsrück Entsorgung (RHE), Rhein-Neckar-Kreis, Sector 27 - Datteln, Marl, Oer-Erkenschwick, Stadt Aachen, Stadt Cottbus, Stadt Dorsten, Stadt Kaufbeuren, Stadt Landshut, Stadt Memmingen, Stadt Norderstedt, Stadt Regensburg, Stadt Solingen, Stadt Unterschleißheim, Stadt Willich, Stadtreinigung Dresden, Stadtreinigung Hamburg, Stadtreinigung Leipzig, StadtService Brühl, STL Lüdenscheid, Städteservice Raunheim Rüsselsheim, Südbrandenburgischer Abfallzweckverband, WBO Wirtschaftsbetriebe Oberhausen, Wermelskirchen, WGV Recycling GmbH, Wolfsburger Abfallwirtschaft und Straßenreinigung, WZV Kreis Segeberg, Zweckverband Abfallwirtschaft Saale-Orla, Zweckverband München-Südost |
| Germany | Abfall Stuttgart, Abfall-Wirtschafts-Verband Nordschwaben, Abfall.IO / AbfallPlus, Abfallbewirtschaftung Ostalbkreis, Abfallkalender Würzburg, AbfallNavi (RegioIT.de), Abfalltermine Forchheim, Abfallwirtschaft Alb-Donau-Kreis, Abfallwirtschaft Lahn-Dill-Kreises, Abfallwirtschaft Landkreis Böblingen, Abfallwirtschaft Landkreis Freudenstadt, Abfallwirtschaft Landkreis Harburg, Abfallwirtschaft Landkreis Kitzingen, Abfallwirtschaft Landkreis Landsberg am Lech, Abfallwirtschaft Landkreis Wolfenbüttel, Abfallwirtschaft Neckar-Odenwald-Kreis, Abfallwirtschaft Nürnberger Land, Abfallwirtschaft Ortenaukreis, Abfallwirtschaft Rems-Murr, Abfallwirtschaft Rendsburg, Abfallwirtschaft Stadt Fürth, Abfallwirtschaft Stadt Nürnberg, Abfallwirtschaft Stadt Schweinfurt, Abfallwirtschaft Südholstein, Abfallwirtschaft Werra-Meißner-Kreis, Abfallwirtschaft Zollernalbkreis, Abfallwirtschafts-Zweckverband des Landkreises Hersfeld-Rotenburg, Abfallwirtschaftsbetrieb Bergisch Gladbach, Abfallwirtschaftsbetrieb Esslingen, Abfallwirtschaftsbetrieb Landkreis Ahrweiler, Abfallwirtschaftsbetrieb Landkreis Altenkirchen, ALBA Berlin, ART Trier, ASO Abfall-Service Osterholz, AWA Entsorgungs GmbH, AWB Bad Kreuznach, AWB Köln, AWB Landkreis Augsburg, AWB Landkreis Bad Dürkheim, AWB Landkreis Fürstenfeldbruck, AWB Landkreis Göppingen, AWB Oldenburg, AWB Westerwaldkreis, AWG Kreis Warendorf, AWIDO Online, Bergischer Abfallwirtschaftverbund, Berlin Recycling, Berliner Stadtreinigungsbetriebe, Bielefeld, Bogenschütz Entsorgung, Bremener Stadreinigung, Bürgerportal, C-Trace, CM City Media - Müllkalender, Dillingen Saar, Dinslaken, EGN Abfallkalender, EGW Westmünsterland, Entsorgungsbetriebe Essen, Gemeinde Aschheim, Gemeinde Blankenheim, Gemeinde Bühlerzell, Gemeinde Deggenhausertal, Gemeinde Kalletal, Gemeinde Kappelrodeck, Gemeinde Kressbronn am Bodensee, Gemeinde Lindlar, Gemeinde Mittelbiberach, Gemeinde Oberstadion, Gemeinde Roetgen, Gemeinde Schutterwald, Gemeinde Senden (Westfalen), Gemeinde Unterhaching, Göttinger Entsorgungsbetriebe, Gütersloh, Halver, Hohenlohekreis, Jumomind, KAEV Niederlausitz, Kreis Coesfeld, Kreis Heinsberg, Kreis Pinneberg, Kreiswirtschaftsbetriebe Goslar, KV Cochem-Zell, KWU Entsorgung Landkreis Oder-Spree, Landkreis Ansbach, Landkreis Bayreuth, Landkreis Berchtesgadener Land, Landkreis Calw, Landkreis Coburg, Landkreis Erding, Landkreis Erlangen-Höchstadt, Landkreis Gotha, Landkreis Günzburg, Landkreis Heilbronn, Landkreis Kelheim, Landkreis Kronach, Landkreis Limburg-Weilburg, Landkreis Nordwestmecklenburg, Landkreis Ostallgäu, Landkreis Rhön Grabfeld, Landkreis Rosenheim, Landkreis Rotenburg (Wümme), Landkreis Schweinfurt, Landkreis Schwäbisch Hall, Landkreis Schwäbisch Hall, Landkreis Sigmaringen, Landkreis Südliche Weinstraße, Landkreis Tirschenreuth, Landkreis Tübingen, Landkreis Wittmund, Landkreisbetriebe Neuburg-Schrobenhausen, Landratsamt Aichach-Friedberg, Landratsamt Dachau, Landratsamt Traunstein, Landratsamt Unterallgäu, Ludwigshafen am Rhein, MZV Biedenkopf, MüllALARM / Schönmackers, Müllmax, Neunkirchen Siegerland, Neustadt a.d. Waldnaab, Pullach im Isartal, RegioEntsorgung Städteregion Aachen, Rhein-Hunsrück Entsorgung (RHE), Rhein-Neckar-Kreis, Sector 27 - Datteln, Marl, Oer-Erkenschwick, Stadt Aachen, Stadt Cottbus, Stadt Dorsten, Stadt Ehingen, Stadt Emden, Stadt Emmendingen, Stadt Kaufbeuren, Stadt Kraichtal, Stadt Landshut, Stadt Memmingen, Stadt Messstetten, Stadt Norderstedt, Stadt Regensburg, Stadt Solingen, Stadt Unterschleißheim, Stadt Willich, Stadtreinigung Dresden, Stadtreinigung Hamburg, Stadtreinigung Leipzig, StadtService Brühl, STL Lüdenscheid, Städteservice Raunheim Rüsselsheim, Südbrandenburgischer Abfallzweckverband, WBO Wirtschaftsbetriebe Oberhausen, Wermelskirchen, WGV Recycling GmbH, Wolfsburger Abfallwirtschaft und Straßenreinigung, WZV Kreis Segeberg, Zweckverband Abfallwirtschaft Saale-Orla, Zweckverband München-Südost |
| Lithuania | Kauno švara |
| Netherlands | ACV Group, Alpen an den Rijn, Area Afval, Avalex, Avri, Bar Afvalbeheer, Circulus, Cyclus NV, Dar, Den Haag, GAD, Gemeente Almere, Gemeente Berkelland, Gemeente Cranendonck, Gemeente Hellendoorn, Gemeente Lingewaard, Gemeente Meppel, Gemeente Middelburg + Vlissingen, Gemeente Peel en Maas, Gemeente Schouwen-Duiveland, Gemeente Sudwest-Fryslan, Gemeente Venray, Gemeente Voorschoten, Gemeente Wallre, Gemeente Westland, HVC Groep, Meerlanden, Mijn Blink, PreZero, Purmerend, RAD BV, Reinigingsbedrijf Midden Nederland, Reinis, Spaarne Landen, Stadswerk 072, Twente Milieu, Waardlanden, Ximmio, ZRD |
| New Zealand | Auckland Council, Christchurch City Council, Gore, Invercargill & Southland, Horowhenua District Council, Waipa District Council, Wellington City Council |