Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wiki:software:weewx [2023/06/30 07:06] Gyvatewiki:software:weewx [2025/02/08 18:08] (aktuell) Gyvate
Zeile 1: Zeile 1:
 ===== WeeWX ===== ===== WeeWX =====
 +**//letzte Änderung: 08. Februar 2025//** \\ 
 ''WeeWX'' ist eine quelloffene und freie Wetterstationssoftware für Linux, Mac OS X und Solaris. Geschrieben ist die Software in Python. Hauptautor ist Tom Keffer, wichtige Mitentwickler sind Matthew Wall und Gary Roderik. Auf GitHub gibt es viele Treiber und Erweiterungen von verschiedenen Autoren. Häufig wird WeeWX zum Auslesen von Daten über einen Raspberry Pi genutzt. Es läuft auch in der WSL2 (Windows Subsystem for Linux) Umgebung von Windows 10 und 11. Ebenfalls gibt es erfolgreiche Installationen auf NAS-Servern mit z.B. Ubuntu-Docker-Containern oder Ubuntu-LXC Containern. ''WeeWX'' ist eine quelloffene und freie Wetterstationssoftware für Linux, Mac OS X und Solaris. Geschrieben ist die Software in Python. Hauptautor ist Tom Keffer, wichtige Mitentwickler sind Matthew Wall und Gary Roderik. Auf GitHub gibt es viele Treiber und Erweiterungen von verschiedenen Autoren. Häufig wird WeeWX zum Auslesen von Daten über einen Raspberry Pi genutzt. Es läuft auch in der WSL2 (Windows Subsystem for Linux) Umgebung von Windows 10 und 11. Ebenfalls gibt es erfolgreiche Installationen auf NAS-Servern mit z.B. Ubuntu-Docker-Containern oder Ubuntu-LXC Containern.
  
Zeile 9: Zeile 9:
 Da nicht jeder der Englischen Sprache und insbesondere des Wetter- und IT-Jargons mächtig ist, nachstehend eine Zusammenfassung in Deutsch. Da nicht jeder der Englischen Sprache und insbesondere des Wetter- und IT-Jargons mächtig ist, nachstehend eine Zusammenfassung in Deutsch.
  
-Weewx liest mit Hilfe entsprechender Treiber (hardware-, wetterstationsabhängig) die Sensordaten ("observations") aus, verarbeitet bzw. verdichtet diese Daten und speichert sie ("archiving") in einem vom Benutzer definierten Zyklus in einer Datenbank (SQLite oder mySQL) ab. Der Standardwert sind 300 Sekunden = 5 Minuten. Die abgespeicherten Daten können auf einer (oder mehreren) Web-Browserseite(n) [weewx Name: skin] dargestellt werden, und zwar sowohl als Tabellen als auch als grafische Verläufe. Es gibt eine Vielzahl solcher Skins, für die die entsprechenden Daten und ihre Darstellung, auch parallel, im Archivierungsrhytmus erzeugt werden. Die weewx Standard-Skin ist die sogenannte Seasons-Skin. Zusätzlich gibt es auch die Möglichkeit, mit Hilfe von MQTT eine quasi Echtzeitdarstellung der aktuellen Daten zu ermöglichen (--> Belchertown Skin). +Weewx liest mit Hilfe entsprechender Treiber (hardware-, wetterstationsabhängig) die Sensordaten ("observations") aus, verarbeitet bzw. verdichtet diese Daten (Loop) und speichert sie ("archiving") in einem vom Benutzer definierten Zyklus in einer Datenbank (SQLite oder mySQL) ab. Der Standardwert sind 300 Sekunden = 5 Minuten. Die abgespeicherten Daten können auf einer (oder mehreren) Web-Browserseite(n) [weewx Name: skin] dargestellt werden, und zwar sowohl als Tabellen als auch als grafische Verläufe. Es gibt eine Vielzahl solcher Skins, für die die entsprechenden Daten und ihre Darstellung, auch parallel, im Archivierungsrhytmus erzeugt werden. Die weewx Standard-Skin ist die sogenannte Seasons-Skin. Zusätzlich gibt es auch die Möglichkeit, mit Hilfe von MQTT eine quasi Echtzeitdarstellung der aktuellen Daten zu ermöglichen (--> Belchertown Skin). \\  
 +\\ Hinweis für "Spezialisten": Auch Daten, die der eingesetzte Treiber (z.B. Ecowitt Gateway, Interceptor etc.) bereitstellt, die aber nicht abgespeichert/archiviert werden, da es dafür keine Felder in der Datenbank gibt, können als jeweils aktuelle Daten beim Erstellen des Reports dargestellt werden ($current). Intern führt weewx zwei Tabellen (Python Begriff: dictionaries), die zur Laufzeit die Loop-Daten und die aktuellen vom Treiber bereitgestellten Archiverungsdaten enthalten (einschließlich der Daten, die nicht in die Datenbank geschrieben werden). Man kann natürlich auch die Datenbank um entsprechende Felder erweitern bzw. nicht benutzte Felder verwenden ("zweckentfremden" - Englisch: repurpose, eine neue Bedeutung geben bzw. anderweitig benutzen)
 \\  \\ 
