wetter · v0.1.0 · 2026-07-30 · sha256 ddf600ac34018135

wetter v0.1.0A

Immutable. This exact content is served forever at /api/v1/blob/ddf600ac34018135.

---
name: wetter
version: 0.1.0
type: expert
author: ellmos
created: 2026-06-22
updated: 2026-06-22
description: Answers weather questions for a location or coordinates via wttr.in (free, no API key). Current weather + 3-day forecast. Location comes from the user request or preferences; optional short cache.

standalone: true
anthropic_compatible: true
bach_compatible: false
bach_origin: true
category: assist
tags: [wetter, wttr, vorschau, assist]
language: de
status: active
dependencies: {'tools': ['wetter_core.py'], 'services': [], 'protocols': [], 'python': ['urllib', 'json']}
provenance: {'origin': 'bach', 'origin_path': 'system/hub/_services/weather/weather_service.py', 'origin_version': '1.0', 'origin_repo': 'github.com/ellmos-ai/bach', 'origin_license': 'MIT', 'last_sync_from_origin': '2026-06-22', 'last_sync_to_origin': None, 'local_changes_since_sync': True}
---

<img src="banner.png" width="100%" alt="wetter banner">

> **Deutsch** — Offizielle Deutsch-Version / Documento Oficial en Deutsch.


# Weather (Deutsch)

Fast, key-free weather information for everyday use.

## Übersicht & Zweck

Answers "What will the weather be like?" questions without an API key (data source: wttr.in).
Delivers current weather (temperature, feels-like, wind, humidity, UV) plus a
compact 3-day forecast. **User-neutral:** no fixed location in the code — the location
comes from the request or from `assist/prefs.json` (`wetter_default_location`),
which the LLM fills in interactively with the user.

## Triggers

| User input | Action |
|---|---|
| "Weather for Potsdam?" / "What will the weather be like in Hamburg?" | `wetter_core.py "<location>"` |
| "Weather tomorrow?" (without location) | `wetter_core.py --default` (location from prefs) |
| "My default weather location is Potsdam" | `wetter_core.py --set-default "Potsdam"` |
| Coordinates known | `wetter_core.py <lat> <lon>` |

## Workflow & Vorgehen

```
1. Determine location: from request; else prefs.json (wetter_default_location);
   else ask user interactively + optionally save as default.
2. Query wetter_core.py (wttr.in, 2 attempts, 30-min cache).
3. Present readable weather text + 3-day forecast.
```

## CLI Entry Point (wetter_core.py)

```bash
python wetter_core.py "Potsdam"          # location
python wetter_core.py 52.6789 13.5878   # coordinates
python wetter_core.py --default         # location from prefs.json
python wetter_core.py --set-default "Potsdam"
```

## Store (optional)

- **No mandatory store.** Optional short cache `assist/wetter/.cache.json`
  (TTL 30 min, best-effort) — avoids repeated network calls.
- Location preference in `assist/prefs.json` (`wetter_default_location`).

## Attitude

We use wttr.in as the key-free default source, but are open to other weather
backends (e.g. DWD/OpenWeather) if the user prefers them.

## Privacy

- Only the location name/coordinates go to wttr.in (required for the query).
- No telemetry, no account. Cache + preference stay local.

## Related Resources

- `assist/AGENTS.md` — Umbrella router
- `assist/reiseroute/` — uses weather for travel planning (planned)

## Änderungsprotokoll

### 0.1.0 (2026-06-22)
- Initial version. Ported from BACH `hub/_services/weather/weather_service.py` (MIT).
- Extended: location name support (not just coordinates), 3-day forecast,
  optional cache, prefs-based default location. User-neutral.