Zum Inhalt

Command: !weather

Wetter für eine Stadt via wttr.in API. Kostenlos, keine Anmeldung nötig.

API: https://wttr.in/<stadt>?format=3 → Plain-Text-Response wie "München: ☀️ +18°C" Patterns: Set Argument (Empty-Check) + Fetch URL + Send Message Sub-Actions: 4

Action: [Cmd] !weather

Sub-Action 1: Set Argument — Default-Stadt

1. Set Argument: city = %rawInput%
2. If/Else: %city% Is Null or Empty
   └─ Set Argument: city = Berlin   (Default)

Sub-Action 2: Fetch URL

Pfad: Core → Network → Fetch URL

Feld Wert
URL https://wttr.in/$urlencode(%city%)$?format=3&lang=de
Variable Name weather
Parse result as JSON ❌ aus (wttr.in liefert Plain-Text bei format=3)
Headers User-Agent: curl/8.0 (wttr.in serviert je nach UA anders, curl bekommt einfache Strings)

Response-Beispiel: München: ☀️ +18°C

Sub-Action 3: If/Else — API nicht erreichbar

3. If/Else: %fetchUrlStatusCode% Greater Than 299
   ├── Send Message: "@%user% wttr.in nicht erreichbar."
   └── Break

Sub-Action 4: Send Message

Feld Wert
Message 🌤️ %weather%
Send using bot account aktiv

Action-Tree

[Cmd] !weather
├── 1. Set Argument: city = %rawInput%
├── 2. If/Else: %city% Is Null or Empty
│   └── Set Argument: city = Berlin
├── 3. Fetch URL: https://wttr.in/$urlencode(%city%)$?format=3&lang=de → weather
├── 4. If/Else: %fetchUrlStatusCode% Greater Than 299
│   ├── Send Message: "@%user% wttr.in nicht erreichbar."
│   └── Break
└── 5. Send Message: "🌤️ %weather%"

Command-Einstellungen

Feld Wert
Name !weather
Group AzaCraft API
Commands !weather
!wetter
Sources Twitch Message
Global Cooldown 5
User Cooldown 30

wttr.in Format-Optionen

wttr.in unterstützt verschiedene ?format= Werte:

Format Output
format=1 ☀️ +18°C (nur Icon + Temp)
format=2 🌤️ 🌡️+18°C (mit Thermometer)
format=3 München: ☀️ +18°C (mit Stadt)
format=4 München: ☀️ +18°C 🌬️ 5km/h (mit Wind)
format=v2 längere ASCII-Karte (zu groß für Twitch-Chat)

Empfehlung: format=3 für Twitch.

Sprache

?lang=de für deutsche Wetterbeschreibung. Andere: en, fr, es, etc.

Verwendungsbeispiele

Chat Resultat
!weather München "🌤️ München: ☀️ +18°C"
!weather Tokyo "🌤️ Tokyo: 🌧️ +24°C"
!weather "🌤️ Berlin: ⛅ +15°C" (Default)
!wetter Bremen "🌤️ Bremen: 🌬️ +12°C"

Erweiterung: Bonus-Info

Mit format=4 zusätzlich Wind:

URL: https://wttr.in/$urlencode(%city%)$?format=4&lang=de

Output: 🌤️ Berlin: ⛅ +15°C 🌬️ 12km/h.

Erweiterung: Geo-Lookup

wttr.in unterstützt auch: - Flughafen-IATA-Codes: LAX, JFK, FRA - Locations mit ~Mount+Everest - Hex-Tilde-encoded für Spezial-Locations

Häufige Fallen

  • Umlaut in Stadt — z.B. "München". $urlencode()$ löst das. Ohne URL-Encoding hat URL fragwürdige Chars
  • Stadt mit Leerzeichen — "Mainz Am Rhein". URL-encoded wird zu Mainz%20Am%20Rhein — funktioniert
  • wttr.in down — selten, aber möglich. Status-Code-Check fängt das ab
  • Lange Stadt-Namen — bei sehr langen Namen + langer Response evtl. > 500 Zeichen. wttr.in format=3 bleibt kurz

Alternative: OpenWeatherMap (mit API-Key)

Wenn du strukturierte Daten willst:

URL: https://api.openweathermap.org/data/2.5/weather?q=$urlencode(%city%)$&appid=DEIN_KEY&units=metric&lang=de
Parse as JSON: ✅
Variable Name: ow

Output-Variablen: - %ow.main.temp% (Temp in °C) - %ow.weather.0.description% (Beschreibung) - %ow.name% (Stadt-Name canonical)

Send Message: "🌤️ %ow.name%: %ow.weather.0.description%, %ow.main.temp%°C"

Braucht aber API-Key (kostenlos bei openweathermap.org).

Quellen