WeeWX und Multiple Bindings

Für allgemeine Software
Antworten
MoebiusMinor
Offline
Beiträge: 17
Registriert: 30 Okt 2022, 12:27

WeeWX und Multiple Bindings

#1

Beitrag von MoebiusMinor »

Hallo an alle!

Ist es möglich, WeeWX so zu konfigurieren, dass es das Datenlogging auf zwei Servern parallel betreibt? Hintergrund ist, dass ich WeeWX auf einem Raspi laufen habe. Die Datenbank ist dort MariaDB 10. Das Logging klappt wunderbar. Jetzt habe ich aber auch einen extern DB-Server, zu dem ich eine direkte Mysql-Verbindung aufbauen kann. WeeWX soll in beide Datenbanken parallel das selbe schreiben, quasi redundante Datenhaltung. Schließlich kann die MicroSD im Raspi schnell mal den Geist aufgeben.

Es gibt da eine Anleitung zu multiplen Bindings aber da scheint es nur darum zu gehen, mehrere unabhängige Datenbanken für die Template-Engine verfügbar zu machen. Also eine n:1 Zuordnung. Ich möchte es aber gerne umgekehrt, eine 1:n Zuordnung.

Danke und Grüße!
Benutzeravatar
Gyvate
Offline
Beiträge: 2479
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 375 mal
Kontaktdaten:

Re: WeeWX und Multiple Bindings

#2

Beitrag von Gyvate »

was auf jeden Fall funktioniert ist eine Multi-Instanz Installation. D.h. zwei weewx Installationen gleichzeitig, parallel auf dem Server laufen zu lassen, und die eine in die eine und die andere in die andere Datenbank archivieren lassen.
Dazu gibt es auf GitHub eine entsprechende Anleitung.
Ich selbst habe drei Instanzen auf einem RPi4B-8 GB laufen und drei unterschiedliche Datenbanken, wobei es ja egal ist, ob die Datenquelle verschieden ist oder dieselbe ist.
Da weewx z.B. im 5-Minuten Intervall immer auf die vollen 5 Minuten abspeichert (archiviert), würden bei einem solchen Szenario das Abspeichern zeitgleich parallel erfolgen.

Wenn die microSD in weewx ihren Geist aufgibt, wird allerdings auch weewx nicht weiter abspeichern .... trotz Redudanz.
Und eine Datensicherung würde ich (habe ich auch) anders organisieren (organisiert).

Ich schreibe/kopiere z.B. alle 5 Minuten die weewx DBs auf ein externes Medium (am USB-Port angeschlossene USB HDD). Alle zwei Tage werden die Backups automatisch um Mitternacht bereinigt und nur das Mitternachtsbackup der vergangenen Tage aufgehoben, um einen Überlauf der (2 TB) Festplatte zu vermeiden.

In Deinem Fall würde ein alle 5 Minuten laufender Cron-Job, der die DB kopiert, sicherer sein, denn ein weewx-Absturz könnte im ungünstigen Fall Dir beide Datenbanken "zerschiessen" - und dann hast Du zwei redundante korrupte Datenbanken, was wahrscheinlich nicht der Sinn der Übung ist.

Dein Ansatz ist ein verteilter RAID1 Ansatz, der aber nicht unbedingt vor Datenkorruption schützt. Und ich denke, dass es darum geht, im Fehlerfall eine fehlerfreie Datenbankkopie zu haben. RAID-Konfigurationen haben nichts mit Datensicherung zu tun - das ist ein weit verbreitetes Missverständnis.

Wenn sich die MariaDB nicht so einfach online kopieren lässt, kannst Du ja z.B. für die zweite Instanz eine SQLite Datenbank benutzen; die lässt sich online problemlos kopieren.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
MoebiusMinor
Offline
Beiträge: 17
Registriert: 30 Okt 2022, 12:27

Re: WeeWX und Multiple Bindings

#3

Beitrag von MoebiusMinor »

Hallo Gyvate,

die Datensicherung habe ich auch so ähnlich gelöst wie du, nur nicht ganz so ausgefeilt wie bei dir mit dem Roundrobin-Backup. Mein Anliegen hat einen anderen Zweck. Erstmal denke ich haben die Daten für dich eine größere Bedeutung als für mich. Das heißt, wenn mir der RPi mal abraucht und WeeWX eine Weile nichts aufzeichnet, ist das bei mir zwar doof aber kein Drama. Ich betreibe das nur als Hobby Just for Fun. Zweitens ist die Online-Anbindung nicht als Backup gedacht. Vielmehr will ich die Datenbank dort für Darstellungszwecke nutzen. Bisher habe ich dafür über eine DynDNS-Verbindung vom Online-Server auf meinen RPi zu Hause zugegriffen. Aber das ist mir A) zu unsicher und B) nicht performant genug.

Weil ich gerne selbst was code ist mir das Korsett das mir das WeeWX-eigene Templatesystem anlegt, viel zu eng. Dynamische SVGs zum Beispiel bieten tolle Möglichkeiten, Wetterdaten zu visualisieren und weil auf XML basierend, auch scriptbar. Als Vektorgrafik kannst du die auf jeder beliebigen Bildschirmgröße und -auflösung knackscharf darstellen. Trends lassen sich mit ChartJS prima interaktiv darstellen. Das geht sicherlich auch "irgendwie" mit den WeeWX Templates, aber einen Restful Service bekommt man damit nicht hin.

Unten habe ich mal Screenshots von meinem (noch seeeehr frühen) Prototypen im Responsive Design unter verschiedenen Bildschirmgrößen angehängt. Die einzelnen Panels laden ihre XY-Daten jeweils per REST-Call asynchron, das spart im Vergleich zu statischen HTML-Templates eine Menge Traffic. Selbst direkt vom RPi-Webserver lädt sich das sehr fluffig :-)
Dateianhänge
Bildschirmfoto vom 2022-12-13 18-52-59.png
Bildschirmfoto vom 2022-12-13 18-52-59.png (106.55 KiB) 498 mal betrachtet
Bildschirmfoto vom 2022-12-13 18-49-33.png
Bildschirmfoto vom 2022-12-13 18-49-33.png (194.9 KiB) 498 mal betrachtet
Benutzeravatar
Gyvate
Offline
Beiträge: 2479
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 375 mal
Kontaktdaten:

Re: WeeWX und Multiple Bindings

#4

Beitrag von Gyvate »

sieht ja sehr hübsch aus :thumbup:

und
1. eine korrupte Datenbank ist "doof", da oft nicht nur die Daten ab Unterbrechung fehlen, sondern ggf. die ganze DB verhunzt ist
2. die multi-instance Lösung würde ja (unabhängig vom Backup) für Dich passen, solange es sich um ein von weewx unterstütztes Datenformat handelt. Standardauswahl sind sqlite und MySQL.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Antworten