beelogger

Home Assistant / Scraper

Wenn der beelogger nicht grade seine Daten an den Webserver sendet, befindet er sich im Tiefschlaf, um Strom zu sparen. Das bedeutet auf der anderen Seite, dass er nicht aktiv abgefragt werden kann. Um nun die aktuellen Werte der Sensoren auch in seiner Homeautomation sehen und verwenden zu können, muss auf die gespeicherten Daten auf dem Webserver zurückgegriffen werden. Als ein Tool, welches in vielen Systemen zur Verfügung steht, bietet sich ein Scraper an. Solche Tools können beispielsweise Websites durchsuchen und mit definierten Filtern Werte extrahieren.

Um diese Funktion so einfach und ressourcenschonend wie möglich nutzen zu können, wurde eine spezielle Scraper-Seite erstellt, die auf dem Datenbestand des beelogger-mobileCheck basiert.

Am Beispiel der weit verbreiteten Open Source Software “Home Assistant” wird im Folgenden die Funktion der beelogger Scraper-Seite erklärt und wie hierüber die eigenen Sensorwerte in den Assistenten integriert werden können. Diese Anleitung stellt lediglich ein Beispiel der Möglichkeiten dar und ersetzt nicht, dass man sich mit dem Home Assistant selbst in ausreichender Tiefe beschäftigt. Support für den Assistenten kann von uns leider nicht zur geleistet werden. Wer allerdings den Home Assistent bereits einsetzt, weiß bestimmt auch um die gute Community dieses Tools.

Grundsätzlich stehen folgende Werte pro Sensor zur Verfügung:

Bezeichnung Bezeichnung des Sensors
Aktuallisierung letzte Aktualisierung des Datensatzes
Wert letzter (aktueller) Wert
Wert 1 vorletzter Wert
Wert 24 Wert von vor 24 Stunden

Der Aufruf der Scraper-Seite erfolgt über die URL: https://community.beelogger.de/UserName/scraper.php?pfad=beelogger1

UserName ist hierbei durch den eigenen Account-Namen zu ersetzen.
Ebenso kann die Variable “pfad” frei im Rahmen der bereits angelegten beelogger gesetzt werden.

Beim direkten Aufruf der URL über den Browser erhält man eine Übersicht aller Variablen. Um die einzelnen Werte einfach und unkompliziert mit einem Scraper filtern zu können, wurde jedem Wert eine eigene Klasse im Rahmen eines DIV-Tags zugewiesen. Die Verfügbaren Klassen sind ersichtlich, wenn man sich im Browser den Quelltest der Seite anschaut. Hierfür reicht es meist mit der rechten Maustaste auf die Website zu klicken, um diese Option angezeigt zu bekommen. Bei Chromium beispielsweise nennt sich diese Funktion “Seitenquelltext anzeigen”.

Beispiel der erstellten Tags:

<div class=’beelogger1_Sensor_1_Bezeichnung‘>Temperatur</div>

<div class=’beelogger1_Sensor_1_Wert‘>22.14</div>

<div class=’beelogger1_Sensor_1_Wert_1‘>22.14</div>

<div class=’beelogger1_Sensor_1_Wert_24‘>22.01</div>

 

Setup der Sensoren im Home Assistant

Um die Werte der Sensoren im Home Assistant anzeigen zu können, muss die Konfigurationsdatei “configuration.yaml” manuell bearbeitet werden. Wo sich diese Datei genau befindet und welche Optionen bestehen, diese Datei zu bearbeiten, ist abhängig vom verwendeten Betriebssystem und an dieser Stelle sei auf die vielen Anleitungen im Internet verwiesen.

Folgende Minimalkonfiguration ist hierbei pro Sensorwert einzutragen:

scrape:
  #Waage1
  - resource: https://community.beelogger.de/USER/scraper.php?pfad=beeloggerD1_1
    scan_interval: 900   # Intervall in Sekunden
    sensor:  
    #Temperatur
    - name: beeloggerD1_1_Sensor2_Wert_AussenTemp
      select: ".beeloggerD1_1_Sensor_2_Wert"
      unit_of_measurement: "°C"

