• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

WH3000SE + Raspberry + Apache + Perl + MySQL-Cluster = Meine Wetterstation

Begonnen von gmaniac, 16.11.2020, 18:00:31

⏪ vorheriges - nächstes ⏩

gmaniac

Hallo zusammen.

Ich bin neu im Wettergeschäft  :) Ich habe mir jüngst eine Froggit WH 3000 SE zugelegt. Schlicht einfach nur deshalb, weil ich jeden Morgen 40 KM mit dem Rad zur Firma fahre und abend wieder 40 KM zurück. Da will ich morgens schon, wenn ich vor dem Kleiderschrank stehe, wissen, was ich anziehen soll.

Tja .... das Ganze ist dann sehr schnell aus dem Ruder gelaufen.  :D

Die drei Displays sind nett, aber ich dachte, da muss noch mehr gehen und vor allem ohne den Ecowitt-Server.

Also habe ich mit Wireshark mal gelauscht, was die Display-Einheiten so über WLAN senden. Als ich feststellte, dass die ganzen Wetterdaten nur über simple HTML-POSTS gesendet werden, habe ich mich hingesetzt, einen RaspberryPI mit Apache und MySQL aufgesetzt, mir ein Perl-Skript geschrieben, das die Formulardaten entgegennimmt und eine der Displayeinheiten auf den Apache-Server bzw. das Perl-Skript umgeroutet. Ein paar weitere Berechnungen, die nicht von der Wetterstation kommen, wie zum Beispiel Taupunkt, gefühlte Temperatur, Sonnenauf- und Untergang, berechne ich mit Perl on the fly und schreibe sie in die MySQL-DB.

Als nächstes mussten die Daten, die da alle 30 Sekunden landen, aufbereitet werden. Am Anfang habe ich das Perl-Skript aufgebohrt, alle Graphen mit Perl-Modulen geschrieben, aber das sah einfach sehr oldschool aus.

Dann bin ich auf Node-RED gestoßen. Das sah schon besser aus, doch das Dashboard war am Ende grottenlahm. Und so bin ich dann bei Grafana gelandet. Das hübscht mit die Daten nett auf und ist schnell.

Tja. Und nach der ganzen Programmierarbeit hatte ich Schiss, dass mir die SD-Karte im Raspberry irgendwann abraucht (und das wird sie). Also zweiten Raspberry aufgesetzt, mit einer exakten Kopie der SD-Karte aus dem Master versorgt, diesen Raspberry zum Slave deklariert und mittels MySQL-Replikation und keepalived eine Hochverfügbarkeitslösung-Light geschaffen.

Fällt einer aus, wird die Display-Einheit mittels einer virtuellen IP-Adresse auf den Slave umgeroutet und schreibt dort seine Daten in die MySQL-Tabelle. Ist der Master wieder online, wird die Datenbank via MySQL-Replikation auf dem Master synchronisiert. Das funktioniert auch in die andere Richtung.

... ich sagte ja, es ist aus dem Ruder gelaufen.  8)

Ach ja. Hier ein Screenshot meines Dashboards. Es ist zwar auch via Portforwarding von extern erreichbar, aber dann müsste ich hier die Zugangsdaten posten. Und ich will ja nicht, dass sich das ganze Forum heute abend auf meinem Raspberry tummelt. :P

Rechte Maustaste auf Grafik, dann "Grafik anzeigen" und man sieht das Bild groß.


wneudeck

Hallo gmaniac,
willkommen hier im Forum. Das ist mal mal eine interessante Sachlage, die Du hier präsentierst.
Wobei ich davon ausgehe, dass hier schon eine Menge Sachverstand vorhanden sein muss, denn nicht jeder erstellt mal eben so auf die schnelle die erforderlichen scripts usw.
Bin gespannt, was die anderen User dazu sagen und was sonst noch von Dir zu hören sein wird.