Wetterstation Hohenkammer

Öffentliche Schnittstelle · OpenAPI 3.1

Wetterdaten per API

Lokale Messungen aus Hohenkammer als JSON. Der Zugriff ist ohne Anmeldung und API-Schlüssel möglich. Fehlende oder veraltete Messwerte entfallen; alle Zeiten gelten in Europe/Berlin.

10 Anfragen pro Minute je IP

Pro IP sind 10 Anfragen innerhalb von rollierenden 60 Sekunden (1 Minute) erlaubt. Die 11. Anfrage sperrt die IP für 15 Minuten und liefert HTTP 429. Weitere Anfragen verlängern die Sperre nicht. Retry-After nennt die verbleibende Sperrzeit in Sekunden.

Das Limit gilt gemeinsam für GET, HEAD, abgewiesene Methoden und Wetterfehler auf /api/weather. CORS-Preflight (OPTIONS), diese Dokumentation und die OpenAPI-Datei zählen nicht.

GET

/api/weather

Aktuelle Sensordaten abrufen. Keine Parameter erforderlich. HEAD liefert dieselben Status- und Rate-Limit-Header ohne Antwortinhalt.

curl -i https://hohenkammer-wetterstation.de/api/weather
Beispielantwort mit verfügbaren Messwerten
{
  "last_update": "19:50",
  "date": "22 Juni 2025",
  "current_weather": "Dry",
  "temperature": 30.5,
  "max_temperature": {
    "value": 34.9,
    "time": "17:50"
  },
  "min_temperature": {
    "value": 9.1,
    "time": "04:25"
  },
  "wind": {
    "speed": 1.9,
    "direction": "W (270°)",
    "gusts": 3,
    "max_speed_today": 8,
    "max_speed_today_time": "15:20"
  },
  "rain": {
    "last_hour": 0,
    "since_midnight": 0,
    "last_24_hours": 0
  },
  "atmosphere": {
    "humidity": 47,
    "pressure": 1018.3,
    "brightness": 45000
  }
}

Antwortfelder

Nur last_update und date sind immer enthalten. Weitere Felder erscheinen, wenn die entsprechenden frischen Messungen vorliegen. Bei Tagesextrema ist der Wert erforderlich, sobald das Objekt enthalten ist.

Messwerte, Datentypen und Einheiten der öffentlichen Wetter-API
FeldTypBeschreibung
last_update(Pflicht)stringNeuester Sensorzeitpunkt unter den ausgegebenen Messwerten, HH:mm.
date(Pflicht)stringDatum dieses Sensorzeitpunkts in Europe/Berlin, z. B. 22 Juni 2025.
current_weatherstringZustand des lokalen Regensensors: trocken oder Regen.
temperaturenumberAktuelle Außentemperatur in °C.
max_temperatureobjectNetatmo-Temperaturmaximum des aktuellen Tages.
max_temperature.value(Pflicht)numberTemperatur in °C.
max_temperature.timestringEreigniszeit in Europe/Berlin; entfällt ohne verfügbaren Zeitpunkt.
min_temperatureobjectNetatmo-Temperaturminimum des aktuellen Tages.
min_temperature.value(Pflicht)numberTemperatur in °C.
min_temperature.timestringEreigniszeit in Europe/Berlin; entfällt ohne verfügbaren Zeitpunkt.
windobjectWindmessungen ohne zugesichertes 10-Minuten- oder Stundenintervall.
wind.speednumberAktuelle Windgeschwindigkeit in km/h.
wind.directionstringWindrichtung mit Himmelsrichtung und Grad, z. B. W (270°).
wind.gustsnumberAktueller Böenwert in km/h; kein Stundenmaximum.
wind.max_speed_todaynumberNetatmo-Windmaximum des Tages in km/h; kein zugesichertes Minutenmittel oder Böenmaximum.
wind.max_speed_today_timestringEreigniszeit des Tageswindmaximums in Europe/Berlin.
rainobjectRegenmengen in mm mit getrennten Bezugszeiträumen.
rain.last_hournumberRegenmenge der letzten Stunde in mm.
rain.since_midnightnumberRegenmenge seit Mitternacht in mm.
rain.last_24_hoursnumberRollierende Regenmenge der letzten 24 Stunden in mm.
atmosphereobjectWeitere lokale Sensormessungen.
atmosphere.humiditynumberRelative Luftfeuchtigkeit in %.
atmosphere.pressurenumberLuftdruck in hPa.
atmosphere.brightnessnumberRoher Homematic-Helligkeitswert ohne bestätigte Einheit.

Statuscodes und Fehler

200
Frische Wetterdaten; fehlende Werte entfallen.
429
IP gesperrt. Pro IP sind 10 Anfragen innerhalb von rollierenden 60 Sekunden (1 Minute) erlaubt. Die 11. Anfrage sperrt die IP für 15 Minuten und liefert HTTP 429. Weitere Anfragen verlängern die Sperre nicht. Retry-After nennt die verbleibende Sperrzeit in Sekunden.
503
Vorübergehend nicht verfügbar: WEATHER_UNAVAILABLE (Backend), NO_FRESH_DATA (keine frischen Messungen), CLIENT_IP_UNAVAILABLE (Proxy-IP fehlt) oder RATE_LIMIT_UNAVAILABLE (Sperrspeicher nicht verfügbar). Rate-Limit-Header sind nur nach erfolgreicher Limitprüfung vorhanden.

Nicht unterstützte Methoden liefern HTTP 405. OPTIONS antwortet mit HTTP 204. Bei einer Sperre sieht der JSON-Fehler so aus:

HTTP 429
Retry-After: 900

{"error":"IP_BANNED"}

Rate-Limit-Header

X-RateLimit-Limit
Maximale Anfragen pro IP im rollierenden Zeitfenster.
X-RateLimit-Remaining
Verbleibende Anfragen im aktuellen Zeitfenster; bei Sperre 0.
X-RateLimit-Reset
Unix-Zeit in Sekunden, zu der die älteste gezählte Anfrage verfällt; bei Sperre deren Ablaufzeit.

HTTP 429 ergänzt Retry-After in Sekunden. Alle Antworten senden Cache-Control: no-store. CORS erlaubt Lesezugriffe von anderen Websites und macht die Rate-Limit-Header zugänglich.

OpenAPI-Spezifikation

Die maschinenlesbare Spezifikation enthält Antwortschemas, Einheiten, Statuscodes und das IP-Limit. Sie lässt sich in OpenAPI-Werkzeuge importieren.

OpenAPI JSON öffnen