Verwendung des erweiterten Datenbankschemas in weewx


Software • by Sven Reifschneider • 01 April 2021 • 0 comments
#weewx #anleitung
info
This post is also available in English. Read in English

Fehlen Ihnen Daten in Ihren Berichten?

Oder haben Sie neue Sensoren und die Daten werden nicht angezeigt?

Falls Sie weewx schon länger benutzen oder es nicht richtig konfiguriert haben, könnten Ihre Daten im "alten" Standarddatenbankschema gespeichert sein.

Während der Entwicklung unseres neuesten weewx-Skins, NeoWX Material, haben wir alle verfügbaren Sensoren in diesen Skin eingefügt. Einige Werte werden durch Software berechnet, wie z.B. die Wolkenbasis oder der Windchill-Faktor. Der Windchill-Faktor wurde problemlos angezeigt, aber wir konnten die Wolkenbasis nicht darstellen.

Nach vielen Suchen und ein wenig Fehlersuche haben wir den Übeltäter dieses merkwürdigen Fehlers gefunden.

Wir benutzten das Standarddatenbankschema von weewx. Dies ist für die meisten Sensoren ausreichend, aber vor allem weniger gebräuchliche Sensoren oder neuere Werte wurden nicht in der Datenbank gespeichert und konnten daher nicht angezeigt werden.

Mit der Version 4 von weewx wurde ein neues Datenbankschema eingeführt.

->> Anwendung bei einer neuen Installation

Wenn Sie weewx für eine neue Wetterstation installieren und keine alten Daten haben, müssen Sie weewx nur so verwenden, wie es in der weewx-Dokumentation beschrieben ist.

Wie Sie in der weewx.conf Datei in Zeile 535 (Version 4.4.0) sehen können, ist das Standarddatenbankschema nun das erweiterte. Es wird also automatisch verwendet.

Ein kleiner Hinweis zum verwendeten Datenbanksystem:

Bitte nehmen Sie sich die Zeit und richten Sie eine MySQL / MariaDB-Datenbank für weewx ein. Eine echte Datenbank funktioniert viel besser und bietet Ihnen mehr Möglichkeiten, insbesondere wenn Sie Wetterdaten über einen langen Zeitraum speichern möchten, so wie wir. SQLite hat zu viele Einschränkungen für diesen Zweck.

->> Migration einer bestehenden weewx-Installation

Dies ist der häufigste Fall. Sie haben bereits viele Daten in Ihrer Datenbank und Ihr weewx läuft bereits seit geraumer Zeit. Wahrscheinlich schon seit Version 3 oder früher, was auch der wahrscheinlichste Grund für dieses Problem ist.

Im Grunde genommen verwenden Sie einfach ein weewx-Hilfsprogramm, das eine neue Datenbank mit dem neuen erweiterten Schema erstellt und dann alle Ihre Daten migriert.

Wir haben dafür MySQL verwendet. Wenn Sie derzeit eine SQLite-Datenbank verwenden, lesen Sie bitte die Transferoption von wee_database, um herauszufinden, wie Sie Ihre Daten von SQLite zu MySQL / MariaDB übertragen können.

|> Schritt 1: Vorbereitung von weewx

Zuerst sollten Sie weewx auf die neueste Version aktualisieren.

Dann stoppen Sie weewx. Abhängig von Ihrem System könnte dies so etwas sein wie systemctl stop weewx.

Wenn Sie eine neue, saubere weewx.conf erstellen möchten, können Sie Ihre aktuelle weewx.conf verschieben und wee_config ausführen, um eine neue zu erstellen. Dann müssen Sie nur noch einige Parameter anpassen, die Sie leicht aus Ihrer verschobenen weewx.conf kopieren können.

Weitere Informationen finden Sie in den wee_config Dokumentationen.

In diesem Fall sollte das erweiterte Schema automatisch eingestellt werden.

Wenn Sie Ihre weewx.conf behalten wollen, öffnen Sie sie und scrollen Sie zum Ende. In der Standard weewx.conf ist dies Zeile 535.

Im Abschnitt [DataBindings] finden Sie den Unterabschnitt [[wx_binding]], wo das Schema am Ende eingestellt ist.

Aktualisieren Sie diese Zeile zu: schema = schemas.wview_extended.schema. Dies stellt das gewünschte erweiterte Datenbankschema ein.

|> Schritt 2: Vorbereitung der Datenbank

Weewx wird eine neue Datenbank erstellen. Dies wird der Name Ihrer aktuellen Datenbank mit einem _new Suffix sein.

In den meisten Fällen wird die bestehende Datenbank weewx in die neue Datenbank weewx_new migriert.

