Zum Hauptinhalt Zur Navigation

Raspberry Pi: Mit einem DVB-T-Stick die Wetterstation retten

Was kann man machen, wenn ein Regenmesser abraucht und man nicht die komplette Wetterstation neu kaufen will? Das Zauberwort heißt SDR .
/ Friedhelm Greis
20 Kommentare News folgen (öffnet im neuen Fenster)
Mit solchen DVB-T-Sticks lassen sich auch Wetterstationen auslesen. (Bild: Friedhelm Greis/Golem.de)
Mit solchen DVB-T-Sticks lassen sich auch Wetterstationen auslesen. Bild: Friedhelm Greis/Golem.de

Es ist eine Erfahrung, die sicher schon viele mit dem Internet der Dinge gemacht haben. Gehen einzelne Komponenten eines Systems nach einigen Jahren kaputt, sieht es mit der Beschaffung von Ersatzteilen mitunter schwierig aus. Doch nicht immer ist es erforderlich, das komplette System auszutauschen. Wie das Beispiel einer Wetterstation zeigt, kann hinter der alternativen Nachrüstung allerdings ein ziemlicher Aufwand stecken. Selbst dann, wenn es am Ende eigentlich ziemlich gut funktioniert.

Im konkreten Fall handelt es sich um eine Wetterstation Oregon Scientific WMRS200, die in Kombination mit einem Raspberry Pi seit Herbst 2014 zuverlässig ihren Dienst in einem Berliner Kleingarten getan hatte. Am 2. Mai 2021 überraschte der Regenmesser jedoch mit einem ungewöhnlichen Wert. Satte 485,9 Liter sollte es in einer Stunde geregnet haben. Selbst in Zeiten des Klimawandels eine unwahrscheinliche Menge.

Regen messen macht abhängig

Die anfängliche Hoffnung, es habe sich nur um einen Übertragungsfehler gehandelt, erfüllte sich nicht. Denn nach der virtuellen Sintflut kamen überhaupt keine Werte mehr bei der Station an. Offensichtlich handelte es sich um einen Hardware-Defekt. Auf der Platine selbst war kein Bug zu erkennen, lediglich eine kleine Spinne hatte sich dort eingenistet. Ein Austausch des Reed-Schalters(öffnet im neuen Fenster) brachte keinen Erfolg.

Es war klar, dass Ersatz beschafft werden musste. Das liegt nicht nur daran, dass die angeschlossene Bewässerungsanlage die Regenmengen der vergangenen Tage auswertet (ohne KI). Der Garten soll schließlich nur dann bewässert werden, wenn es nicht geregnet hat. Der eigentliche Grund dafür, dass unbedingt ein neuer Regenmesser hermusste: Eine Wetterstation macht auf die Dauer abhängig. Datenabhängig.

Gerät nicht mehr lieferbar

So ein Schauer mag an sich wohl gut für die Natur und den Garten sein. Doch wenn man ihn nicht richtig messen kann, ergibt der ganze Regen für den Kleingartenmeteorologen keinen Sinn. Das ist ungefähr so, also würde die Fußballbundesliga keine Tabelle führen. Die ganze Saison würde aus sinnlosen Freundschaftsspielen bestehen.

Doch leider musste ich feststellen, dass der Hersteller Oregon Scientific die Produktion des Regensensors vom Typ PCR 800 irgendwann eingestellt haben muss. Zwar fanden sich unzählige Shops, die den Sensor gelistet hatten (das Internet vergisst nichts), doch überall hieß es nur: "Dieser Artikel steht derzeit nicht zur Verfügung!" Im Grunde hatte ich mich schon damit abgefunden, eine komplett neue Station anschaffen zu müssen.

Letzter Ausweg Ebay-Kleinanzeigen

Einen letzten Ausweg bot schließlich ein Inserat auf Ebay-Kleinanzeigen. Dort fand sich ein eigenständiger Regensensor von Oregon Scientific, der aussah wie der defekte. Die Hoffnung, dieser sei zufällig mit der Wetterstation kompatibel, erfüllte sich leider nicht. Eigentlich erwartbar. Denn die unterschiedlichen Modelle sollen sich schließlich nicht untereinander stören und gegenseitig die Messergebnisse verfälschen. Aber irgendwie musste es doch einen Weg geben, die Daten des Regenmessers in den Raspberry Pi zu bringen.

Schließlich sendet der Sensor auf der üblichen Frequenz von 433 MHz, für die es eine ganze Reihe von einfachen Empfängern gibt. Versuche mit einem Funkmodul wie dem CC1101(öffnet im neuen Fenster) oder einem 433-MHz-Empfänger(öffnet im neuen Fenster) brachten jedoch keine brauchbaren Ergebnisse.

Was bitte ist ein Manchester Code?

Entscheidend ist neben der Hardware ohnehin die Frage, ob man eine passende Software findet, die die Signale der Wetterstation auch dekodieren kann. Schließlich will man sich nicht mit dem speziellen Oregon-Protokoll (PDF)(öffnet im neuen Fenster) und Fragen wie dem Manchester Code(öffnet im neuen Fenster) beschäftigen.

Nach einigem Suchen stellte sich heraus, dass es für mein Problem eigentlich schon eine passgenaue Lösung gibt. Diese basiert auf sogenannten RTL-SDR-Dongles. Dabei steht RTL nicht für den Fernsehsender, sondern den Realtek-Chip RTL2832U. SDR wiederum ist die Abkürzung für Software Defined Radio(öffnet im neuen Fenster) , das heißt, ein Teil der Signalverarbeitung erfolgt per Software.

