WeeWX
freie Software für Ihre Wetterstation

Da die Homepage von WeeWX nur auf Englisch verfügbar ist, habe ich die allgemeinen Informationen hier frei übersetzt. Hier finden Sie die Originalseite.
WeeWX ist eine frei verfügbare Wettersoftware. Sie wurde von Tom Keffer und Matthew Wall geschrieben und wird von einer Gruppe aktiver Programmierer aus der ganzen Welt weiterentwickelt. Für viele Wetterstationen und Meßhardware gibt es Treiber. Auch Sensoren, die nichts mit Wetterstationen zu tun haben, können eingebunden werden, zum Beispiel von der Heizung oder der Solaranlage. Die Meßwerte werden in einer erweiterbaren Datenbank gespeichert.
Die Datenerfassung ist das eine, die Darstellung ist das andere. WeeWX erlaubt dem Nutzer die Erstellung eigener Visualisierungen (Skins genannt). Das hat viele Nutzer angeregt, und es stehen zahlreiche Varianten zur Verfügung, auch für den, der sich nicht in die Webprogrammierung einarbeiten will. Werte können als Zahlenwerte und in Form von Graphiken dargestellt werden.
WeeWX ist in der Programmiersprache Python geschrieben und damit praktisch betriebssystemunabhängig. Es kann unter jedem Betriebssystem installiert werden, für das ein Python-Interpreter verfügbar ist, darunter Linux, MacOS und Windows. Als Datenbank können SQLITE und MySQL genutzt werden.

Skin "Seasons"

