Renewable Energy Forecasting

Weather-based renewable energy generation forecast

Regional Solar/Wind generation forecast based on ACTUAL installed capacity from MaStR, combined with weather forecasts from Visual Crossing API.

How it works:

  1. Queries MaStR database for ALL installed solar/wind capacity in the specified area
  2. Fetches weather forecast from Visual Crossing API (24h cache, IEC-compliant)
  3. Calculates expected generation using IEC 61853 (solar) / IEC 61400 (wind) standards
  4. Returns daily MW forecast + weather conditions for up to 14 days

Key Features:

  • Real installation data from German MaStR registry (3.7M+ installations)
  • IEC standard compliance (IEC 61853 for solar, IEC 61400 for wind)
  • Daily forecasts up to 14 days
  • Filter by grid operator (MaStR ID), federal state, district, municipality, or postal code
  • Optional cross-validation with SMARD data

Use Cases:

  • Grid Operators (VNB/GNB): Anticipate feed-in volumes and plan redispatch measures
  • Energy Suppliers (Stadtwerke): Optimize procurement by forecasting local renewable generation
  • Virtual Power Plants (VPP): Aggregate forecasts for trading and balancing markets
  • Energy Trading: Intraday and day-ahead market positioning

Parameters:

  • installationType: "solar" (default), "wind", or "all" (combined solar+wind)
  • forecastDays: Forecast period 1-14 days (default: 7)
  • resolution: Time resolution — "daily" (1 point/day, default), "hourly" (24 pts/day, intraday trading), "15min" (96 pts/day, §12 StromNZV balancing/scheduling)
  • gridOperatorMastrId: MaStR Netzbetreiber-ID (SNB/GNB...) — use cernion_vnb_lookup to resolve BDEW→MaStR
  • bundesland: German federal state (e.g., "Bayern", "Baden-Württemberg")
  • landkreis: District/Landkreis name
  • gemeinde: Municipality/Gemeinde name
  • postleitzahl: 5-digit postal code (e.g., "69115")
  • latitude/longitude: Coordinates for precise weather data
  • startDate: Optional start date (YYYY-MM-DD). Omit for default tomorrow behaviour (no breaking change). Past dates retrieve observed weather data (Visual Crossing historical observations) — identical IEC calculation, 30-day cache. Response gains summary.isHistorical and summary.dataMode fields.
  • includeValidation: Cross-validate with SMARD data (default: false)
  • installationMastrNummer: Single-installation forecast by MaStR unit ID (SEE…=solar, SWE…=wind). Highest priority — overrides all regional filters. installationType is auto-derived from prefix.
  • messlokationId: Single-installation forecast via Metering Location ID (MeLo, 33 chars, starts with DE). Resolved via NAP table. Priority: installationMastrNummer > messlokationId > gridOperatorMastrId > location.
post/api/forecast/generation-forecast

Request

  • Base URL: https://api.cernion.de
  • URL: https://api.cernion.de/api/forecast/generation-forecast
  • Auth: none declared

Query parameters

tokenstring

Optional Cernion MCP token as URL query parameter. If provided, it overrides CERNION_TOKEN for this request. Prefer Authorization Bearer header in production to reduce token exposure in URLs/logs.

Request body

installationType'solar' | 'wind' | 'all'

Installation type to forecast

forecastDaysnumber

Number of days to forecast (1-14)

resolution'daily' | 'hourly' | '15min'

Time resolution of forecast output. "daily" = 1 pt/day (default); "hourly" = 24 pts/day (intraday dispatch/trading); "15min" = 96 pts/day (§12 StromNZV balancing/scheduling, linear interpolation between hourly values)

gridOperatorMastrIdstring

MaStR Netzbetreiber-ID (SNB/GNB...). Use cernion_vnb_lookup to resolve BDEW → MaStR ID.

installationMastrNummerstring

MaStR unit ID for single-installation forecast (SEE…=solar, SWE…=wind). Highest priority — overrides all regional filters. installationType is auto-derived from prefix.

messlokationIdstring

Metering location ID (MeLo, 33 chars, starts with DE). Resolved via NAP table. Priority: installationMastrNummer > messlokationId > gridOperatorMastrId > location.

bundeslandstring

German federal state

landkreisstring

District/Landkreis name

gemeindestring

Municipality/Gemeinde name

postleitzahlstring

5-digit postal code

latitudenumber

Latitude for precise weather data

longitudenumber

Longitude for precise weather data

startDatestring

Optional start date (YYYY-MM-DD). Omit for default tomorrow behaviour. Past dates switch to historical observation mode (30-day cache, observed weather instead of forecast).

includeValidationboolean

Cross-validate forecast with SMARD data

format'json' | 'csv' | 'xlsx'

Output format

tokenstring

Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

Example request

{
  "installationType": "all",
  "forecastDays": 7,
  "resolution": "daily",
  "gridOperatorMastrId": "SNB935578300972",
  "installationMastrNummer": "SEE984033548619",
  "messlokationId": "DE0010107352900000000000000336372",
  "bundesland": "Bayern",
  "landkreis": "Rhein-Neckar-Kreis",
  "gemeinde": "Heidelberg",
  "postleitzahl": "69115",
  "latitude": 49.3988,
  "longitude": 8.6724,
  "startDate": "2026-01-15",
  "format": "json"
}

Response

Forecast generated successfully

successboolean

Example response

{
  "success": true,
  "summary": {
    "location": "Netzgebiet SNB935578300972",
    "type": "all",
    "totalCapacityMW": 25.77,
    "installationCount": 2756,
    "dataMode": "weather_forecast"
  },
  "metadata": {
    "toolName": "mastr_generation_forecast",
    "weatherDataSource": "Visual Crossing",
    "iecStandardApplied": "IEC 61853",
    "cachingEnabled": true,
    "apiCallsUsed": 1,
    "orientationCorrectionApplied": true,
    "portfolioOrientationFactor": 0.9712,
    "orientationDataCoverage": 0.8341
  }
}

Changes

No recorded changes to this operation across all 2 revisions of this API.