Dieses Projekt zielt darauf ab, eine übersichtliche und standardisierte Möglichkeit zur Bereitstellung von Müllsammeldaten im JSON-Format von britischen Kommunen bereitzustellen, die über keine API dafür verfügen.
Warum das tun? Vielleicht möchten Sie dies in einer Hausautomation verwenden – sagen Sie zum Beispiel, Sie hätten eine LED-Leiste, die am Tag der Müllabfuhr in der Farbe des Mülleimers aufleuchtet, den Sie herausnehmen möchten, dann stellt dieses Repo die Daten dafür bereit.
BITTE respektieren Sie die Infrastruktur-/Nutzungsrichtlinien der Gemeinde und sammeln Sie Daten nur für Ihren persönlichen Gebrauch in einer Häufigkeit, die Ihrem Erhebungsplan entspricht.
Die meisten Skripte nutzen Beautiful Soup 4, um Daten zu extrahieren, obwohl andere andere Ansätze nutzen, wie etwa die Emulation des Webbrowser-Verhaltens oder das Lesen von Daten aus CSV-Dateien.
️ Bitte prüfen Sie, ob für Ihren Gemeinderat bereits eine Anfrage gestellt wurde. Sie können dies tun, indem Sie auf der Seite „Probleme“ suchen.
Wenn bereits ein Problem besteht, kommentieren Sie dieses bitte, um Ihr Interesse auszudrücken. Bitte öffnen Sie keine neue Ausgabe, da diese als Duplikat geschlossen wird.
Wenn ein Problem noch nicht besteht, füllen Sie bitte ein neues Antragsformular des Rates aus und enthalten Sie so viele Informationen wie möglich, darunter:
Bitte beachten Sie, dass dieses Projekt von ehrenamtlichen Mitwirkenden durchgeführt wird und der Abschluss von zahlreichen Faktoren abhängt – selbst bei einer Anfrage können wir nicht garantieren, ob/wann Ihr Gemeinderat aufgenommen wird.
Diese Integration kann direkt über HACS installiert werden. Zur Installation:
Download
HACS
> Integrations
> ⋮
> Custom repositories
.https://github.com/robbrad/UKBinCollectionData
in das Feld Repository
ein.Integration
als Kategorie aus und klicken Sie dann auf ADD
.+ Add Integration
, suchen Sie nach UK Bin Collection Data
, wählen Sie diese aus und klicken Sie dann auf Download
.Settings
> Devices & Services
klicken Sie auf + Add Integration
und suchen Sie nach UK Bin Collection Data
.configuration.yaml
finden).custom_components
vorhanden ist, müssen Sie ihn erstellen.custom_components/uk_bin_collection
in den Ordner custom_components
, den Sie im vorherigen Schritt gefunden/erstellt haben.Settings
> Devices & Services
klicken Sie auf + Add Integration
und suchen Sie nach UK Bin Collection Data
.Uns ist bewusst, dass es schwierig ist, eine Farbe aus dem Ratstext für den Behältertyp festzulegen, und um die Integration generisch zu halten, erfassen wir keine Farbe aus einem Rat (nicht alle Kommunen stellen dies als Feld bereit), sondern nur den Behältertyp und das nächste Abholdatum.
Wenn Sie die Komponente auf dem ersten Bildschirm konfigurieren, können Sie eine JSON-Zeichenfolge festlegen, um den Bin-Typ der Farbe und dem Symbol zuzuordnen
Hier ist ein Beispiel zum Festlegen der Farbe und des Symbols für den Typ Empty Standard General Waste
. Dieser Typ ist der Typ, der vom Rat für den Behälter zurückgegeben wurde. Sie können dies für mehrere Behälter tun.
Wenn Sie dies bei der ersten Einrichtung vermissen, können Sie es neu konfigurieren.
{
"Empty Standard General Waste":
{
"icon": "mdi:trash-can",
"color": "blue"
}
}
---
## Standalone Usage
```commandline
PS G:ProjectsPythonUKBinCollectionDatauk_bin_collectioncollect_data.py
usage: collect_data.py [-h] [-p POSTCODE] [-n NUMBER] [-u UPRN] module URL
positional arguments:
module Name of council module to use (required)
URL URL to parse (required)
options:
-h, --help show this help message (optional)
-p POSTCODE, --postcode POSTCODE Postcode to parse - should include (optional)
a space and be wrapped in double
quotes
-n NUMBER, --number NUMBER House number to parse (optional)
-u UPRN, --uprn UPRN UPRN to parse (optional)
Der grundlegende Befehl zum Ausführen eines Skripts lautet:
python collect_data.py <council_name> "<collection_url>"
Dabei ist council_name
der Name des .py-Skripts des Rates (ohne .py) und collection_url
die URL zum Scrapen. In der Hilfedokumentation werden diese als „Modul“ bzw. „URL“ bezeichnet. Unterstützte Council-Skripte finden Sie im Ordner uk_bin_collection/uk_bin_collection/councils
.
Einige Skripte erfordern zusätzliche Parameter, beispielsweise wenn ein UPRN nicht in einer URL übergeben wird oder wenn das Skript keine Webseite durchsucht. Beispielsweise benötigt das Skript des Stadtrats von Leeds zwei zusätzliche Parameter – eine Postleitzahl und eine Hausnummer. Das geht so:
python collect_data.py LeedsCityCouncil https://www.leeds.gov.uk/residents/bins-and-recycling/check-your-bin-day -p "LS1 2JG" -n 41
-p "postcode"
oder --postcode "postcode"
übergeben werden. Die Postleitzahl muss immer ein Leerzeichen in der Mitte enthalten und in doppelte Anführungszeichen gesetzt werden (aufgrund der Handhabung von Befehlszeilenargumenten).-n number
oder --number number
übergeben werden.-u uprn
oder --uprn uprn
übergeben werden.Weitere Informationen finden Sie im Projekt-Wiki, um die für das Skript Ihres Rates erforderlichen Parameter zu überprüfen.
Einige Skripte sind für ihre Funktion auf externe Pakete angewiesen. Eine Liste der erforderlichen Skripte für die Entwicklung und Ausführung finden Sie im PROJECT_TOML des Projekts. Die Installation kann per poetry install
aus dem Stammverzeichnis des Repos erfolgen.
Einige Kommunen nutzen die UPRN (Unique Property Reference Number) zur Identifizierung Ihrer Immobilie. Ihr findet Ihr hier oder hier.
Einige Kommunen benötigen Selenium, um die Arbeit im Namen von Home Assistant durchzuführen. Der einfachste Weg, dies zu tun, besteht darin, Selenium wie in einem Docker-Container auszuführen. Allerdings muss der Home Assistant-Server in der Lage sein, den Selenium-Server zu erreichen
Laden Sie Docker Desktop für Windows herunter:
Führen Sie Docker Desktop aus:
Docker installieren:
Öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:
sudo apt-get update
sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo
" deb [arch= $( dpkg --print-architecture ) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
$( lsb_release -cs ) stable " | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker starten:
Führen Sie den folgenden Befehl aus, um Docker zu starten:
sudo systemctl start docker
Aktivieren Sie Docker, um beim Booten zu starten:
bash
Code kopieren
sudo systemctl enable docker
Laden Sie Docker Desktop für Mac herunter:
Führen Sie Docker Desktop aus:
Öffnen Sie ein Terminal oder eine Eingabeaufforderung:
Rufen Sie das Selenium Standalone Chrome-Image ab:
docker pull selenium/standalone-chrome
Führen Sie den Selenium Standalone Chrome-Container aus:
docker run -d -p 4444:4444 --name selenium-chrome selenium/standalone-chrome
http://localhost:4444
Suchen Sie das UKBinCollectionData
-Projekt:
Geben Sie die Selenium-Server-URL an:
http://localhost:4444/wd/hub
Windows/Linux/Mac:
docker pull selenium/standalone-chrome docker run -d -p 4444:4444 --name selenium-chrome selenium/standalone-chrome
Selenium-Server-URL:
http://localhost:4444/wd/hub
Wir haben hierfür eine API erstellt, die sich unter uk_bin_collection_api_server befindet
docker build -t ukbc_api_server .
docker run -p 8080:8080 ukbc_api_server
Sobald der Docker-Container ausgeführt wird, können Sie auf die API-Endpunkte zugreifen:
API Base URL: http://localhost:8080/api
Swagger UI: http://localhost:8080/api/ui/
Auf die API-Dokumentation kann über die Swagger-Benutzeroberfläche zugegriffen werden. Verwenden Sie die Swagger-Benutzeroberfläche, um verfügbare Endpunkte zu erkunden, verschiedene Anforderungen zu testen und die API-Funktionen zu verstehen.
GET /bin_collection/{council}
Beschreibung: Ruft Informationen zur Behältersammlung für die angegebene Gemeinde ab.
Parameter:
council (required): Name of the council.
Other optional parameters: [Specify optional parameters if any]
Beispielanfrage:
curl -X GET " http://localhost:8080/api/bin_collection/{council} " -H " accept: application/json "
Dazu gehört das Selenium Standalone-Chrome für Selenium-basierte Räte
version: '3'
services:
ukbc_api_server:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080" # Adjust the ports as needed
depends_on:
- selenium
selenium:
image: selenium/standalone-chrome:latest
ports:
- "4444:4444"
sudo apt-get update
sudo apt-get install docker-compose
docker-compose up
Bitte posten Sie im HomeAssistant-Thread oder melden Sie ein neues Problem (ohne Ratsanfrage).
Beiträge sind jederzeit willkommen! Weitere Informationen finden Sie unter CONTRIBUTING.md
. Bitte halten Sie sich an den Verhaltenskodex des Projekts.
councilclasstemplate.py
).