Proyek ini bertujuan untuk menyediakan cara yang rapi dan standar dalam menyediakan data pengumpulan sampah dalam format JSON dari dewan Inggris yang tidak memiliki API untuk melakukannya.
Mengapa melakukan ini? Anda mungkin ingin menggunakan ini dalam Otomatisasi Rumah - misalnya Anda memiliki bilah LED yang menyala pada hari pengumpulan sampah sesuai warna sampah yang ingin Anda keluarkan, maka repo ini menyediakan data untuk itu.
HARAP hormati kebijakan infrastruktur / penggunaan dewan dan hanya kumpulkan data untuk penggunaan pribadi Anda pada frekuensi yang sesuai dengan jadwal pengumpulan Anda.
Sebagian besar skrip menggunakan Beautiful Soup 4 untuk mengikis data, meskipun skrip lain menggunakan pendekatan berbeda, seperti meniru perilaku browser web, atau membaca data dari file CSV.
️ Harap periksa apakah permintaan untuk dewan Anda belum dibuat. Anda dapat melakukannya dengan mencari di halaman Masalah.
Jika masalah sudah ada, silakan beri komentar pada masalah tersebut untuk menyatakan minat Anda. Harap jangan membuka terbitan baru, karena akan ditutup sebagai duplikat.
Jika permasalahan belum ada, silakan isi formulir Permintaan Dewan yang baru, sertakan informasi sebanyak mungkin, termasuk:
Perlu diketahui bahwa proyek ini dijalankan oleh kontributor sukarelawan dan penyelesaiannya bergantung pada banyak faktor - meskipun ada permintaan, kami tidak dapat menjamin apakah/kapan dewan Anda akan ditambahkan.
Integrasi ini dapat diinstal langsung melalui HACS. Untuk menginstal:
Download
HACS
> Integrations
> ⋮
> Custom repositories
.https://github.com/robbrad/UKBinCollectionData
di bidang Repository
.Integration
sebagai kategori lalu klik ADD
.+ Add Integration
lalu cari dan pilih UK Bin Collection Data
lalu klik Download
.Settings
> Devices & Services
klik + Add Integration
, lalu cari UK Bin Collection Data
.configuration.yaml
).custom_components
di sana, Anda harus membuatnya.custom_components/uk_bin_collection
ke dalam folder custom_components
yang Anda temukan/buat pada langkah sebelumnya.Settings
> Devices & Services
klik + Add Integration
, lalu cari UK Bin Collection Data
.Kami menyadari sulit untuk menetapkan warna dari teks dewan untuk Jenis Bin dan untuk menjaga agar integrasi tetap umum, kami tidak menangkap warna dari dewan (tidak semua dewan menyediakan ini sebagai bidang), hanya jenis bin dan tanggal pengumpulan berikutnya.
Saat Anda mengonfigurasi komponen di layar pertama, Anda dapat mengatur string JSON untuk memetakan jenis bin ke warna dan ikon
Berikut adalah contoh untuk mengatur warna dan ikon untuk jenis Empty Standard General Waste
. Tipe ini adalah tipe yang dikembalikan dari dewan untuk bin. Anda dapat melakukan ini untuk beberapa tempat sampah.
Jika Anda melewatkan ini pada pengaturan pertama, Anda dapat mengkonfigurasi ulang.
{
"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)
Perintah dasar untuk menjalankan skrip adalah:
python collect_data.py <council_name> "<collection_url>"
di mana council_name
adalah nama skrip .py dewan (tanpa .py) dan collection_url
adalah URL yang akan dikikis. Dokumentasi bantuan merujuknya masing-masing sebagai "modul" dan "URL". Skrip dewan yang didukung dapat ditemukan di folder uk_bin_collection/uk_bin_collection/councils
.
Beberapa skrip memerlukan parameter tambahan, misalnya, ketika UPRN tidak diteruskan dalam URL, atau ketika skrip tidak menggores halaman web. Misalnya, skrip Dewan Kota Leeds memerlukan dua parameter tambahan - kode pos dan nomor rumah. Ini dilakukan seperti ini:
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"
atau --postcode "postcode"
. Kode pos harus selalu menyertakan spasi di tengah dan diapit dengan tanda kutip ganda (karena cara penanganan argumen baris perintah).-n number
atau --number number
.-u uprn
atau --uprn uprn
.Untuk memeriksa parameter yang diperlukan untuk skrip dewan Anda, silakan periksa wiki proyek untuk informasi lebih lanjut.
Beberapa skrip bergantung pada paket eksternal agar dapat berfungsi. Daftar skrip yang diperlukan untuk pengembangan dan eksekusi dapat ditemukan di PROJECT_TOML proyek. Penginstalan dapat dilakukan melalui poetry install
dari dalam root repo.
Beberapa dewan menggunakan UPRN (Nomor Referensi Properti Unik) untuk mengidentifikasi properti Anda. Anda dapat menemukan milik Anda di sini atau di sini.
Beberapa dewan membutuhkan Selenium untuk menjalankan tugas atas nama Home Assistant. Cara termudah untuk melakukannya adalah menjalankan Selenium seperti dalam container Docker. Bagaimanapun Anda melakukan ini, server Home Assistant harus dapat menjangkau server Selenium
Unduh Docker Desktop untuk Windows:
Jalankan Docker Desktop:
Instal Docker:
Buka terminal dan jalankan perintah berikut:
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
Mulai Docker:
Jalankan perintah berikut untuk memulai Docker:
sudo systemctl start docker
Aktifkan Docker untuk memulai saat boot:
pesta
Salin kode
sudo systemctl enable docker
Unduh Docker Desktop untuk Mac:
Jalankan Docker Desktop:
Buka terminal atau prompt perintah:
Tarik gambar Selenium Standalone Chrome:
docker pull selenium/standalone-chrome
Jalankan wadah Selenium Standalone Chrome:
docker run -d -p 4444:4444 --name selenium-chrome selenium/standalone-chrome
http://localhost:4444
Temukan proyek UKBinCollectionData
:
Berikan URL Server Selenium:
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
URL Server Selenium:
http://localhost:4444/wd/hub
Kami telah membuat API untuk ini yang terletak di bawah uk_bin_collection_api_server
docker build -t ukbc_api_server .
docker run -p 8080:8080 ukbc_api_server
Setelah kontainer Docker berjalan, Anda dapat mengakses titik akhir API:
API Base URL: http://localhost:8080/api
Swagger UI: http://localhost:8080/api/ui/
Dokumentasi API dapat diakses melalui Swagger UI. Gunakan UI Swagger untuk menjelajahi titik akhir yang tersedia, menguji berbagai permintaan, dan memahami fungsi API.
GET /bin_collection/{council}
Deskripsi: Mengambil informasi tentang pengumpulan bin untuk dewan yang ditentukan.
Parameter:
council (required): Name of the council.
Other optional parameters: [Specify optional parameters if any]
Contoh Permintaan:
curl -X GET " http://localhost:8080/api/bin_collection/{council} " -H " accept: application/json "
Ini termasuk Selenium standalone-chrome untuk dewan berbasis Selenium
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
Silakan posting di thread HomeAssistant atau ajukan masalah baru (bukan permintaan dewan).
Kontribusi selalu diterima! Lihat CONTRIBUTING.md
untuk memulai. Harap patuhi kode etik proyek.
councilclasstemplate.py
).