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:
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=3bleibt 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)
Braucht aber API-Key (kostenlos bei openweathermap.org).
Quellen¶
- wttr.in: https://github.com/chubin/wttr.in
- Fetch URL Setup: setup.md