Dienstag, 17. November 2015

aktuelles Wetter aus der eigenen Wetterstation im Internet mit dem Raspberry Pi

Seit einiger Zeit läuft bei mir eine Wetterstation WS2800IT von Technoline. Die Station misst die Außentemperatur, die Luftfeuchtigkeit, die Wind-Stärke und -Richtung, sowie die Regenmenge. Die zum Teil solarbetriebenen Sensoren stehen auf dem Dach. Alle gemessenen Daten werden übersichtlich auf einem Drahtlos angebundenen Display angezeigt, welches bei mir im Wohnzimmer steht.














Das sieht nicht nur schick aus, sondern ist auch praktisch, da kein Drahtverhau rumliegt. Ein weiteres Feature ist die ebenfalls drahtlose Kommunikation über einen USB-Stick zu einer PC-Software zur Anzeige der von der Station gesammelten historischen Daten (maximal 1700 Messwerte, gespeichert jede 5 Minuten).
Hier müsste ich jedoch regelmäßig den PC anwerfen, um die Daten auszulesen, denn für mehr als eine Woche reicht der Speicher der Station nicht. Auf der Suche nach einer besseren Lösung, (die die Daten kontinuierlich in eine SQL-Datenbank schreiben kann) bin ich auf den Raspberry Pi gestoßen. Da ich ohnehin mal ein Projekt mit diesem kleinen Computer machen wollte, drängte sich die Wetteraufzeichnung geradezu auf.
Ich habe ein Starterpaket mit einem Raspberry Pi B erstanden, die Rechenleistung und Ausstattung reicht vollkommen.













Der Pi wurde mit einer SD-Karte geliefert, die NOOBS enthielt. Das ist ein grafisches Installationsprogramm für verschiedene Betriebssysteme des Pi. Also Maus, Tastatur und TV (über HDMI) angeschlossen und los geht's. Ich wählte Raspbian Jessie, eine aktuelle Debian-Distribution. Da ich für den späteren Betrieb keinen Bildschirm, Tastatur oder Maus benötige (Headless), muss Telnet und SSH laufen. Das ist standardmäßig aktiviert, also habe ich jetzt nur noch folgende Komponenten:
- ein Steckernetzteil
- der Raspberry Pi im Gehäuse
- ein Netzwerkkabel zur Fritzbox
- der USB-Stick der Wetterstation
Nun kommt die Installation des eigentlichen Wetterdaten-Abholprogramms. Ich habe mich für weewx entschieden, weil es schöne Übersichtsgrafiken für Tag, Woche und Jahr erzeugen kann.

Die Installation startete ich über die Anleitung von  Byte Insight, bin dann aber auf die Überholspur gewechselt und habe mir das vorgefertigte Debian-Paket vom weewx-Server gezogen. die Datei weewx_3.2.1-1_all.deb funktionierte tadellos und hinterließ ein funktionsfähiges System, das ohne angemeldeten Benutzer läuft.
Leider gibt es beim Raspberry Pi noch einen Fallstrick. Da die Hardware keine Echtzeituhr besitzt, ist nach dem Einschalten erst mal die falsche Uhrzeit im System. Die Installation von NTP reicht noch nicht, denn Weewx startet, bevor Ntp die aktuelle Uhrzeit hat. Weewxs Rasberry-Pi-Dokumentation geht darauf ein: einfach warten, bis die Uhrzeit aktuell ist. Der dort beschriebene Code muss nach /usr/share/weewx/user/extensions.py
Zur Bereitstellung als Website brauchen wir noch einen Webserver. Das erledigt lighttpd mit einer Portfreigabe von meiner dynamischen Internetadresse rainerbahr.no-ip.biz an den Pi.
Da die Wetterstation die Luftdruckdaten als relativen Luftdruck und nicht, wie von weewx erwartet absoluten Luftdruck sendet, ist dessen Anzeige schlicht falsch. Abhilfe bringt hier eine Änderung in der Konfiguration in /etc/weewx/weewx.conf:

[StdConvert]
target_unit = METRIC
[StdCalibrate]
pressure = pressure - 53