Webseiten-Inhalte scrapen und in Home Assistant nutzen

Wie kann man Webseiten-Inhalte scrapen und in Home Assistant nutzen? Hier erfährst du alles dazu inklusive Beispielcodes!

Ich habe ja in einem anderen Beitrag bereits über die Möglichkeit geschrieben sich Inhalte von anderen Webseiten via Iframe in Home Assistant anzeigen lassen zu können. Ganz ehrlich finde ich diese Möglichkeit aber definitiv nicht schön und auch nur bedingt zielführend. Man kann zwar Daten einbinden und anzeigen, aber wirklich mit den Daten arbeiten und diese nutzen, kann man leider nicht.

In einem Beitrag habe ich beschrieben, wie ich bislang die DHL Packstation PIN mit PHP automatisch aus der Benachrichtigungs-E-Mail auslesen und dann in Home Assistant anzeige. Da ich nun aber gerne mit der PIN noch weiteres machen würde (zum Beispiel eine Push-Notification an mein Handy oder die PIN auf meiner Lametric anzeigen), habe ich mich ganz aktuell mit der Möglichkeit befasst Webseiten-Inhalte mit Home Assistant zu scrapen (Wikipedia: Scrapen).

Webseiten-Inhalte scrapen und in Home Assistant nutzen

Beim Scrapen durchforstet eine Anwendung beispielsweise eine bestimmte Webseiten-URL und liest die in/auf dieser Webseite enthaltenen Daten aus. Anhand von definierten Regeln kann man dann festlegen wie der Scraper mit den Daten umgehen soll. Zum Beispiel kann kann man ganz konkrete Textbausteine suchen und Text unmittelbar davor oder danach ausgeben lassen.

Theoretisch könnte man die Seite Spiegel.de täglich einmal scrapen und die Inhalte beziehungsweise Nachrichten dann auf seiner eigenen Webseite ausgeben (das ist natürlich wenig kreativ und auch nicht vernünftig, aber es beschreibt vermutlich ganz gut, was mit Scrapen möglich ist).

Wie so oft, bietet auch Home Assistant eine einfache Möglichkeit um einen Mini-Scraper aufzusetzen und Daten von einer beliebigen Webseite/URL einzulesen: Scrape Integration

Beispielhafter Code: Webseiten-Inhalte scrapen und in Home Assistant nutzen

sensor:
  - platform: scrape
    resource: https://deine.url/
    select: ".DHL-PIN"
    name: dhlpin
    authentication: basic
    username: htaccess-user
    password: htaccess-passwort
  - platform: scrape
    resource: https://deine.url/
    select: ".DHL-DATE"
    name: dhldate
    authentication: basic
    username: htaccess-user
    password: htaccess-passwort

Mein DHL Packstation Script habe ich nun entsprechend umgebaut beziehungsweise optimiert: Anstelle die aktuellste PIN über ein Iframe in meinem Lovelace-Dashboard anzuzeigen, kann ich nun den Sensor sensor.dhlpin direkt in Lovelace einbinden und spare mir den ganzen anderen „HTML-Quatsch“.

Damit der Home Assistant Scraper die PIN eindeutig identifizieren kann, habe ich die zu scrapende Seite wie folgt angepasst:

<div class='DHL-DATE'>23.05. 10:55:57</div>
<div class='DHL-PIN'>9394</div>

Sowohl das Datum der DHL-Mail als auch die eigentliche PIN habe ich jeweils in ein eigenes DIV gepackt und diesen DIVs eindeutige Klassen zugewiesen. Nach diesen Klassen sucht der Home Assistant Scraper und findet somit in jedem Fall sowohl die aktuelle DHL-Pin, als auch das Datum und die Uhrzeit wann DHL mir diese PIN geschickt hat.

Nach ein wenig Warten, konnte ich dann die aktuellen Werte in Home Assistant als Sensoren sehen:

Home Assistant Scrape Sensor

 

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

AngebotBestseller Nr. 1
Alexa Aroma Diffuser 400ml, Maxcio Smart Ätherische Öl WLAN...*
  • Sprachsteuerung: Kompatibel mit Alexa, Google Assistant. Sie können...
  • Fernsteuerung mit APP: Mit dem "Smart life" App können die...
AngebotBestseller Nr. 2
Homematic IP Smart Home Set Heizen – BILD-Edition, 154589A0*
  • Set Heizen „BILD-Edition“ für den einfachen Einstieg in...
  • Einfache und intuitive Einrichtung: App herunterladen, Homematic IP...

*= Preis inkl. MwSt., ggf. zzgl. Versandkosten. Letzte Aktualisierung vor 60 Minuten / Affiliate Links / Bilder von der Amazon Product Advertising API

Schreibe einen Kommentar

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulares wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.