Skin "Belchertown"
Wesentliche Eigenschaften:
- arbeitet mit vielen Wetterstationsfabrikaten zusammen
- ermöglicht die Datenübertragung (Upload) an viele Wetternetzwerke, darunter Wetternetz Sachsen, Regionalwetter Sachsen-Anhalt, Windy, AWEKAS, AerisWeather (PWSweather) u.a.
- Installationspakete für Debian (Ubuntu), Red Hat (CentOS) und SuSE
- Upload auf eigenen Webspace
- Mond- und Sonnendaten (Aufgang, Untergang, Ereignisse)
- Unterstützung für unterschiedliche Visualisierungen, genannt skin (Auch der Nutzer selbst kann Visualisierungen gestalten.)
- Daten können sowohl mit SQLITE als auch mit MySQL gespeichert werden
- kompatibel sowohl mit Python 2 als auch mit Python 3
- systematische Meßabweichungen können mit Kalibrierungswerten ausgeglichen werden
- Filterung unlogischer Werte
- einfache, leicht verständliche Micro-Kernel-Architektur
- umfangreiche Erweiterbarkeit mit Treibern, Visualisierungen, Berechnungen
- eine Support-Gruppe auf Google, die bei Problemen hilft
Informationsquellen zu WeeWX
Nachfolgend sind einige häufige Themen zusammengestellt:
Installationsanleitung für Debian, Ubuntu und Raspberry Pi
Diese Anleitung gilt für Linux-Distributionen, die zur Paketverwaltung DEB-Pakete verwenden. Dazu zählen neben Debian selbst u.a. Ubuntu und seine Ableger, Mint und Raspbian. Anleitungen für andere Linux-Distributionen und macOS finden Sie hier (englisch).
Zuerst muß der WeeWX-Server als vertrauenswürdige Paketquelle definiert werden. Bitte den Bindestrich am Ende nicht vergesssen. Das Zeichen hinter dem 'q' ist der Buchstabe 'O'.
wget -qO - https://weewx.com/keys.html | sudo apt-key add -
Ab Debian 10 mit Python 3:
wget -qO - https://weewx.com/apt/weewx-python3.list | sudo tee /etc/apt/sources.list.d/weewx.list
Bis Debian 9 mit Python 2:
wget -qO - https://weewx.com/apt/weewx-python2.list | sudo tee /etc/apt/sources.list.d/weewx.list
Installation:
sudo apt-get update sudo apt-get install weewx
Während der Installation werden die wesentlichen Parameter der Station abgefragt. Danach läuft WeeWX bereits im Hintergrund als Dienst (daemon). Weitere Einstellungen können dann durch Editieren der Konfigurationsdatei /etc/weewx/weewx.conf vorgenommen werden. Nach Änderungen an der Datei muß WeeWX neu gestartet werden:
sudo /etc/init.d/weewx stop sudo /etc/init.d/weewx start
Einstellungen für Davis Vantage Pro 2
Da die Wetterstation Davis Vantage Pro 2 sehr weit verbreitet ist und häufig eingesetzt wird, sollen hier ein paar Hinweise extra für sie gegeben werden. Zur Übertragung der Wetterdaten auf den Computer gibt es für diese Wetterstation vier verschiedene Hardware-Varianten, für die unterschiedliche Treiber verwendet werden müssen.
Mit dem Treiber "Vantage" aus dem Lieferumfang von WeeWX werden angesprochen:
- WeatherLink Serial-Port Data Logger 6510SER (Adapter mit serieller Schnittstelle (RS232, V.24) zum Einbau in die Konsole)
- WeatherLink USB Data Logger 6510USB (USB-Adapter zum Einbau in die Konsole)
- WeatherLink IP 6555 (Ethernet-Adpater zum Einbau in die Konsole; wird nicht mehr hergestellt)
Ein extra zu installierender Treiber ist nötig für:
- WeatherLinkLive 6100EU als eigenständiges Gerät mit Ethernet-Anschluß
Es gibt mehrere Treiber, die für das WeatherLinkLive 6100 gedacht sind. Mir bekannt sind die folgenden Treiber:
- grebleem: WeatherLink Live UDP - Collect data from Davis WeatherLink Live (with 2.5s UDP updates)
- Drealine: WeatherLink Live - Collect data from Davis WeatherLink Live including archive from Weatherlink.com when data is lost. (Erfordert einen kostenpflichtigen Account bei Davis)
- Michael Schantl: WeatherLink Live - Collect data from Davis WeatherLink Live using both polling and UDP broadcast API. Supports any combination of sensors and transmitters.
- jonotaegi: WeatherLink Live WLL - Collect data from Davis WeatherLink Live devices (Es scheint so, als ob dieser Treiber gegenwärtig nicht gepflegt wird.)
WeeWX unter Windows
Die weitaus meisten WeeWX-Installationen werden wohl unter Linux laufen. Linux ist das typische Betriebssystem für kleine technische Anwendungen. Ein in fast jedem Haushalt vorhandenes Beispiel ist die Fritz-Box von AVM, die die Verbindung zum Internet herstellt. Da es mit Installationen unter Linux viel mehr Erfahrung gibt, wird man dafür auch viel mehr Hilfe erfahren können.
Schritt 1: Installation von Python
Gleichwohl, wer WeeWX partout unter Windows laufen lassen will, benötigt zunächst einen Python-Interpreter für dieses Betriebssystem. Den gibt es als Installationspaket hier. Bei der Installation muß "Add Python to PATH" ausgewählt werden, damit Windows das Programm später auch findet.
Schritt 2: Installation der nötigen Python-Module
Als nächstes müssen die nötigen Python-Module mittels pip installiert werden. Dazu öffnen Sie ein Terminalfenster (Kommandofenster) und führen diese Befehle der Reihe nach aus:
python3 -m pip install configobj python3 -m pip install Cheetah3 python3 -m pip install Pillow python3 -m pip install pyephem python3 -m pip install pyserial python3 -m pip install pyusb
Schritt 3: Installation von WeeWX
Da es für Windows kein vorgefertigtes WeeWX-Paket gibt, erfolgt die Installation mittels setup.py. Dazu muß das Quellpaket unter https://weewx.com/downloads/ heruntergeladen und entpackt werden. Das Entpacken gelingt mittels WinZIP oder einem ähnlichen Entpacker. Anschließend muß die Datei setup.cfg mit einem Editor geöffnet und dort der Installationspfad eingetragen werden. Zum Schluß startet man die Installation in einem Terminalfenster mit:
python3 setup.py install
Schritt 4: Installation von Treibern und Erweiterungen
Bei den einzelnen Erweiterungen gibt es jeweils eine Installationsanleitung. Sie gilt im Grundsatz auch für Windows. Zuerst ist das Paket herunterzuladen. Dann wird es mit dem folgenden Befehl in einem Terminalfenster installiert:
python3 wee_extension --install Dateiname
Hinweis: Leider fehlt auch mir die praktische Erfahrung, so daß dieser Abschnitt nur die grundsätzliche Vorgehensweise beschreiben kann.
Regen in mm und Wind in km/h
WeeWX kennt zwei metrische Einheitensysteme, METRIC und METRICWX. Leider verwenden beide nicht die in Deutschland übliche Kombination der Maßeinheiten für Regen in mm und Wind in km/h. Das kann aber individuell in weewx.conf eingestellt werden.
Einheiteneinstellung bis Version 4.5
Einstellung einheitlich für alle Skins:
[StdReport] ... [[Defaults]] [[[Units]]] [[[[Groups]]]] group_rain = mm group_rainrate = mm_per_hour group_speed = km_per_hour
Diese Einstellung kann auch individuell bei jeder einzelnen Skin in derselben Weise getroffen werden. Außerdem kann diese Einstellung in skin.conf vorgenommen werden.
Einheiteneinstellung ab Version 4.6
Ab Version 4.6 ermöglicht WeeWX, das Einheitensystem für die Anzeige bei der Skin-Konfiguration direkt auszuwählen. Es ist nicht mehr nötig, jede Größe einzeln auf metrische Einheiten einzustellen. Dies erleichtert die Konfiguration deutlich, aber Änderungen der Einheit für einzelne Größen müssen dadurch anders konfiguriert werden.
[StdReport] ... [[zu konfigurierender Report]] ... unit_system = METRIC [[[Units]]] [[[[Groups]]]] group_rain = mm group_rainrate = mm_per_hour group_speed = km_per_hour
Die Einstellung muß für jede Skin einzeln vorgenommen werden.
Zeitspannen für Diagramme und Zusammenfassungen
Konfigurationsoptionen wie etwa aggregate_interval verlangen die Angabe einer Zeitspanne in Sekunden. Monate und Jahre haben aber nicht immer dieselbe Länge. Selbst der Tag hat eine abweichende Länge, wenn die Sommerzeit beginnt oder endet. Daher kann man die Länge nicht einfach in Sekunden angeben. WeeWX verwendet an der Stelle spezielle Zahlenwerte, die nicht als Sekunden sondern als Zeitspannen mit besonderer Bedeutung interpretiert werden. Diese Werte sind in der folgenden Tabelle aufgeführt.
Zeitspanne | Englisch | einzutragender Wert | Berechnung | Länge |
---|---|---|---|---|
Stunde | hour | 3600 | 60 * 60 | Schaltsekunden werden nicht berücksichtigt |
Tag | day | 86400 | 24 * 3600 | Standard 86400s, Sommerzeitumstellung 82800s oder 90000s |
Woche | week | 604800 | 7 * 86400 | 7 Tage |
Monat | month | 2629800 | 365,25 / 12 * 86400 | 28, 29, 30 oder 31 Tage |
Jahr | year | 31557600 | 365,25 * 86400 | Normaljahr 365 Tage, Schaltjahr 366 Tage |
An manchen Stellen können die englischen Wörter anstelle der Zahlenwerte verwendet werden, an anderen wiederum nicht.
Formatierung von Werten in Skins
Wie Werte grundsätzlich formatiert werden sollen, kann man in der Konfiguration im Abschnitt "Units" einstellen. Das geht sowohl in weewx.conf als auch in skin.conf. Möchte man im Einzelfall davon abweichen, ist der Weg nicht immer so offensichtlich. Das Konfigurationshandbuch beschreibt es zwar, aber nicht in allen Details. Dieser Abschnitt ergänzt Besonderheiten.
Allgemeine Regeln
Grundsätzlich kann man überall eine Formatierungsanweisung anhängen. Der allgemeine Aufbau ist wie folgt:
.format(format_string=None, None_string=None, add_label=True, localize=True)
Im Parameter "format_string" steht die von den Programmiersprachen C und auch Python bekannte mit dem Prozentzeichen beginnende Codierung. Beispiele sind:
- "%s": Standardformat für den betreffenden Datentyp
- "%.1f": reelle Zahl mit einer Nachkommastelle
- "%02d": ganze Zahl mit zwei Stellen und ggf. führender Null
Zeitstempel, Datum, Uhrzeit
Für Werte mit den Einheiten "unix_epoch", "unix_epoch_ms" und "unix_epoch_ns" gibt es spezielle Platzhalter:
%a | %A | %d | %m | %b | %B | %Y | %H | %M | %S |
Wochentag abgekürzt | ausgeschrieben | Tag | Monat als Zahl | abgekürzt | ausgeschrieben | Jahr | Stunde | Minute | Sekunde |
Beispiele:
Der GTS-Frühlingsanfang war am $current.GTSdate.format("%d.%m.%Y"). Die aktuelle Uhrzeit ist $current.dateTime.format("%H:%M:%S"). Heute ist $current.dateTime.format("%A").
Werte des Typs group_deltatime
Werte des Typs group_deltatime werden immer aufgegliedert in die Komponenten Tag, Stunde, Minute und Sekunde ausgegeben. Die normalen Formatierungs-Strings funktionieren deshalb hier nicht. Stattdessen muß man nach dem Prozentzeichen den Namen der gewünschten Komponente in runden Klammern angeben. Zum Beispiel:
.format("%(hour)d:%(minute)02d:%(second)02d")
Folgende Kennungen können benutzt werden: day hour minute second day_label hour_label minute_label second_label. Wenn "day" fehlt, werden die Tage den Stunden zugeschlagen.
WeeWX-Installation der Wetterstation Wöllsdorf
Grundinstallation
- WeeWX 4.10.2
- Treiber: WeatherLinkLiveUDP
-
Skin:
Belchertown-Skin 1.3b1
(dazu den MQTT-Broker Mosquitto)
Uploader für Wetternetzwerke
Andere Erweiterungen
- MQTTSubscribe (Empfang von MQTT-Nachrichten)
- MQTT (Veröffentlichung der Wetterdaten per MQTT)
- GTS (Sonnenenergie, Grünlandtemperatursumme)
- DWD (Vorhersage und Warnungen des Deutschen Wetterdienstes)
- airQ (Luftqualität)
- photovoltaics (Solaranlage)
- SNMP (Abfragen von Meßwerten per SNMP)
- Funktionsüberwachung (Monitoring)
- weathericons (Wettersymbole im SVG-Format, skalierbar)
- PrecipMeter (Distrometer, Gerät zur Bestimmung von Niederschlagsart und -menge)