Fehler & Status — was die API Ihnen sagt
Forecast, Decision, Windows und Hours antworten bei vielen Problemen mit HTTP 200 — lesen Sieforecast_status,access,decision_statusim JSON. HTTP 429 = Rate Limit (Community 120/Tag). Loxone: bei O1=12 offline siehe Offline-Abschnitte in Forecast / Flex.
Wichtige Regel zuerst
Bei Forecast, Decision, Windows und Hours antwortet die API bei vielen „inhaltlichen“ Problemen trotzdem mit HTTP 200.
Der eigentliche Hinweis steht im JSON, z. B.:
forecast_statusdecision_statustelemetry_statuspv_status/weather_status
Alltagsbeispiel: Der Briefträger klingelt (HTTP 200), im Brief steht aber „Bitte Adresse ergänzen“ (incomplete_input).
Häufige Status-Werte
| Status | Einfach erklärt | Was tun? |
|---|---|---|
ok | Alles gut, Daten nutzbar | Verarbeiten |
incomplete_input | Es fehlen Angaben | Portal-Profil oder Request ergänzen (missing) |
weather_missing | Standort-Wettercache noch leer | Später erneut versuchen oder Standort speichern |
invalid_input | Werte widersprechen sich / ungültig | Eingaben prüfen |
not_available | Ihr Tarif/Key darf das nicht | Community-Key / richtigen Key verwenden |
Felder je Endpoint
| Feld | Endpoint | Typische Werte |
|---|---|---|
forecast_status | Forecast | ok, … |
decision_status | Decision / Windows / Hours | ok, incomplete_input, not_available |
telemetry_status | Plant Telemetry | ok, incomplete_input, invalid_input |
pv_status | PV Forecast | ok, incomplete_input, weather_missing, not_available |
weather_status | Plant Weather | ok, incomplete_input, weather_missing, not_available |
HTTP 429 — zu oft gefragt
Das ist ein echtes Rate-Limit: bitte warten und seltener anfragen. Details: Rate Limits.
Beispiel Hours
{
"decision_status": "incomplete_input",
"missing": ["battery.capacity_kwh", "geo"]
}
Übersetzung: Bitte Speicherkapazität und Standort nachreichen (Request oder Portal).
HTTP 400 bei Decision Windows
error | Ursache |
|---|---|
invalid_range | start liegt nicht vor end |
incomplete_request | Fehlendes Fenster (start+end oder window_* oder flex_pack/slot_id-Merge) oder fehlende Stundenanzahl (count/segments/energy_kwh+max_power_kw). mode/role weglassen = Default cheapest/consume |
invalid_count | Ungültige Zahl |
invalid_mode / invalid_role | Falsches Enum |
count_too_large | Über dem Tier-Horizont |
Tipps für Einsteiger
1. Immer zuerst *_status lesen 2. Dann access / missing ansehen 3. Key nie in die URL legen
Nächste Schritte
Community registrieren oder Code-Beispiele mit Ihrem persönlichen Key.