-\\ Mittlerweile (Mai 2023) liegt weewx in der Version 4.10.2 vor. Bereits in 4.7.0 erfuhr insbesondere die Season-Skin (s.u.) eine weitgehende Überarbeitung hinsichtlich automatischem Auffinden und Darstellen von Sensoren und auch in ihrer Arbeitsweise. Sie ähnelt jetzt sehr der bereits von neoground in ihrer jüngsten Version der neowx-Skin benutzten Arbeitsweise. Die "alten" Skins (bis 4.6.0) sind weiterhin verwendbar, allerdings muss man sie getrennt installieren, d.h. von der neuen Skin getrennt halten (in einem eigenen ggf. umbenannten Skin-Verzeichnis).+\\ Mittlerweile (Mai 2023) liegt weewx in der Version 4.10.2 vor. Bereits in 4.7.0 erfuhr insbesondere die Season-Skin (s.u.) eine weitgehende Überarbeitung hinsichtlich automatischem Auffinden und Darstellen von Sensoren und auch in ihrer Arbeitsweise. Sie ähnelt jetzt sehr der bereits von neoground in ihrer jüngsten Version der neowx-Skin benutzten Arbeitsweise. Die "alten" Skins (bis 4.6.0) sind weiterhin verwendbar, allerdings muss man sie getrennt installieren, d.h. von der neuen Skin getrennt halten (in einem eigenen ggf. umbenannten Skin-Verzeichnis - die Nutzung erfolgt über einen HTML_ROOT =   Verweis in weewx.conf). Die Skin-Konfigurations- und Präsentationsdateien skin.conf und und index.html.tmpl ab Version 4.7 sind sehr stark parametrisiert. Das vereinfacht das Coding, allerdings auf Kosten der Übersichtlichkeit im Sinne von Verständnis, was wo geschieht, sofern man nicht ein "ausgebuffter" Python-Programmierer ist und die Meta-Sprache von Report- und Imagegenerator beherrscht. Insbesondere, wenn man eigene Anpassungen vornehmen will. 
 +Die nachstehenden Beispiele sind noch im "alten Stil".
 \\  \\ 
  
 \\ Die Froggit WH3000SE, WH4000SE, Ventus W830 und andere Klone der Ecowitt WS2320 und WH2910 können unter weewx mit dem Interceptor Treiber betrieben werden. (siehe auch: https://www.wetterstationsforum.info/wiki/doku.php?id=wiki:wetterstationen:ecowitt-stationen#custom_server) \\ Die Froggit WH3000SE, WH4000SE, Ventus W830 und andere Klone der Ecowitt WS2320 und WH2910 können unter weewx mit dem Interceptor Treiber betrieben werden. (siehe auch: https://www.wetterstationsforum.info/wiki/doku.php?id=wiki:wetterstationen:ecowitt-stationen#custom_server)
-\\ Für die HP2551/HP2553 Station (Froggit HP1000SE Pro) gibt es mittlerweile auch einen erweiterten Interceptor Treiber (https://www.pc-wetterstation.de/forum/viewtopic.php?f=26&t=10333) dank unseres Kollegen Werner Krenn.+\\ Für die HP2551/HP2553 Station (Froggit HP1000SE Pro) gibt es mittlerweile dank unseres Kollegen Werner Krenn auch einen erweiterten Interceptor Treiber (https://www.pc-wetterstation.de/forum/viewtopic.php?f=26&t=10333), mit dem sich alle vom Custom Server bereitgestellten Daten in der Seasons-Skin auswerten und darstellen lassen .
 \\ Für die Ecowitt GW1000, WH2650, GW1100, GW2000 und WN19x0 Konsolen (auch Gateways, Hubs genannt) gibt es den weewx Ecowitt Gateway Treiber (alter Name: GW1000 API Treiber), der die Daten direkt vom Konsolen-API ausliest. Das Abfrageintervall (Polling) z.B. alle 10 Sekunden wird in der weewx.conf eingetragen. \\ Für die Ecowitt GW1000, WH2650, GW1100, GW2000 und WN19x0 Konsolen (auch Gateways, Hubs genannt) gibt es den weewx Ecowitt Gateway Treiber (alter Name: GW1000 API Treiber), der die Daten direkt vom Konsolen-API ausliest. Das Abfrageintervall (Polling) z.B. alle 10 Sekunden wird in der weewx.conf eingetragen.
-\\ Der GW1000 API Treiber Version 0.(0.5.0b5 - September 2022) unterstützt auch den WS90 Kombisensor und die Möglichkeit, sowohl die Regendaten des WS90 (haptischer Regensensor, "piezo") als auch die eines gleichzeitig in der Konsole registrierten klassischen Regensensors parallel auszulesen. +\\ Der GW1000 API Treiber Version 0.63 (Dezember 2024) unterstützt auch den WS90 Kombisensor und die Möglichkeit, sowohl die Regendaten des WS90 (haptischer Regensensor, "piezo") als auch die eines gleichzeitig in der Konsole registrierten klassischen Regensensors parallel auszulesen. Er kennt noch nicht (Februar 2025) den LDS01 Laser Entfernungsmesser
-\\ Vorausssetzung für den WS90 auf Konsolenseite: Firmware 1.7.0 (GW1000, WH2650) bzw. Firmware 2.1.4 (GW1100 und GW2000).+\\ Vorausssetzung für den WS90 auf Konsolenseite: Firmware 1.7.0 (GW1000, WH2650, letzter Stand 1.7.7) bzw. Firmware 2.1.4 (GW1100 und GW2000).
  
 Nachstehend ein Beispiel der Seasons-Skin (erstellt mit weewx 4.5.3) - Grundlage: eine Ecowitt 2553 Station mit zusätzlichen Extra-Sensoren, die Sensor-Daten empfangen und verarbeitet von einem zusätzlichen Ecowitt GW1000 und von weewx auf einem Raspberry Pi 4 mit Hilfe des GW1000 API Treibers abgefragt und verarbeitet. Nachstehend ein Beispiel der Seasons-Skin (erstellt mit weewx 4.5.3) - Grundlage: eine Ecowitt 2553 Station mit zusätzlichen Extra-Sensoren, die Sensor-Daten empfangen und verarbeitet von einem zusätzlichen Ecowitt GW1000 und von weewx auf einem Raspberry Pi 4 mit Hilfe des GW1000 API Treibers abgefragt und verarbeitet.
 (Hierfür gibt es eine erweiterte Version von Gary Rodericks GW1000 0.4.1 API Treibers erstellt von Werner Krenn: https://www.pc-wetterstation.de/forum/viewtopic.php?f=26&t=10333; mittlerweile [April 2022] auch auf den WS90 erweitert. (Hierfür gibt es eine erweiterte Version von Gary Rodericks GW1000 0.4.1 API Treibers erstellt von Werner Krenn: https://www.pc-wetterstation.de/forum/viewtopic.php?f=26&t=10333; mittlerweile [April 2022] auch auf den WS90 erweitert.
-Mittlerweile gibt es auch den "offiziellen" GW1000 API Treiber in der Version 0.5.0, der ebenfalls den WS90 Sensor via GW1x00 und GW2000 beherrscht. s.o.)+Mittlerweile gibt es auch den "offiziellen" GW1000 API Treiber in der Version 0.6.3, der ebenfalls den WS90 Sensor via GW1x00 und GW2000 beherrscht. s.o.)
  
 Die Skin bietet links drei Tabellen - Current (=aktuelle Daten), darunter Sonnen- und Mondauf-/-untergangs-Daten, darunter die Min/Max Werte der ausgewählten Darstellung (Standard ist Tag, auswählbar sind auch Woche, Monat, Jahr - entsprechend auch die Grafiken) Die Skin bietet links drei Tabellen - Current (=aktuelle Daten), darunter Sonnen- und Mondauf-/-untergangs-Daten, darunter die Min/Max Werte der ausgewählten Darstellung (Standard ist Tag, auswählbar sind auch Woche, Monat, Jahr - entsprechend auch die Grafiken)
Zeile 54: Zeile 56:
 \\  \\ 
 Wenn man einen GW1000/DP1500 mit diesem Kombi-Aussensensor und dem weewx GW1000 API Treiber betreibt, muss man einen zusätzlichen Eintrag in der weewx.conf Datei machen, damit die Sonnenstrahlung angezeigt wird (das hat mit der Art und Weise zu tun, wie weewx Sensordaten verarbeitet; der GW1000 liefert nämlich Lichtstärkewerte, die erst in Solarstrahlung umgewandelt werden müssen). Das Gleiche gilt für die WH2650, GW1100, GW2000 und WN19x0 Konsolen, die alle das gleiche API besitzen. Wenn man einen GW1000/DP1500 mit diesem Kombi-Aussensensor und dem weewx GW1000 API Treiber betreibt, muss man einen zusätzlichen Eintrag in der weewx.conf Datei machen, damit die Sonnenstrahlung angezeigt wird (das hat mit der Art und Weise zu tun, wie weewx Sensordaten verarbeitet; der GW1000 liefert nämlich Lichtstärkewerte, die erst in Solarstrahlung umgewandelt werden müssen). Das Gleiche gilt für die WH2650, GW1100, GW2000 und WN19x0 Konsolen, die alle das gleiche API besitzen.
-\\ In der %%[StdCalibrate] [[Corrections]]%%-Stanza muss der Eintrag **radiation = luminosity/126.7 if luminosity is not None else None** hinzugefügt werden.+\\ In der %%[StdCalibrate] [[Corrections]]%%-Stanza der weewx.conf muss der Eintrag **radiation = luminosity/126.7 if luminosity is not None else None** hinzugefügt werden. 
 +<code> 
 +[StdCalibrate]  
 +   [[Corrections]] 
 +      radiation = luminosity/126.7 if luminosity is not None else None 
 +</code>
 \\     \\    
 \\  \\ 
Zeile 68: Zeile 75:
 \\          extraHumid1 = WH31 CH1 Gewächshaus \\          extraHumid1 = WH31 CH1 Gewächshaus
 \\          extraHumid2 = WH31 CH2 Kühlschrank \\          extraHumid2 = WH31 CH2 Kühlschrank
 +\\ 
 +\\ ab weewx > 5.0 gibt es alternativ die Möglichkeit, eine Sprachdatei für jede Skin anzulegen. Ist allerdings dann skin-spezifisch und muss beim Benutzen mehrerer Skin auch in jeder einzelnen skin.conf vorgenommen werden. Der weewx.conf Ansatz gilt programmweit, also auch skinübergreifend.
 +\\ für die deutsche Sprache kann man in /etc/weewx/skins/neowx-material/lang (Pfad ggf. abweichend je nach Installationsmethode) eine Textdatei de.conf hinterlegen und in der skin.conf einen Verweis in der (ggf. anzulegenden) Stanza [Extras] vornehmen.
 +<code>
 +[Extras]
 +    language = de
 +</code>
 +\\ Danke an @Werner für die Beispieldatei hier: **{{ :wiki:software:de.zip |de.conf}}**  (die muss zur Verwendung noch entpackt werden: de.zip --> de.conf - die WiKi-Software erlaubt keine Dateien mit .conf - Endung)
 +\\ 
   * in **skin.conf** müssen wir pro Sensor-Typ (Temperatur / Feuchtigkeit) je ein (oder zwei) Grafiken definieren, je nachdem ob wir die Werte zusammen in einer Zeichnung oder auf zwei Zeichnungen verteilt sehen wollen. Zusammen also entweder zwei Grafiken (je eine für Temperatur und Luftfeuchtigkeit - man kann nicht unterschiedliche Einheiten [°C und %] sinnvoll in einer Grafik darstellen) oder vier Grafiken. Diese Definition muss für alle Berichtszeiträume vorgenommen werden, also für Tag, Woche, Monat, Jahr. Für jeden dieser Zeiträume gibt es in skin.conf einen Abschnitt. Man legt die Einträge zunächst nur für den Tag an, und wenn die Darstellung passt, kann man die Einträge für die anderen Zeiträume durch +/- Kopieren vornehmen.   * in **skin.conf** müssen wir pro Sensor-Typ (Temperatur / Feuchtigkeit) je ein (oder zwei) Grafiken definieren, je nachdem ob wir die Werte zusammen in einer Zeichnung oder auf zwei Zeichnungen verteilt sehen wollen. Zusammen also entweder zwei Grafiken (je eine für Temperatur und Luftfeuchtigkeit - man kann nicht unterschiedliche Einheiten [°C und %] sinnvoll in einer Grafik darstellen) oder vier Grafiken. Diese Definition muss für alle Berichtszeiträume vorgenommen werden, also für Tag, Woche, Monat, Jahr. Für jeden dieser Zeiträume gibt es in skin.conf einen Abschnitt. Man legt die Einträge zunächst nur für den Tag an, und wenn die Darstellung passt, kann man die Einträge für die anderen Zeiträume durch +/- Kopieren vornehmen.
 \\  \\ 
  • Zuletzt geändert: 2023/06/30 07:06
  • von Gyvate