API Quick Start
Die API ist öffentlich und via HTTPS erreichbar. Alle Beispiele nutzen den Public Endpoint.
API Root
# API-Wurzel (Server-Info + Entities)
curl https://api.udp.zuber.space/context/sensorthings/public/v1.1
Things abfragen
# Alle Sensoren/Stationen ($top begrenzt Ergebnis)
curl "https://api.udp.zuber.space/context/sensorthings/public/v1.1/Things?$top=5"
Datastreams mit Details
# Datastreams + Thing + ObservedProperty via $expand
curl "https://api.udp.zuber.space/context/sensorthings/public/v1.1/Datastreams?$expand=Thing,ObservedProperty&$top=3"
Neueste Observation
# Aktuellste Messung eines Datastreams
curl "https://api.udp.zuber.space/context/sensorthings/public/v1.1/Datastreams(14730)/Observations?$top=3&$orderby=phenomenonTime desc"
Walkthrough: Rudolf Geiger Klimastation
Komplettes Beispiel von der Station bis zur Live-Messung – Schritt für Schritt mit echten Daten.
1. Station abfragen
Die Klimastation auf dem Campus der Ruhr-Universität Bochum erfasst 58 Wetterparameter in stündlicher Auflösung.
# GET /Things(2235)
curl https://api.udp.zuber.space/context/sensorthings/public/v1.1/Things(2235)
JSON-Antwort ansehen
{
"@iot.id": 2235,
"name": "Rudolf Geiger Klimastation RUB",
"description": "Rudolf Geiger Klimastation auf dem Campus der Ruhr-Universität Bochum (RUB). 58 Wetterparameter in stündlicher Auflösung.",
"properties": {
"operator": "Geographisches Institut, Ruhr-Universität Bochum",
"elevation_m": 127,
"latitude": 51.433333,
"longitude": 7.266667,
"location_description": "Campus RUB, Gebäude NA, Dach",
"data_repository": "https://gitlab.opencode.de/StadtBochum/open-data/wetter-rudolf-geiger-klimastation",
"station_id": "RUB_BRGS"
}
}
2. Datastreams auflisten
Jeder Datastream repräsentiert einen Messkanal mit Einheit und Metadaten.
# GET /Things(2235)/Datastreams – erste 5
curl "https://api.udp.zuber.space/context/sensorthings/public/v1.1/Things(2235)/Datastreams?$select=name,unitOfMeasurement&$top=5"
JSON-Antwort ansehen
{
"value": [
{"name": "Absolute Luftfeuchtigkeit (Maximum) (abshum_max)", "unitOfMeasurement": {"symbol": "g/m³"}},
{"name": "Absolute Luftfeuchtigkeit (Mittel) (abshum_mean)", "unitOfMeasurement": {"symbol": "g/m³"}},
{"name": "Absolute Luftfeuchtigkeit (Minimum) (abshum_min)", "unitOfMeasurement": {"symbol": "g/m³"}},
{"name": "Albedo (Mittel) (albedo_mean)", "unitOfMeasurement": {"symbol": "-"}},
{"name": "Taupunkttemperatur (Maximum) (dew_point_temp_max)", "unitOfMeasurement": {"symbol": "°C"}}
]
}
Die Station hat insgesamt 58 Datastreams: Lufttemperatur (2m), relative Feuchte, Windgeschwindigkeit, Windrichtung, Globalstrahlung, Niederschlag, Luftdruck, Bodentemperaturen (10/20/50cm), Oberflächentemperatur u.v.m.
3. Live-Messwerte abrufen
Die neuesten stündlichen Messwerte vom 19. Juni 2026, 11:00 Uhr (MESZ):
# Live-Messwert abfragen – Globalstrahlung (DS 14733)
curl "https://api.udp.zuber.space/context/sensorthings/public/v1.1/Datastreams(14733)/Observations?$top=1&$orderby=phenomenonTime desc"
4. Nächste Schritte
- Projekte erkunden:
/Projects?$expand=Things - Datastreams filtern:
/Datastreams?$filter=unitOfMeasurement/symbol eq '°C' - Geo-Abfrage:
/Things?$filter=st_intersects(location, geography'POLYGON((...))')