Eine Davis-Wetterstation und Linux

Artikel Bild
Erfahrungsbericht wie eine Wetterstation mit Linux ins Internet kommt.

In meiner Freizeit beobachte und fotografiere ich gerne den nächtlichen Sternenhimmel. Dazu ist natürlich ein klarer Himmel notwendig und daher bin ich auch an verlässlichen Wettervorhersagen und Wetterdaten interessiert. Was ich aus jahrzehntelanger Erfahrung am Wetter beobachte, verfolgt mein Mitbeobachter mit Hilfe einer semiprofessionellen Wetterstation, da er noch interessierter am Wetter ist als ich.

Seit vielen Jahren betreibt er eine Wetterstation von Davis-Instruments in seinem Garten. Diese Station hat viele verschiedene Sensoren und sendet die gemessenen Daten alle 15 Minuten per Funk an die Davis-Konsole die im Arbeitszimmer an der Wand hängt. Mit Hilfe einer inzwischen sehr alten und nicht mehr aktualisierten Windowssoftware können die Wetterdaten in Diagrammform angezeigt und auch bestimmte Tage ausgewählt sowie angezeigt werden. Leider ist der Export der Daten nicht so ohne weiteres möglich. Als pensionierter Physiker möchte er aber gerne mit den gemessenen Werten "arbeiten".

Sein eigentliches Anliegen war, die aktuellen Wetterdaten für sich oder andere übers Internet abrufbar zu machen.

- Karte mit Stationen

Bei der Recherche, wie dies möglich ist, bin ich auf die Software WeeWX gestoßen, die unter Linux läuft und von vielen Wetterstationen genutzt wird. Unter Windows würde dies auch gehen, aber mit Windows macht dies keinen Spaß.

Also habe ich begonnen, die Software in einer VM mit Debian Gnome zu installieren, mal anzuschauen und zu zeigen. Nach dem "Go" meines Bekannten habe ich dann die VM auf eine Testhardware kopiert und wir haben einen ersten Versuch bei Ihm zu Hause gemacht.

Erste Probleme:

Bei den ersten Versuchen, ob die Wetterstation mit der Software auch spricht, legte sich der Debian-Rechner immer wieder schlafen. Dies ist auf die installierte Desktopumgebung zurückzuführen, die nach einer bestimmten Zeit den Rechner in den Schlafmodus versetzt hat.

Das viele größere Problem war allerdings die Verbindung zwischen der Davis-Konsole und dem Linux-Rechner mittels serieller Schnittstelle auf USB. Die Verbindung wurde zwar hergestellt, aber es wurden keine Daten aus der Konsole abgerufen. Nach Recherche in diversen Wetterforen war die Firmware der Konsole das Problem. Die Firmwareversion war schon älter, aber die neueste Firmware verursacht auch Probleme. Da über den Hersteller keine alten Firmwareversionen verfügbar sind, wurde ich wieder über ein Wetterforum fündig. Ein freundlicher Nutzer stellte verschiedene ältere Firmwareversionen zur Verfügung.

Nachdem wir die Firmware der Davis-Konsole auf die Version 1.90 aktualisiert hatten (auch ein Abenteuer) flossen die Daten dann auch wunderbar.

Lediglich die Konfiguration der Software und damit verbunden die Anzeige der Daten im Browser mit den richtigen Einheiten war nochmals eine Herausforderung. Die Software wird mit vielen verschiedenen Wetterstationen genutzt, in vielen Ländern mit unterschiedlichen Einheiten. Die Software ermöglicht die automatische Anzeige in den gewünschten Einheiten durch "einfache" Konfiguration der Parameter in der Datei /etc/weewx/weewx.conf. Für die Davis Wetterstation muss man dazu nur wissen, wie die Davis-Konsole eingestellt ist bzw. in welchen Einheiten die Daten gespeichert/gemessen werden. In unserem Fall werden die Werte in US-Einheiten von der Davis ausgegeben und auch von der Software so gespeichert. Das bedeutet, die Daten müssen vor der Ausgabe in die gewünschten Einheiten umgerechnet werden. Die Software ermöglicht dies alles, es muss nur richtig konfiguriert werden! Zum Glück hatte ich dies bereits in meiner separaten Testinstallation auf meinem Debian-Homeserver und einer simulierten Wetterstation festgestellt und war darauf vorbereitet.

Jetzt konnte es dann richtig losgehen. Als Hardware schlug ich einen Intel-NUC vor, da mir die Hardware vertraut ist, ein "normales" Debian ohne GUI installiert werden sollte und ein richtiges Gehäuse mit allen notwendigen Schnittstellen und richtigem Ein-/Ausschaltknopf hat. Im Prinzip kann auch ein Raspberry verwendet werden, aber die Unterschiede zu einem Intel-NUC sprechen für mich gegen einen Raspberry.

Meine Erfahrungen beziehen sich auf einen Raspberry 3B+, im Dauerbetrieb als PiHole.

Gehäuse: kein richtiger Ein-/Ausschalter OS: zwar Debian, aber halt doch anders als auf x86 Festplatte: SD-Karte im Dauerbetrieb problematisch, eine SSD ist zwar auch per USB anschließbar, aber dann hängt da irgendeine Festplatte/SSD herum bzw. benötigt ein extra Gehäuse.

Und Performance hat der NUC genügend für andere Anwendungen und die Zukunft. So habe ich nach einem gebrauchten Intel-NUC geschaut und er hat dann das Gerät bestellt.

Die Installation von Debian 12 ohne GUI wurde von mir zu Hause vorbereitet und die Konfiguration der WeeWX-Software vom Testsystem übernommen.

Intel-NUC

Weitere Herausforderungen:

Da mein Bekannter sich mit Linux nicht so gut auskennt, war für mich klar, alles so weit wie möglich zu automatisieren. Zumal der Rechner nur per Konsole benutzbar ist. Weiterhin wollte er zunächst auch mit der alten Windowssoftware die Daten auslesen. Das bedeutet, die serielle Verbindung musste am NUC ausgesteckt werden und am Windowsrechner eingesteckt. Damit kommt die WeeWX-Software nicht zurecht und stürzt ab. Dafür musste eine Lösung her.

Meine Lösung liegt in einem Shellskript, das den Status des WeeWX-Dienstes abfragt und bei Bedarf den WeeWX-Dienst per systemctl restart weewx.service wieder startet. Dieses Shellskript wird per Cron alle 5 Minuten gestartet und somit kann die serielle Verbindung ohne Probleme umgesteckt werden.

!/bin/bash
#Skript prüft ob die Wettersoftware WeeWX läuft, wenn nicht, wird gestartet
#notwendig wenn die USB-Verbindung weg ist
SERVICE='weewx.service' STATUS="$(systemctl is-active weewx.service)"
if [ "${STATUS}" = "active" ]; then
  echo "Execute your tasks ....."
else
  echo " Service not running.... so exiting "
  systemctl start $SERVICE
  exit 1
fi

Backup: Das Backup der Wetterdaten sowie der Konfigurationsdaten der WeeWX-Software als auch von Debian wird durch selbst erstellte Shellskripte täglich bzw. wöchentlich per Cron-Job erledigt. Die Skripte kopieren die Backups auf einen Speicher, der an einem anderen Standort ist, und löscht alte Backups nach 30 Tagen.

Mein einfaches Backupskript:

#!/bin/sh
#Backup WeeWx Datenbank als SQL und kopiert dies zum Webserver
mkdir -p /mnt/hosting
sshfs user@host:/httpdocs /mnt/hosting
BackupPFAD=/mnt/hosting/backup/davis/
find /mnt/hosting/davis -name 'davis-weewx*.sql' -mtime +30 -exec rm -f {} \;
CURRENTDATE=date +"%Y-%m-%d-%T"
sqlite3 /var/lib/weewx/weewx.sdb .dump >davis-weewx-$CURRENTDATE.sql
cp davis-weewx-$CURRENTDATE.sql $BackupPFAD
rm davis-weewx-$CURRENTDATE.sql
sudo umount /mnt/hosting

Neustart nach Stromausfall:

Was macht der NUC bei Stromausfall? Leider erst mal nichts mehr. Ich hatte mir zwar die BIOS-Einstellungen angeschaut und für gut befunden, wurde aber eines Besseren belehrt. Nur wenige Tage nach der Inbetriebnahme fiel der Strom bei uns im Ort aus und der NUC war weg. Ausgerechnet an diesem Tag war mein Bekannter verreist und die Wetterstation lieferte keine Daten mehr. Also, BIOS-Einstellung prüfen, entsprechend einstellen und den Stromausfall testen.

