2.8 KiB
2.8 KiB
Sachsen Pegel Proxy (HWIMS → JSON)
Small FastAPI service that converts the Sachsen HWIMS RSS feed into clean, machine-readable JSON.
Perfect for use with Home Assistant or other automation tools.
✨ Features
-
Converts RSS → structured JSON
-
Supports any Pegel ID
-
Extracts:
- water level (cm)
- flow (m³/s)
- flood alert level
- timestamp (ISO format)
-
Provides:
- latest value
- full history from feed
🔗 Example
Request:
GET /api/pegel/560021
Response:
{
"station_id": "560021",
"station_title": "Golzern 1 / Vereinigte Mulde",
"latest": {
"timestamp": "2026-05-05T00:45:00+00:00",
"water_level_cm": 98,
"flow_m3s": 20.8,
"flood_alert_level": "Kein Hochwasser"
}
}
Index request (all discovered stations):
GET /api/pegel
Index request with limit:
GET /api/pegel?limit=5
Index response shape:
{
"count": 5,
"total_available": 312,
"items": [
{
"station_id": "560021",
"station_title": "Golzern 1 / Vereinigte Mulde",
"source": "https://www.umwelt.sachsen.de/umwelt/infosysteme/hwims/portal/web/feed/wasserstand-pegel-560021"
}
],
"source": "https://www.umwelt.sachsen.de/umwelt/infosysteme/hwims/portal/web/wasserstand-uebersicht",
"fetched_at": "2026-05-05T01:00:00+00:00",
"warnings": [
"optional, only present for partial failures"
]
}
🚀 Local Development
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn api.app:app --reload
Open:
http://127.0.0.1:8000/api/pegel
http://127.0.0.1:8000/api/pegel/560021
API docs:
http://127.0.0.1:8000/docs
☁️ Deploy (Vercel)
npx vercel
npx vercel --prod
🏠 Home Assistant Example
rest:
- resource: "https://your-app.vercel.app/api/pegel/560021"
scan_interval: 300
sensor:
- name: "Pegel Wasserstand"
value_template: "{{ value_json.latest.water_level_cm }}"
unit_of_measurement: "cm"
json_attributes:
- flow_m3s
- flood_alert_level
⚙️ Configuration
No config required.
Pegel ID is passed via URL:
/api/pegel/<id>
Index endpoint:
/api/pegel
Query params for index:
limit(positive integer, optional; invalid values return HTTP 400)
📡 Data Source
Data provided by the official Sachsen environmental portal:
https://www.umwelt.sachsen.de/
Example feed:
https://www.umwelt.sachsen.de/umwelt/infosysteme/hwims/portal/web/feed/wasserstand-pegel-560021
⚠️ Disclaimer
- No guarantees on data accuracy or availability
- Feed format may change
- Not affiliated with the State of Saxony
📝 License
MIT