Automatisierte 3-Tages-Thermikprognose fΓΌr den Segelflugplatz EDXE mit n8n, meteoblue API und Dual-Channel-Versand (Email + Telegram).
Dieses Projekt automatisiert die tΓ€gliche Berechnung und Verteilung einer detaillierten Thermik-Vorhersage an Segelflieger. Jeden Morgen um 07:00 Uhr werden aktuelle Wetterdaten von der meteoblue API abgerufen, analysiert und als formatierte Email (Premium Dark Design) sowie als kompakte Telegram-Nachricht verschickt.
- Automatischer Schedule: TΓ€gliche AusfΓΌhrung um 07:00 Uhr via Cron
- PrΓ€zise Wetterdaten: meteoblue API mit stΓΌndlichen Daten fΓΌr 3 Tage
- Thermik-Score: Intelligenter Algorithmus (0-5) basierend auf CAPE, BLH, BewΓΆlkung, Wind, Spread
- Steigwerte-Berechnung: Physik-basierte Climb-Rate-Prognose (7-19 Uhr)
- Phasen-Analyse: 4 Tagesabschnitte mit detaillierten Vorhersagen
- Vormittag (08-12 Uhr)
- FrΓΌher Nachmittag (12-15 Uhr)
- SpΓ€ter Nachmittag (15-18 Uhr)
- Abends (18-21 Uhr)
- Wind-Analyse: Geschwindigkeit und Richtung pro Phase
- Dual-Channel-Versand:
- Email mit Premium Dark Design, Gradient-Badges und Steigwerte-Chart
- Telegram mit kompakter HTML-Nachricht
- Responsive Email-Layout: Perfekte Darstellung in allen Email-Clients
- n8n (v1.115.3) β Workflow-Automation
- meteoblue API β Wetterdaten (basic-1h, clouds-1h, air-1h packages)
- JavaScript β Datenverarbeitung und Score-Algorithmus
- Telegram Bot API β Push-Benachrichtigungen
- SMTP (Gmail) β Email-Versand
- Cron β Zeitgesteuerte AusfΓΌhrung
n8n workflows/
βββ thermik-vorhersage-edxe.json # Haupt-Workflow (n8n Import-File)
βββ thermik-email-code.js # Standalone Email-Generator Code
βββ thermik-premium-dark-code.js # Premium Dark Theme Variante
βββ README.md # Dieses File
npm install -g n8n
n8n start- n8n ΓΆffnen (http://localhost:5678)
- "Import from File" wΓ€hlen
thermik-vorhersage-edxe.jsonhochladen
meteoblue API:
- API-Key unter https://www.meteoblue.com/en/weather-api beantragen
- Im Workflow unter "Fetch Meteoblue API" eintragen
Telegram Bot:
- Bot erstellen: Mit @BotFather sprechen
/newbotausfΓΌhren und Namen vergeben- API Token kopieren
- In n8n Credentials "Telegram API" anlegen
- Chat-ID ermitteln:
curl https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
- Chat-ID im Workflow-Code anpassen (Zeile mit
telegram_chat_id)
Gmail SMTP:
- Gmail App-Passwort erstellen (https://myaccount.google.com/apppasswords)
- In n8n Credentials "SMTP" anlegen:
- Host: smtp.gmail.com
- Port: 587
- User: deine@gmail.com
- Password: App-Passwort
- Sender- und EmpfΓ€nger-Email im Workflow anpassen
Im "Fetch Meteoblue API" Node die Koordinaten Γ€ndern:
lat: 52.2851 // Breitengrad deines Flugplatzes
lon: 7.44055 // LΓ€ngengrad deines Flugplatzes
asl: 41 // HΓΆhe ΓΌber Meeresspiegel (meters)- Schedule Trigger aktivieren (Toggle oben rechts)
- Fertig! Der Workflow lΓ€uft ab jetzt tΓ€glich um 07:00 Uhr
Der Score (0-5) wird basierend auf folgenden Faktoren berechnet:
Faktoren (Punkte):
+ Sonnenschein β₯45 min/h: +2 | β₯20 min/h: +1 | β€5 min/h: -1
+ BewΓΆlkung β€20%: +1 | β₯85%: -1
+ Niederschlag >0 mm/h: -1 bis -2
+ BLH β₯1800m: +2 | β₯1200m: +1 | <600m: -1
+ CAPE 50-600 J/kg: +1 | >800 J/kg: -1
+ CIN <-50 J/kg: -1
+ Wind 2-6 m/s: +1 | >9 m/s: -1
+ Spread (T-Td) 6-12Β°C: +1 | <3Β°C: -1
Endergebnis: Clamp(0, 5)w = 0.02 * sqrt(CAPE) + 0.6 * BLH_km + 0.3 * sunFrac
- 0.8 * tccFrac - 0.5 * min(precip, 2.0) - max(0, wind-8) * 0.08
Clamp(0, 5.0) m/sDas Email-Layout verwendet ein Dark Theme mit:
- Gradient Header (Teal β Blue)
- 3-Spalten-Layout fΓΌr die 3 Tage
- Score-Badges mit Gradient-HintergrΓΌnden
- Steigwerte-Chart (horizontale Bars, 7-19 Uhr)
- 4 Phase-BlΓΆcke pro Tag
- Responsive Design (funktioniert in Gmail, Outlook, Apple Mail)
Wichtig fΓΌr Email-Client-KompatibilitΓ€t:
- Tabellenbasiertes Layout (keine Flexbox/Grid)
- Inline-Styles
- Content-Padding mit
fΓΌr gleichhohe Boxen
Kompakte Text-Nachricht mit HTML-Formatierung:
π€οΈ Thermik EDXE | 23.10. β 25.10.
π‘ Donnerstag, 24.10.
Score: 3/5 β Brauchbar
π Steigwerte: 12h=2.1m/s, 13h=2.3m/s
βοΈ Vormittag (08β12 Uhr)
β’ BewΓΆlkung 67 %, Schauer 0.6 mm/h, BLH ~0 km
β’ π¬οΈ Wind: ~5.3 m/s aus S
β’ Thermik 1/5. Fetzen, selten zentrierbar.
...
βββββββββββββββββββββββ
β Schedule Trigger β (TΓ€glich 07:00 Uhr)
ββββββββββββ¬βββββββββββ
β
ββββββββββββΌβββββββββββ
β Fetch meteoblue API β (HTTP Request)
ββββββββββββ¬βββββββββββ
β
ββββββββββββΌβββββββββββ
β Generate Email + β (Code Node)
β Telegram β β’ Parse API Data
ββββββββ¬βββββββββββ¬ββββ β’ Calculate Scores
β β β’ Build HTML Email
β β β’ Format Telegram Text
β β
ββββββββΌββββββ βββΌββββββββββ
β Send Email β β Send to β
β β β Telegram β
ββββββββββββββ βββββββββββββ
- Gmail SMTP Credentials prΓΌfen
- 2FA aktiviert? β App-Passwort verwenden
- Port 587 (STARTTLS) oder 465 (SSL) prΓΌfen
- Bot-Token korrekt?
- Chat-ID korrekt ermittelt?
- Bot zum Channel/Chat hinzugefΓΌgt?
- API-Key gΓΌltig und aktiv?
- API-Kontingent noch verfΓΌgbar?
- Response-Structure prΓΌfen (meteoblue Γ€ndert manchmal Field-Namen)
- PrΓΌfe
maxLinesPerPhaseGlobalBerechnung - Stelle sicher, dass alle Phase-BlΓΆcke
-Padding erhalten
- Execution Time: ~2-3 Sekunden
- API Calls: 1x meteoblue pro Tag
- Email Size: ~15-20 KB
- Telegram Message: <1 KB
- Interaktive Steigwerte-Charts (Chart.js)
- Machine Learning fΓΌr Genauigkeitsverbesserung
- Web-Dashboard mit Kartenvisualisierung
- Alert-System bei Score β₯4
- Streckenwetter-Optimierung
- Multi-Location Support
MIT License β Feel free to use and modify for your glider club!
Contributions, Issues und Feature-Requests sind willkommen!
Bei Fragen oder Problemen: GitHub Issues
The Coding Cortex Website: thecodingcortex.org Projekt-Seite: Thermik-Vorhersage Details
Erstellt mit β€οΈ fΓΌr Segelflieger