Import der alten Daten:

Die historischen Wetterdaten reichen bis 2008 zurück und sollten natürlich auch in der neuen Software gespeichert und abrufbar sein. Die Windowssoftware von Davis-Instruments speichert die Wetterdaten in einem binären, aber gut dokumentierten Format, aber es gibt keine einfache Exportmöglichkeit. Diese Problematik hatten schon andere Anwender und so gibt es bereits verschiedene Tools auf Github, die einen Export möglich machen. Ich habe verschiedene probiert und mit keinem war es möglich, alle Daten aus den binären Dateien zu exportieren. Meine eigenen Versuche, ein Exportprogramm zu schreiben sind gescheitert und so habe ich dann den richtigen Einfall gehabt. Ich schreibe dem Autor einer der Anwendungen an, schildere mein Problem und hoffe, dass er mitmacht. Und so ist es auch passiert. Steve Preston hat eine einfache Windowsanwendung geschrieben, die auch mit Wine unter Linux gut funktioniert. Allerdings wurden mit seiner Anwendung nicht alle Daten ausgelesen, da er nicht so viele Sensoren an seiner Wetterstation verwendet. Nachdem ich ihm eine aktuelle Binärdatei geschickt habe, hat er seine Anwendung erweitert, so dass nun alle Daten in CSV exportiert werden können. Auch die Vorgabe des Trennzeichens ist möglich. Dies ist notwendig, da die Messwerte mit Dezimalstellen per einfachem Komma ausgegeben werden und dies zu Schwierigkeiten führt, wenn das Trennzeichen für die Daten ebenfalls ein Komma ist. Mit der neuesten Version konnte ich dann alle historischen Wetterdaten in die WeeWX-Software übernehmen.

Anzeige der Daten im Internet: Die WeeWX-Software kann die Daten an verschiedene Wetterdienste automatisch übertragen oder auch die erstellten HTML-Seiten auf einen einfachen Webspace übertragen. Unsere Lösung überträgt die Daten auf meinen Webspace und zu dem Dienst www.awekas.at

Lokale Anzeige im Browser:

Anzeige fürs Smartphone:

Erweiterungen:

Für die WeeWX-Software gibt es verschiedene Erweiterungen zur Anzeige der Wetterdaten im Browser oder in einfacherer Form auf dem Smartphone/Tablet. Ein Blick auf die Seite von WeeWX bringt viele nützliche Erweiterungen zu Tage.

VPN-Zugriff:

Zu Wartungszwecken haben wir einen VPN-Zugang eingerichtet, damit ich den Intel-NUC per SSH-Zugang administrieren bzw. aktualisieren kann.

Datenexport für den Physiker:

Für die WeeWX-Software gibt es auch eine Erweiterung, um die Daten automatisch in CSV zu exportieren. Allerdings wird dabei der gesamte Datenbestand exportiert und im Filesystem des Intel-NUC abgelegt. Aktuell ist das eine Datei mit ca. 190 MB. Da wir den Zugriff auf den Intel-NUC per Samba-Share nicht eingerichtet haben und der Export auch nur alle Daten beinhaltet, habe ich eine einfache Auswertungsmöglichkeit mit PHP geschaffen. Somit ist die Anzeige und der Export von einzelnen Tagen per Browser möglich und kann auch direkt als CSV gespeichert werden.

Fazit:

Die Wetterstation liefert jetzt alle 15 Minuten die Daten ins Internet und kann per Browser/Smartphone/Tablet abgerufen werden.

Quellen:
WeeWX
https://weewx.com/

Karte mit Wetterstationen die mit WeeWX betrieben werden
https://weewx.com/stations.html

WeeWX-Erweiterungen
https://github.com/weewx/weewx/wiki#extensions-to-weewx

WeeWX-Erweiterung zur einfacheren Anzeige
https://github.com/glennmckechnie/weewx-wxobs

AWEKAS Automatisches Wetterkarten System
https://www.awekas.at

WLK-Dateien in CSV exportieren
https://github.com/stevepr/wlkReader

Davis Vantage Pro2
https://www.davisinstruments.com/pages/vantage-pro2


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.