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: