Weather — site weather
GET /v1/plant/weather— display weather (secondary, not a lead product). Tmin/Tmax already in PV Forecast. Optional Loxone: Weather guide. Classweather: Community 48/day — hourly is enough.
What this does
Weather returns current conditions and a short daily outlook for the location in your plant profile — temperature, condition text, sun/rain, wind.
Everyday example: “Now 22 °C, partly cloudy, wind 12 km/h. Today max 27 °C, sunrise 05:48.”
Data source: Open-Meteo (keep attribution where you show weather).
When to use
- “Weather” room / status displays in the smart home
- Simple text panels without your own weather service
For PV kWh estimates → PV Forecast.
Endpoint
GET https://api.spotpriceapi.com/v1/plant/weather
Header:
X-API-Key: sf_live_YOUR_KEY
At least Community. Basic → weather_status: not_available.
Query parameters
| Parameter | Default | Values | Meaning |
|---|---|---|---|
days | 3 | 1…7 | Daily outlook from today |
timezone | profile / Europe/Vienna | IANA | Local times |
locale | from TZ | de / en | Condition labels + hints |
Location from the portal
Coordinates come from the plant profile. Missing → weather_status: incomplete_input with portal_hint and portal_url.
Minimal example
curl -s "https://api.spotpriceapi.com/v1/plant/weather?days=3&locale=en&timezone=Europe/Vienna" \
-H "X-API-Key: sf_live_YOUR_KEY"
{
"weather_status": "ok",
"weather_engine": "plant_weather_v1",
"quota_class": "weather",
"current": {
"temperature_c": 22.1,
"relative_humidity_pct": 55,
"wind_speed_kmh": 12.0,
"wind_direction_text": "NW",
"solar_radiation_pct": 78,
"condition": "Partly cloudy",
"precipitation_mm": 0.0
},
"days": [
{
"date": "2026-08-12",
"label": "D0",
"temperature_max_c": 27.0,
"temperature_min_c": 15.0,
"condition": "Partly cloudy",
"sunrise": "05:48",
"sunset": "20:31",
"precipitation_mm": 0.0
}
],
"loxone": {
"temp_c": 22.1,
"humidity_pct": 55,
"wind_kmh": 12.0,
"solar_pct": 78,
"condition": "Partly cloudy",
"wind_dir": "NW",
"sunrise": "05:48",
"sunset": "20:31"
},
"attribution": "Weather data by Open-Meteo.com"
}
Response fields (plain language)
| Field | Meaning |
|---|---|
weather_status | ok / incomplete_input / weather_missing / not_available |
current.* | Now: temp, humidity, wind, solar %, condition |
days[] | Min/max, condition, sunrise/sunset, precip |
loxone.* | Flat fields for PicoC (temp_c, condition, …) |
portal_hint / portal_url | When coordinates are missing |
Flow
Portal: coordinates
↓
GET /v1/plant/weather?days=3
↓
current + days + loxone.*
↓
Text display / Virtual Inputs
Data source & refresh
| Item | Spec |
|---|---|
| Source | Open-Meteo Forecast at the plant lat/lon |
| Cache | plant_weather/{api_key_id}/latest.json (same cache as PV Forecast / Hours / portal) |
| Content | Hourly up to 16 days (+ past 7): radiation, temp, humidity, pressure, precip, wind, weather code; daily: min/max, sun, rain |
| Refresh | Timer spotforecast-plant-weather 2×/Vienna day: ~05:20 and 12:20 Europe/Vienna (±15 min, HA primary only) · also after portal geo save · schema upgrades force a same-day refresh · after 12:00 a morning cache is stale if fetched before ~11:00 |
| API path | Short catch-up attempt if cache is stale (~8 s timeout), else weather_missing |
Without portal coordinates there is no cache and no fetch.
Quota
Class weather: Community 48/day (Professional/OEM 288). Independent of Decision and of pv.
Attribution
Weather data: Open-Meteo. Credit the source on public displays.
Next steps
- Loxone Weather — PicoC + Virtual Output (start + :10)
- Loxone overview — shared host VO, minute plan
- PV Forecast — yield in kWh (Tmin/Tmax already live in PV texts)
- Code samples
Register for Community or code samples with your personal key.