Erforderliche RTL-Software verfügbar

Für die Installation der erforderlichen Programme auf dem Raspberry Pi gibt es verschiedene Anleitungen im Netz(öffnet im neuen Fenster) . Neben der eigentlichen RTL-SDR-Software(öffnet im neuen Fenster) , die auch Radioempfang ermöglicht, muss noch das Paket rtl_433(öffnet im neuen Fenster) für die 433-MHz-Anwendungen installiert werden.

Als Empfänger eignen sich typische DVB-T-Sticks, wie sie für den digitalen Fernsehempfang benötigt werden. Da viele Sticks nach der Umstellung auf DVB-T2 inzwischen nicht mehr funktionieren, gibt es sie für wenige Euro günstig auf Ebay-Kleinanzeigen zu kaufen. Neue Geräte mit dem Realtek-Chip sind ab 12 Euro verfügbar(öffnet im neuen Fenster) .

Allerdings muss man darauf achten, dass der Stick exakt in dieser Liste(öffnet im neuen Fenster) oder auf einer Reddit-Liste(öffnet im neuen Fenster) angegeben ist. So sind die häufig angebotenen Terratec Cinergy T-Stick MKII nicht mit der Software kompatibel, weil nicht der RTL2832U verwendet wird.

Das Ganze funktioniert auf aktuellen Raspbian-Versionen im Grunde problemlos und man kann die gesendeten Daten von zahlreichen Stationen empfangen. Was noch besser ist: Es gibt sogar einen speziellen Treiber(öffnet im neuen Fenster) , der die Daten mit der verwendeten Auswertungssoftware Weewx(öffnet im neuen Fenster) verknüpft. Damit lassen sich dann die Daten nahtlos in die seit Jahren aufgebaute Datenbank einbinden.

Zumindest theoretisch.

Komplette Neuinstallation erforderlich

In der Praxis hat es jedoch noch ziemlich lange gedauert, bis das System wieder so funktionierte, wie es sollte. Das lag zum einen daran, dass auf dem Raspberry Pi noch die ursprüngliche Raspbian-Version Wheezy lief. Für diese ließen sich erforderliche Pakete für die Programme nicht mehr nachinstallieren.

Das wäre ein geeigneter Zeitpunkt gewesen, sich doch noch eine komplett neue Wetterstation zu kaufen und sich die Arbeit zu sparen, das ganze System neu aufzusetzen. Dazu gehört auch die Einbindung der eigenen Garten-App .

Das war zudem nicht das letzte Problem. Denn trotz des Treibers war es nicht ganz trivial, den Regenmesser in die Wetterstation einzubinden. So war das auf Ebay gekaufte Gerät nicht in dem Weewx-Treiber enthalten. Doch die mit rtl_433 ausgelesenen Parameter ließen sich bei einem anderen Gerät eintragen. Bis ich feststellte, dass in der Weewx-Konfiguration die Regenmenge über den Wert "rain_total" , die Regenrate hingegen über "rainRate" eingebunden werden muss, dauerte es eine Zeit lang. Logisch ist das auf jeden Fall nicht.

SQLite-Datenbank anpassen

Das nächste Problem: Weil sich der Windmesser über den SDR-Stick auf Anhieb nicht finden ließ, entschied ich mich, die ursprüngliche Basisstation weiterhin zu benutzen. Das hat den weiteren Vorteil, dass die von der Station selbst gemessenen Werte wie Innentemperatur nicht verloren gehen. Allerdings ist es nicht möglich, Stick und Station im selben Prozess auszulesen. Es müssen dafür verschiedene Instanzen gestartet werden, was aber kein Problem ist(öffnet im neuen Fenster) .

Allerdings funktioniert es nicht, beide Prozesse parallel in dieselbe SQLite-Datenbank schreiben zu lassen. Das sollte jedoch weiterhin der Fall sein, damit sämtliche Daten auf einer einzelnen HMTL-Seite dargestellt werden können. Diese letzte Hürde lässt sich überwinden, indem mit einem Bash-Skript die Datensätze des Regenmessers nach jedem Speicherintervall als CSV-Datei exportiert ( Code ) und dann in die Datenbank der Wetterstation importiert werden. Dazu war es natürlich erforderlich, sich intensiver mit der Datenbankstruktur und generell mit dem Code von Weewx zu beschäftigen.

Aufwand viel größer als erwartet

Am Ende hat es einige Monate oder ungefähr 485,9 Liter Regen pro qm gedauert, bis die Wetterstation wieder funktionierte. Der Aufwand war deutlich größer als erwartet. Vermutlich sogar größer als bei der ursprünglichen Installation der Station. Der Vorteil einer eigenständigen SDR-Lösung liegt jedoch darin, dass man sich im Grunde eine Wetterstation mit Komponenten verschiedener Hersteller wie Netatmo, Fine Offset oder Acurite selbst zusammenstellen kann, ohne jeweils die komplette Wetterstation zu benötigen.

Und man kann natürlich auf einfache Weise auf Daten von Sensoren zurückgreifen, die in der Umgebung des SDR-Sticks senden. Der Nutzen, das Poolthermometer des Nachbarn auslesen zu können, hält sich jedoch in Grenzen.

Noch besser wäre es natürlich, wenn man defekte Komponenten einfacher austauschen oder gar reparieren lassen könnte. Aber bis das Realität ist, werden noch viele Tropfen durch den Regenmesser gelaufen sein.


Relevante Themen