WeeWx Statistik output zu Lemmy, Mastodon, etc. posten.
- Go 75.2%
- Shell 24.8%
- Remove unused 'hour' variable in sun hours calculation loop - Remove unused 'end' variables in dry spell and consecutive rain calculations - Code now compiles without warnings |
||
|---|---|---|
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| main.go | ||
| README.md | ||
Wetterstatistik Service für Overath
Ein Go-Programm zur automatischen Erstellung und Veröffentlichung von Wetterstatistiken aus einer weewx-Datenbank. Das Programm erstellt täglich um 4:00 Uhr einen Post mit den Wetterdaten des Vortags und veröffentlicht ihn auf einem Lemmy-Server.
Funktionen
- Automatische Wetterstatistik: Erstellt täglich Statistiken aus der weewx-Datenbank
- Lemmy-Integration: Veröffentlicht Posts automatisch auf einem Lemmy-Server
- Service-Betrieb: Läuft als systemd-Service mit automatischem Neustart
- Konfigurierbar: Einstellungen über JSON-Datei
- Test-Modus: Zum Testen ohne tatsächliches Posting
- Vergleichsdaten: Zeigt immer auch die Daten des Vortags zum Vergleich
- Mastodon-Integration: Wenn konfiguriert, wird die Wetterstatistik zusätzlich auf Mastodon gepostet (kein Retry, Fehler werden geloggt)
Wetterdaten
Das Programm erstellt Statistiken für:
- Temperatur: Höchst- und Tiefsttemperatur
- Niederschlag: Gesamtniederschlag in mm
- Sonnenstunden: Stunden mit Strahlung ≥ 120 W/m²
Schnellinstallation
Für eine automatische Installation steht ein Installationsskript zur Verfügung:
bash ./install.sh
Voraussetzungen:
- Go 1.19 oder höher
- Git
- weewx installiert mit Datenbank unter
/var/lib/weewx/weewx.sdb - sudo-Rechte
Manuelle Installation
-
Abhängigkeiten installieren:
go mod tidy -
Programm kompilieren:
go build -o daystats main.go -
Konfiguration erstellen:
./daystats /var/lib/weewx/weewx.sdbDies erstellt eine
config.jsonDatei mit Standardwerten. -
Konfiguration anpassen:
nano config.jsonBeispiel-Konfiguration:
{ "lemmy_server": "https://natur.23.nu", "lemmy_community": "wetter", "lemmy_username": "wetterbot", "lemmy_password": "DEIN_PASSWORT", "lemmy_token": "", "lemmy_token_exp": "0001-01-01T00:00:00Z", "mastodon_server": "https://mastodon.social", "mastodon_token": "DEIN_MASTODON_TOKEN", "mastodon_visibility": "unlisted" }
Verwendung
Einmalige Ausführung
./daystats /var/lib/weewx/weewx.sdb
Test-Modus (zeigt nur, was gepostet würde)
./daystats -test /var/lib/weewx/weewx.sdb
Kontinuierlicher Betrieb (täglich um 4:00 Uhr)
./daystats -loop /var/lib/weewx/weewx.sdb
Mit benutzerdefinierter Konfigurationsdatei
./daystats -config /pfad/zur/config.json /var/lib/weewx/weewx.sdb
Konfiguration
Die Konfigurationsdatei config.json enthält:
lemmy_server: URL des Lemmy-Serverslemmy_community: Name der Communitylemmy_username: Benutzername für Lemmylemmy_password: Passwort für Lemmylemmy_token: JWT-Token (wird automatisch verwaltet)lemmy_token_exp: Token-Ablaufzeit (wird automatisch verwaltet)mastodon_server: URL des Mastodon-Servers (optional)mastodon_token: Zugangstoken für Mastodon (optional)mastodon_visibility: Sichtbarkeit des Mastodon-Posts (z.B.unlisted,public,private,direct) (optional, Standard:unlisted)
Schwellwerte
Das Programm verwendet folgende Schwellwerte:
- Sonnenstunden: 120 W/m² Strahlung
- Regenstunden: 0.1 mm Niederschlag (entfernt)
Beispiel-Ausgabe
Statistik für Overath 25.06.2025: (Vortag)
Höchsttemperatur: 29.2 °C (22.4 °C)
Tiefsttemperatur: 19.3 °C (10.7 °C)
Niederschlag: 0.0 mm (0.0 mm)
Sonnenstunden: 14 h (15 h)