Ich entwickle seit ungefähr einem Jahr mein Home Assistant-basiertes Smarthome-Setup (seit dem Verlassen von SmartThings) und nach einer anfänglichen steilen Lernkurve war ich sehr zufrieden mit dem Heimassistenten, also habe ich begonnen, daran zu arbeiten, die Dinge zu erweitern, die es tut, da ich überzeugt bin, dass es eine langfristige Basis für mein Smarthome bietet. Eine Sache, die ich hinzufügen wollte, waren Bin-Sammlungsdaten, um mich daran zu erinnern, welcher Bin wann fällig ist. Da ich in Sheffield lebe, musste ich diese Daten vom Outsourcing-Anbieter der lokalen Behörden abrufen (veolia). Die folgenden Details, wie ich das gemacht habe, Aufbauend auf der Arbeit anderer, die dies bereits für andere Regionen getan haben
I used a script which i modified from various examples on a HA support thread by RobBrad. For this script to run I needed to install the beautifulsoup module on home-assistant.
Installieren Sie das Python-Modul BeautifulSoup
- Install the Supervisor add-on ‘SSH and Web Terminal’
- Open the terminal from the main left-hand menu
- Use the command pip3 installiere beautifulsoup4
Fügen Sie ein Skript hinzu
- I use the ‘Samba Share’ supervisor addon to access my home assistant files directly from my windows PC — unless you already have a preferred access method I recommend doing the same
- navigieren zu \\ha-ip-adresse config
- create a Python-Skripte Mappe
- Create a new python script in this folder — I called mine bin_collection.py
- Insert the following script
from bs4 import BeautifulSoup import datetime from dateutil import parser import requests import json url = 'https://wasteservices.sheffield.gov.uk/property/############' page = requests.get(url) if page.status_code != 200: Ausfahrt(1) Suppe = Schöne Suppe(page.text, 'html.parser') out = {} bh3s =oup.find_all('td', class_ ="Dienstname") bpds =oup.find_all('td', class_ ="nächster Service") für ich in Reichweite(len(bpds)): bin_colour = str(bh3s[ich].Inhalt[3]).niedriger().Teilt('>')[1].Teilt('')[0] aus[bin_colour] = parser.parse(bpds[ich].Inhalt[2].lstrip().Teilt(',')[0]).strftime('% Y-% m-% d') drucken(json.dumps(aus))
- Sie müssen die ersetzen ############ with the unique number for your property which I will explain how to get in the next step
Holen Sie sich Ihre eindeutige Adresse
- Wechseln Sie zu https://wasteservices.sheffield.gov.uk/property/
- Geben Sie Ihre Postleitzahl ein und wählen Sie Ihre Adresse aus der Liste aus
- Notieren Sie sich die neue URL. Use it in the url line in the script above — the only part you will need to change is the 12 digit number at the end
Rufen Sie Ihr Skript über configuration.yaml auf
- Ein einfacher Eintrag in configuration.yaml ist alles, was zum Ausführen des Skripts erforderlich ist
- You may want to adjust the frequency of the run. Mine runs once per day.
Sensor: - Plattform: command_line name: "Bin Sammlungen" Befehl: "python3 /config/python-scripts/bin_collection.py" scan_interval: 86400 command_timeout: 60 #Wird benötigt, da die Website nur langsam reagiert und häufig eine Zeitüberschreitung aufweist, wenn die Standardeinstellung beibehalten wird
Erstellen Sie Entitäten für jeden Bin-Typ mit configuration.yaml
- Immediately under the above section (also noch unter dem sensor: Sek-tion) Fügen Sie den folgenden
- Plattform: Vorlage Sensoren: black_bin: Geräteklasse: timestamp value_template: '{{ (Zustände("sensor.bin_collections")|from_json())["schwarz"] }}' unique_id: "black_bin" brown_bin: Geräteklasse: timestamp value_template: '{{ (Zustände("sensor.bin_collections")|from_json())["braun"] }}' unique_id: "brown_bin" blue_bin: Geräteklasse: timestamp value_template: '{{ (Zustände("sensor.bin_collections")|from_json())["blau"] }}' unique_id: "blue_bin"
Zeigen Sie die Ergebnisse am Frontend an
- To show the results on the front end simply add a card with the 3 Sensoren darauf (specifically sensor.black_bin, sensor.blue_bin, und sensor.brown_bin)
- Note you may need to restart home assistant to load the new sensors you added to configuration.yaml
Dies nützlich gefunden? Bitte lassen Sie uns wissen, indem Sie einen Kommentar unten fallen. Wenn Sie bitte abonnieren möchten den Link oben rechts auf dem Menü abonnieren verwenden. Sie können auch unten unter Verwendung der sozialen Bindungen diese mit Ihren Freunden teilen. Prost.
Hinterlasse eine Antwort