Weewx benötigt die richtigen Berechtigungen, um mit der neuen Datenbank zu arbeiten. Gewähren Sie die Berechtigungen in SQL:

GRANT select, update, create, delete, insert ON weewx_new.* TO weewx@localhost;

Je nach Ihrer Einrichtung müssen Sie vielleicht den Datenbanknamen weewx_new, den weewx Datenbankbenutzer weewx oder den Host ändern. Vergessen Sie nicht, die Berechtigungen mit FLUSH PRIVILEGES; zu aktualisieren.

Jetzt kann weewx die neue Datenbank erstellen und die ganze Arbeit erledigen.

|> Step 3: Ausführung von wee_database

Weewx bietet ein sehr nützliches Werkzeug, genannt wee_database.

Wenn Sie weewx über einen Paketmanager installiert haben, wird dieser Befehl wahrscheinlich in Ihrem $PATH sein. In anderen Fällen befindet sich dieser meistens in /home/weewx/bin/wee_database.

Mit diesem Tool können wir leicht die neue Datenbank erstellen und alle Daten übertragen. Sehen Sie sich die oben verlinkte Dokumentation an für weitere Informationen und andere Optionen, die dieses Tool bietet.

Um diese Aufgabe zu erledigen, werden wir die Datenbank "neu konfigurieren". Wie die Hilfe sagt:

--reconfigure  Create a new database using configuration information
               found in the configuration file. In particular, the
               new database will use the unit system found in option
               [StdConvert][target_unit]. The new database will have
               the same name as the old database, with a '_new' on
               the end.

Der Befehl lautet somit: wee_database --reconfigure

Je nach Umfang Ihrer Daten kann dieser Vorgang eine Weile dauern. Dank unserer Davis Vantage Vue werden die Daten häufig aktualisiert. Wir haben uns dazu entschieden, alle Minute einen neuen Datensatz hinzuzufügen, was fast 2 Millionen Einträge zur Folge hatte. Die gesamte Migration dauerte etwa 30 Minuten auf unserem Server.

|>Schritt 4: Festlegen der neuen Datenbank

Jetzt, da alle Daten migriert sind, stellen wir die neue Datenbank als unsere primäre in weewx ein.

Sie können einfach die neue und alte Datenbank umbenennen oder Ihre weewx.conf aktualisieren.

Um den Namen der Datenbank festzulegen, gehen Sie zum Abschnitt [Databases], zum Unterabschnitt [[archive_mysql]] und setzen database_name = weewx_new. Dies ist in Zeile 550.

|> Schritt 5: Tageszusammenfassungen neu erstellen

In der neuen Datenbank fehlen die Tageszusammenfassungen.

Sie können diese leicht über wee_database erstellen, indem Sie wee_database --rebuild-daily ausführen.

|> Schritt 6: Weewx erneut starten

Jetzt müssen Sie nur noch weewx erneut starten. Wenn alles funktioniert hat, wird weewx alle fehlenden Datensätze zur neuen Datenbank hinzufügen und dann wie zuvor arbeiten. Nur mit einer größeren Datenbank.

|> Schritt 7: Optional die alte Datenbank löschen

Wir empfehlen immer, die Datenbank für eine längere Zeit zu behalten. Falls etwas schiefgegangen ist, können Sie Ihre alten Daten leicht wiederherstellen. Sie müssen nur Ihre weewx-Konfiguration anpassen.

Nach einiger Zeit können Sie Speicherplatz freigeben und die Datenbank entfernen.

|> Schritt 8: Verwendung unseres neuen Material-Skins

Wenn Sie all Ihre frischen, neuen Daten nutzen und auf eine schöne Weise anzeigen möchten, schauen Sie sich bitte unseren neuesten weewx-Skin an, NeoWX Material.

Dieser Skin hat viele Funktionen, einschließlich interaktiver Diagramme, eines großen Almanachs, einer separaten Telemetrie Seite und viele Optionen. Die Dokumentation zeigt Ihnen alle verfügbaren Einstellungen.

Title image by NOAA


Sven
About the author

Sven Reifschneider

Greetings! I am the founder and CEO of Neoground GmbH, an IT visionary and passionate photographer. On this blog, I share my expertise and enthusiasm for innovative IT solutions that propel companies forward in the digital age, intertwined with my passion for the visual, unveiling a universe where pixels and aesthetics coexist harmoniously.

Rooted in the picturesque Wetterau near Frankfurt with a perspective that reaches beyond the horizon, I invite you to join me in exploring the facets of digital transformation and the latest technologies. Are you ready to take the next step into the digital future? Follow the path of curiosity and let's shape innovations together.



->> No comments yet

Add a comment

You can use **Markdown** in your comment. Your email won't be published. Find out more about our data protection in the privacy policy.