Aufruf der Scraper-Seite zum Auslesen mehrerer Werte:

scrape:
  #Waage1
  - resource: https://community.beelogger.de/USER/scraper.php?pfad=beeloggerD1_1
    scan_interval: 900   # Intervall in Sekunden
    sensor:  
    #Temperatur
    - name: beeloggerD1_1_Sensor2_Wert_AussenTemp
      select: ".beeloggerD1_1_Sensor_2_Wert"
      unit_of_measurement: "°C"
    - name: beeloggerD1_1_Sensor2_Wert_AussenTempVorletzter
      select: ".beeloggerD1_1_Sensor_2_Wert_1"
      unit_of_measurement: "°C"
    - name: beeloggerD1_1_Sensor2_Wert_AussenTempVor24h
      select: ".beeloggerD1_1_Sensor_2_Wert_24"
      unit_of_measurement: "°C"
    #Gewicht  
    - name: beeloggerD1_1_Sensor6_Wert_GewichtWaage
      select: ".beeloggerD1_1_Sensor_6_Wert"
      unit_of_measurement: "kg"
    - name: beeloggerD1_1_Sensor6_Wert_GewichtWaage_Vorletzter
      select: ".beeloggerD1_1_Sensor_6_Wert_1"
      unit_of_measurement: "kg"  
    - name: beeloggerD1_1_Sensor6_Wert_GewichtWaage_Vor24h
      select: ".beeloggerD1_1_Sensor_6_Wert_24"
      unit_of_measurement: "kg"  

 

Für ältere Versionen des Home Assisteant:

sensor:
  - platform: scrape
    scan_interval: 900
    resource: https://community.beelogger.de/UserName/scraper.php?pfad=beelogger1
    select: ".beelogger1_Sensor_1_Wert"
    name: beelogger1_Sensor1_Wert
    unit_of_measurement: "°C"

Alternativ hierzu gibt es auch die Möglichkeit, über die Erweiterung “multiscrape”, mit einem Aufruf der Scraper-Seite, gleich mehrere Werte auszulesen:

multiscrape: 
  - resource: https://community.beelogger.de/UserName/scraper.php?pfad=beelogger1 
    scan_interval: 900 
    sensor: 
      - name: beelogger1_Sensor_Aktualisierung 
        select: ".beelogger1_Sensor_Aktualisierung" 
      - name: beelogger1_Sensor1_Wert 
        select: ".beelogger1_Sensor_1_Wert" 
        unit_of_measurement: "°C" 
      - name: beelogger1_Sensor3_Wert 
        select: ".beelogger1_Sensor_3_Wert" 
        unit_of_measurement: "%"

Erläuterung:

scan_interval Gibt das Intervall in Minuten an mit dem die Seite gescannt und die Werte gefiltert werden
resource URL zur Scraper-Seite – Account-Name und -Pfad sind wie oben beschrieben individuell zu wählen
select Suchstring – Hier wird die Klasse des gewünschten Wertes angegeben
name Eindeutige Bezeichnung des Sensors (speziell wenn Daten mehrerer Logger eingelesen werden sollen)
unit_of_measurement Maßeinheit des Sensorwertes

 

Darstellung der Werte im Home Assistant Dashboard

Zur Darstellung der Sensorwerte auf dem Dashboard stehen mehrere Optionen zu Verfügung. Die Einbindung der Werte sollte jedem Benutzer dieses Assistenten bekannt sein. Bei Darstellung mehrerer Werte eines beeloggers empfehlen wir die Karte “Elemente”.

Auf einer gemeinsamen Karte wird zunächst der Titel gewählt und danach die Sensoren als Entitäten ausgewählt:

Im Anschluss kann jede Entität separat konfiguriert werden, in dem beispielsweise ein Sensorname oder ein Symbol für den Sensor ausgewählt wird:

In diesem Beispiel ist das Ergebnis eine übersichtliche Karte mit den gewünschten Sensordaten eines Loggers: