Ich habe einige Mobile Alerts Sensoren im Haus. Diese wollte ich ursprünglich mit dem RaspberryPi über die Mobile Alerts Rest API auslesen. Da dort aber nur bestimmte Sensoren funktionieren (meine leider nicht) habe ich es auf eine etwas andere Art versucht. Diese Variante ist zwar nicht so zuverlässig und auch etwas umständlich, aber sie funktioniert immerhin.
Tipp: Es gibt auch eine andere Methode
Vorbereitungen
Die Sensoren sollten schon mit dem Gateway verbunden und in die Mobile Alerts App integriert sein. In den Einstellungen der App findet man relativ weit unten die Phone ID. Diese wird später noch gebraucht.

Dann besucht man die Seite https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=XXXXXXXXXXXX
Am Ende muss noch die Phone ID ergänzt werden. Dort sollte man nun alle Sensoren sehen.

Skript erstellen
Jetzt brauchen wir einige Zeilen aus dem Quellcode. So wird auch später das Python Skript, welches die Daten ausliest, funktionieren. Dazu macht man einen Rechtsklick auf die Seite und wählt dann „Seitenquelltext anzeigen“ (Kann je nach Browser variieren).

Hier sehe ich zum Beispiel, dass sich die Temperatur des Badezimmers in Zeile 66 befindet. Die Luftfeuchtigkeit befindet sich in Zeile 70. Und da ist dann auch die Schwachstelle des Skripts. Sollte sich die Temperatur des Badezimmers mal nicht mehr in Zeile 66 befinden, funktioniert das Skript nicht mehr und muss angepasst werden. In der Regel gibt es so eine Änderung aber nur, wenn ein weiterer Sensor hinzugefügt oder entfernt wird.
1 2 3 4 5 6 7 8 9 10 11 |
import linecache import os os.system("wget -O -U firefox /home/pi/sensors.txt \"https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=XXXXXXXXXXXX\"") bad_temp = linecache.getline('/home/pi/sensors.txt', 66).strip().replace('<h4>', '').replace(' C</h4>', '').replace(',', '.') bad_hum = linecache.getline('/home/pi/sensors.txt', 70).strip().replace('<h4>', '').replace('%</h4>', '') print("Badezimmer Temperatur: ", bad_temp) print("Badezimmer Luftfeuchtigkeit: ", bad_hum) os.system("rm /home/pi/sensors.txt") |
Das ist auch schon das Skript. Es liest vorerst nur die Daten aus.
Zeile 4: Hier wird der Quelltext der Webseite heruntergeladen. Er wird in /home/pi/sensors.txt gespeichert. (nicht vergessen, die Phone ID zu ersetzen) (Update: Seit 15.4.21 Wird der Download per wget von Mobilealerts blockiert. Die zusätzliche Option „-U firefox“ lässt die Webseite denken, dass es sich um einen firefox browser handelt. Ich hoffe, dass das so weiterhin funktionieren wird.)
Zeile 5 und 6: Hier wird eine Variable auf die entsprechenden Zeilen (66 und 70) gesetzt und dann alles, bis auf die Zahl entfernt. Bei Der Temperatur muss noch das Komma durch einen Punkt ersetzt werden.
Zeile 8 und 9: Hier werden die ausgelesenen Daten ausgegeben. Natürlich kann hier auch etwas ganz anderes stehen. Die Daten könnten zum Beispiel in eine Datenbank geschrieben werden oder anderweitig verarbeitet werden (z.B: Wenn es im Schlafzimmer zu heiß aber draußen kälter ist, soll das Fenster geöffnet werden)
Zeile 10: Der Quelltext wird gelöscht. Er wird ja nicht mehr benötigt.
Ich hoffe, ich konnte dir mit diesem kurzen Tutorial weiterhelfen 😉
27. September 2023 um 12:50 Uhr
Hallo,
wie könnte ich die Daten auf einer Website anzeigen lassen ?
Bin nicht so versiert im Coden ….
Gruss Hans
27. September 2023 um 17:13 Uhr
Hi,
du kannst zum Beispiel das „flask“ Python Modul verwenden. Das ist hier: https://www.youtube.com/watch?v=l9u_vm9aAmM sehr gut erklärt.
15. Februar 2022 um 13:34 Uhr
Hallo,
wie kann ich dieses skript in home assistant einfügen? Ich bin leider noch etwas azubi ;-). Ich habe einen Sensor ID01. Diesen möchte ich in Home Assistant einbinden. Hast du eine anleitung für mich. Wäre es möglich mit der RestAPI? Aber wie? LG Danke
15. Februar 2022 um 16:45 Uhr
Hallo,
möglich ist es auf jeden Fall, aber einfach bestimmt nicht. Leider kenne ich mich mit dem Homeassistant nicht besonders gut aus. Evtl. muss man eine eigene Integration schreibe, siehe hier: https://developers.home-assistant.io/docs/development_index
19. September 2021 um 14:51 Uhr
Super Einstieg in dieses Thema.
Hast du ggf. mal versicht die Daten in Grafana oder ähnliche Tools zu bekommen?
19. September 2021 um 16:38 Uhr
Freut mich, dass sich in den Kommentaren mal wieder etwas tut 😉 . Klar, ich schreibe die Daten jetzt seit einigen Monaten in eine Influx Datenbank und lese sie dann mit Grafana aus. Läuft erstaunlich gut.
24. September 2021 um 20:07 Uhr
… das ist eigentlich genau was ich suche. 🙂
Gibt es dafür auch so ein „Kochbuch“?
25. September 2021 um 7:36 Uhr
Von mir nicht. Ein fertiges Kochbuch gibt es meines Wissens nach auch nicht, aber ich habe das hier gefunden: https://www.influxdata.com/blog/getting-started-python-influxdb/
Für Python -> Influxdb. Da sind die ersten drei Abschnitte wichtig. Für Grafana kann ich eigentlich nur die offizielle Dokumentation empfehlen, da sich bei Grafana ständig etwas ändert: https://grafana.com/docs/grafana/latest/
Per Copy&Paste funktioniert das natürlich nicht, man muss es auch verstehen.