The Bright Sky API is a free, public API that provides weather data from the German Weather Service (DWD). It was developed to simplify access to this data, as the original DWD data is often in difficult-to-interpret formats. Bright Sky converts this data into an easy-to-use JSON format and makes it accessible via an API.
Here is a more detailed explanation:
Goal: The Bright Sky API aims to make weather data from the German Weather Service (DWD) easily accessible to developers and other interested parties.
Data source: The data comes from the DWD and includes weather observations from stations and weather forecasts, such as the MOSMIX models.
Format: The Bright Sky API provides the data in JSON format, which facilitates integration into applications and websites.
Access: The API is public and can be used without an API key, keeping the barrier to entry low.
Open source: The project is open source, meaning the source code is publicly available and can be further developed by the community.
Advantages: The Bright Sky API offers an easy way to access weather data that would otherwise be difficult to handle and is free of charge, making it an attractive option for many projects.
The current weather data is updated cyclically twice an hour by the DWD. The weather data from the nearest DWD (German Weather Service) weather station is taken into account. If weather values are not available, they are automatically filled in using the second-most distant, third-most distant, etc. weather station as a fallback. The fallback data for the corresponding weather data can be found in the adapter.
In addition to the high quality of the data, the solar and solar data are particularly interesting:
Since the values from the data point brightsky.0.current.solar_60, for example, are given in kWh/m² and are already expressed as energy per 1h, the value multiplied by 1000 can also be expressed in W/m².
Example of global radiation (W/m²)

Unlike many other adapters, no account is required.
The geocoordinates for the position can be imported either directly from the browser or from ioBroker. are

The data is as follows Provided:

- current - the current weather (see also: https://brightsky.dev/docs/#/operations/getCurrentWeather )
- daily - the current weather forecast for the next configurable number of days (see
forecastDaysconfig, default 7 days)daily.XX.hourly- optional nested hourly data under the respective day (controlled byhourlyForecastDays; only present for the first N days; 0 = disabled)daily.XX.day/daily.XX.night- aggregated day/night summaries per day
- hourly - flat list of hourly forecasts for the next N hours (see
hoursconfig; independent of the nesteddaily.XX.hourlyfeature; see also: https://brightsky.dev/docs/#/operations/getWeather ) - radar - precipitation radar forecast for the next 2 hours in 5-minute intervals with values in mm per 5 minutes. Includes maximum values across grid cells and cumulative sums across all grid areas (see also: https://brightsky.dev/docs/#/operations/getRadar )
- (ticaki) Fixed: radar
max_precipitation_forecast.*_sumcumulative values were inflated because precipitation was summed across whole grid columns and scaled withradarDistance; the cumulative forecast now accumulates each grid cell over time and reports the maximum single location - (ticaki) Changed: radar precipitation forecasts now report
nullinstead of-1when no radar data is available - (ticaki) Fixed: temporary API failures are retried automatically, so short Bright Sky outages no longer leave the data stale
- (ticaki) Changed: temporary API problems (e.g.
500 Internal Server Error) are logged as warnings instead of errors with a stack trace - (ticaki) Changed: more precise sunrise/sunset times and solar yield estimate (suncalc 2.x)
- (ticaki) Fixed: days without sunrise or sunset (polar day/night) are handled correctly
- (ticaki) Added
conditionUI(translated condition text) tocurrentandhourly.NN, matching the existingdaily.NN.conditionUI#110 - (ticaki) Added a config option to choose the language for weather texts independent of the ioBroker system language #110
- (ticaki) Requires Node.js >= 22 now; repository checker fixes (i18n, docs, tooling)
- (ticaki) Fixed:
daily.NN.dayaggregations stayed null/zero whenpositionwas not a validlatitude,longitude; the adapter now logs a clear error instead of producing empty data
- (ticaki) Fixed: DWD station ID was incorrectly logged as WMO station ID fixes #91
- (cavernerg) Added nested hourly forecast data under
daily.XX.hourly.YY(0 = disabled) - (cavernerg) Added configurable number of forecast days (
forecastDays, default 7) - (cavernerg) Admin UI restructured into labeled sections (Location, Forecast, Current Weather, Radar)
- (ticaki) sunrise and sunset fixed
- (ticaki) fixed: states/timezone/translation
- (ticaki) Customisable update interval for Daily (expert)
- (ticaki) BREAKING: remove forHomoran states

