Documentation • wetter-site
Technisches Handbuch & Spezifikation
Vollständige Referenz zur Wetter- und Solar-PV-Plattform: Mathematische Modellierung des Solarertrags, native Android-App mit Startbildschirm-Widget, direkte Open-Meteo REST-Anbindung und Zero-Tracking-Architektur.
☀️ 1. Einführung & Philosophie
wetter-site ist ein datenschutzorientiertes Wetter- und Solar-PV-Ökosystem, entwickelt von Jeremy Benz. Das Projekt wurde nach dem Leitgedanken des Zero-Bloat und Privacy-by-Design entworfen:
- Keine Relay-Server: Alle Wetter- und Geocoding-Abfragen erfolgen direkt clientseitig gegen die freie Open-Meteo API. Kein Zwischenserver protokolliert IP-Adressen oder Standortkoordinaten.
- Zero Telemetry: Weder die Web-Applikation noch die native Android-App enthalten Analysetools, Werbenetzwerke oder Tracking-Pixel.
- Pure Performance: Die Web-App nutzt pures HTML5, modernes CSS3 und native Canvas-Grafik (sub-50ms Interaction-to-Next-Paint). Die Android-App ist in purem Java ohne WebView-Overhead realisiert.
⚡ 2. Photovoltaik Solar-Ertragsmodell
Die Ertragsberechnung schätzt die momentane Leistung $P_{pv}$ (in Watt) einer 5 kWp Photovoltaik-Referenzanlage (typische Wohngebäude-Aufdachanlage mit monokristallinen Siliziummodulen):
Modellparameter & physikalische Koeffizienten:
- P_peak = 5000 W (5.0 kWp): Installierte Modul-Nennleistung unter Standard-Testbedingungen (STC: 1000 W/m², 25°C Zelltemperatur, AM 1.5).
- G_eff (Effektive Bestrahlungsstärke): Wird aus dem solaren Höhenwinkel θ (aus geografischer Breite & Tageszeit) und dem Bewölkungsgrad modelliert:
G_eff = G_clearsky × (1 - 0.75 × (cloud_cover / 100)^3.4) - γ = -0.0038 / °C (-0.38 %/°C): Negativer Leistungstemperaturkoeffizient für monokristalline Solarzellen. Mit steigender Zelltemperatur sinkt der elektrische Wirkungsgrad.
- T_cell (Modulzellentemperatur): Berechnung nach dem NOCT-Modell (Normal Operating Cell Temperature, 45°C):
T_cell = T_ambient + ((45 - 20) / 800) × G_eff - η_inverter = 0.96 (96%): Wirkungsgrad moderner transformatorloser String-Wechselrichter inklusive Leitungsverlusten.
Bei Sonnenständen unterhalb des Horizonts (θ ≤ 0°) wird die Bestrahlungsstärke strikt auf 0.0 W gesetzt. Die integrierte Tages-Energie (kWh) ergibt sich aus der stündlichen Summe: E_day = ∑ (P_pv / 1000) × 1h.
📱 3. Native Android App & Startbildschirm-Widget
Die native Android-App (com.benzjeremy.wetter) bietet maximale Effizienz und Unabhängigkeit vom Browser:
📲 Startbildschirm-Widget (4x2 / 4x1)
Zeigt aktuelle Temperatur, Wetter-Emoji, Min/Max-Spanne, Ort, Solar-PV-Leistung sowie in v1.1 eine akkuschonende Live-Systemzeit (TextClock) an. Mit manuellem Sofort-Aktualisierungsbutton via PendingIntent Broadcast.
🔋 Konfigurierbarer Auto-Refresh & Caching
Neu in v1.1: Einstellbares Hintergrund-Intervall (15 Min., 30 Min., 1 Std. oder Manuell) via inexaktem AlarmManager. Reaktiviert sich automatisch nach Neustart (BOOT_COMPLETED). SharedPreferences-Caching verhindert unnötige Mobilfunk-Requests.
Installation & F-Droid Integration:
Die App wird offiziell über das myfdroid-Repository bereitgestellt:
https://benzjeremy.github.io/myfdroid/repo?fingerprint=A2AD027C856AE9E111B17A55DF5303BB423DBF8D447DC981BDB0E21346963CB7
Direkter APK-Download: wetter-v1.1.apk (83 KB) [Latest] • wetter-v1.0.apk (74 KB) [Archive]
🌐 4. Open-Meteo API & WMO-Wettercodes
Das System nutzt standardisierte REST-Endpunkte von Open-Meteo ohne proprietäre Authentifizierung:
GET https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,surface_pressure,wind_speed_10m&hourly=temperature_2m,precipitation_probability,cloud_cover&daily=weather_code,temperature_2m_max,temperature_2m_min&timezone=auto
WMO Interpretationstabelle:
| WMO Code | Symbol | Bedeutung (DE) | Meaning (EN) |
|---|---|---|---|
| 0 | ☀️ | Klarer Himmel | Clear sky |
| 1, 2, 3 | 🌤️ / ☁️ | Leicht bewölkt bis bedeckt | Mainly clear to overcast |
| 45, 48 | 🌫️ | Nebel / Reifnebel | Fog and depositing rime fog |
| 51, 53, 55 | 🌦️ | Sprühregen (leicht bis stark) | Drizzle (light to dense) |
| 61, 63, 65 | 🌧️ | Regen (leicht, mäßig, stark) | Rain (slight, moderate, heavy) |
| 71, 73, 75 | ❄️ | Schneefall | Snow fall |
| 80, 81, 82 | 🌦️ | Regenschauer | Rain showers |
| 95, 96, 99 | ⛈️ | Gewitter (mit Hagel) | Thunderstorm (with hail) |
🏛️ 5. 3-Web & 3-Branch Ökosystem
Das Projekt folgt der verbindlichen Web- und Branch-Architektur aller Jeremy Benz Repositories:
| Ebene | URL-Pfad | Funktion & Inhalt | Sprachstandard |
|---|---|---|---|
| Showcase | /wetter-site/ |
Landingpage mit Hero, Feature-Grid, Downloads & Projektübersicht | 100% Bilingual (DE / EN) |
| Web-App | /wetter-site/app/ |
Vollwertige interaktive Wetter-Station mit Canvas-Engine | 100% Bilingual (DE / EN) |
| Web-Wiki | /wetter-site/wiki/ |
Technisches Handbuch, Physik-Modell, API & Widget-Setup | 100% Bilingual (DE / EN) |
| Source (`main`) | Branch main |
Natives Android-Projekt, Build-Skripte, Fastlane, CI Workflows | 100% Englisch |
❓ 6. FAQ & Troubleshooting
Warum aktualisiert sich das Android-Widget manchmal verzögert?
Android setzt strenge Energiesparmechanismen (Doze Mode & App Standby) ein. Um deinen Akku zu schonen, pollt die Wetter-App das Netzwerk nicht minütlich im Hintergrund. Du kannst das Widget jederzeit per Tippen auf das Aktualisieren-Symbol (🔄) sofort auf den neuesten Stand bringen.
Wie wechsle ich die Temperatureinheit?
In der Web-Applikation kannst du in der Kopfzeile zwischen °C, °F und Kelvin wählen. In der Android-App befindet sich die Umschaltung direkt in den Schnelleinstellungen der Dashboard-Kopfzeile.
Wie präzise ist die Photovoltaik-Prognose?
Die Prognose basiert auf einem physikalischen Modell für unverschattete Südausrichtung (35° Dachneigung). Lokale Verschattungen durch Bäume oder Nachbargebäude sowie Schneeauflagen können den realen Ertrag verringern.