Einmal Hacker sein… ;-)

Einmal Hacker sein… ;-)

Seit vielen Jahren nutze ich eine Wetterstation im Garten. Sinnvollerweise hatte ich immer eine Station, bei der ich die Messwerte einfach zur eigenen Nutzung und Weiterverarbeitung selbst aus der Station ziehen kann. Im Lauf der Jahre passiert aber, was zwangsläufig mit jeder Technik irgendwann passiert: sie geht kaputt. In meinem Fall verabschiedeten sich von der ersten Station Schritt für Schritt die Sensoren. Bei der zweiten Station kommt eigenes Unvermögen dazu. 🙁
Wenn man schon zur Bespaßung der Hunde Bälle durch den Garten wirft, sollte man so werfen, dass die Außensensoren nicht im Weg sind…
Also reifte der Entschluss, bei nächster Gelegenheit etwas neues zu beschaffen. Nun kam es so, dass ein Angebot eines Discounters und der nahende Geburtstag Anlass zur Neubeschaffung einer neuen Station boten.
Im Vergleich zu anderen Angeboten war das Angebot des Discounters fast 150€ preiswerter. Schnäppchen also!
Aber wie das immer so ist: Kein Vorteil ohne nicht mindestens zwei Nachteile! Bei dieser Station (Bresser 7 in 1) gibt es keine (offizielle) Möglichkeit, auf direktem Weg an die Wetterdaten zu kommen. Zwar besteht die Möglichkeit des Anschlusses an das heimische WLAN, aber man kann die Daten dann nur über den Umweg wunderground.com (funktioniert bei mir nicht) oder weathercloud.net(funktioniert) bekommen. Da ich die Daten, speziell die Niederschlagsmenge, zur Steuerung meiner Gartenberegnung (Eigenbau, später vielleicht dazu mehr…) nutzen möchte, ist so ein Umweg natürlich suboptimal und fehleranfällig. Also begann ich über alternative Lösungen nachzudenken und entwickelte mich zum „Hacker“ ;-).
Alles, was per Netzwerk irgendwohin übertragen wird, kann man mit den passenden Werkzeugen ausschnüffeln. In meinem Fall war das mein Linux-Desktop und Wireshark. Zunächst ermittelte ich die IP-Adresse der Wetterstation im WLAN. Das war nicht schwer, weil mein Router mir jedes neue Gerät im Netzwerk per Mail petzt.
Als nächstes nutzte ich eine versteckte Funktion im Router dazu, den Netzwerkverkehr „nach draußen“ aufzuzeichnen. Diese Datei öffnete ich in Wireshark, setzte einen Filter mit der IP der Wetterstation und siehe da… die ist so „gesprächig“, dass sie die Daten im Klartext mittels eines einfachen Aufrufs einer URL überträgt. In diesem Fall ging der Aufruf der URL an wunderground.com. Allerdings endete dieser Aufruf permanent mit einer Fehlermeldung der Webseite (unauthorized – warum auch immer…).
Jetzt gäbe es die Möglichkeit, im lokalen Netz einen eigenen DNS-Server zu betreiben und den Aufruf an einen eigenen Server umzuleiten. Das war mir aber zu aufwändig. Es gibt da nämlich im Setup der Wetterstation noch die Möglichkeit, einen anderen „Wetterserver“ einzutragen. Nach etwas Frickelei und dem nochmaligen Einsatz von Wireshark war es dann geschafft – die Station „telefoniert“ jetzt mit meinem eigenen Server. Die Verbindung mit dem „Wetterserver“ funktioniert nämlich haargenau so, wie die mit wunderground.com. :).
Jetzt muss ich mir nur noch ein kleines php-Script schreiben, dass die Daten entgegen nimmt und in meine eigene Datenbank schreibt.

4 Gedanken zu „Einmal Hacker sein… ;-)

  1. Moin Kurt,
    Ich hänge gerade an exakt dem gleichen Thema, damit die Daten am eigenen Server gespeichert werden können.

    Wie sieht die Adresse aus, die du nun bei der Wetterstation angegeben hast?
    Ich habe jetzt schon bisschen experimentiert, kann aber nichts in der Webserver-Log erkennen, dass auch überhaupt nur ein Verbindungsversuch unternommen wurde…

    Über eine Antwort wäre ich sehr dankbar.

    Viele Grüße

  2. Hallo Lukas,
    daran habe ich auch lange geknabbert. Du musst in dem betreffenden Feld einfach den Domainnamen, also z.B. www-meine-domain.de, eintragen. Im Rootverzeichnis Deiner Webseite muss sich dann ein Ordner „weatherstation“ befinden. In diesem Order sollte dann das Script liegen, dass die eintreffenden Daten abnimmt und es muss den Namen „updateweatherstation.php“ haben.

    Ich hoffe, ich konnte Dir helfen.

  3. Hallo Kurt,

    ich stehe vor demselben Problem.
    Das Mitschneiden mit der FRITZ!Box hat bei mir nicht funktioniert, ich hoffe, dass meine Bresser ClearView die Daten im selben Format versendet.
    Kannst du dein php-Script veröffentlichen?

    Viele Grüße

  4. Hallo Mathias,

    ich bin keine Profi-Programmierer und werde deshalb in Hinblick auf möglicherweise vorhandene Schwachstellen das Script lieber für mich behalten…
    Die Daten werden quasi im Klartext in der URL übergeben und mit ein paar Kenntnissen in PHP sollte es kein Problem sein, sie in ein Script zu übernehmen.

Kommentare sind geschlossen.

Kommentare sind geschlossen.