WeeWx Statistik output zu Lemmy, Mastodon, etc. posten.
  • Go 75.2%
  • Shell 24.8%
Find a file
Debian 15f2ab705d fix: remove unused variables
- 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
2025-09-30 09:59:51 +02:00
.gitignore feat: Better Mastodon Post Body 2025-07-23 13:54:08 +02:00
go.mod initial commit 2025-06-26 16:17:39 +02:00
go.sum initial commit 2025-06-26 16:17:39 +02:00
install.sh Versuch, den Regen korrekt zu ermitteln. 2025-07-28 01:23:01 +02:00
main.go fix: remove unused variables 2025-09-30 09:59:51 +02:00
README.md Halluzinationen aus README.md entfernt 2025-07-27 16:59:24 +02:00

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

  1. Abhängigkeiten installieren:

    go mod tidy
    
  2. Programm kompilieren:

    go build -o daystats main.go
    
  3. Konfiguration erstellen:

    ./daystats /var/lib/weewx/weewx.sdb
    

    Dies erstellt eine config.json Datei mit Standardwerten.

  4. Konfiguration anpassen:

    nano config.json
    

    Beispiel-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-Servers
  • lemmy_community: Name der Community
  • lemmy_username: Benutzername für Lemmy
  • lemmy_password: Passwort für Lemmy
  • lemmy_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)