Rain Radar is a custom Home Assistant integration for Nordic rain monitoring. It combines Regnradar radar imagery with selectable MET Norway, SMHI, or DMI point forecasts so dashboards and automations can answer practical questions such as whether it is raining now, whether rain is expected soon, and how high the rain risk is in the next hours.
The integration includes Home Assistant entities, a config flow, options flow, diagnostics, localized Home Assistant setup text, authenticated radar image endpoints, and a bundled Lovelace dashboard card.
- Monitor current rain intensity at a configured location.
- Detect when rain is expected inside a configurable look-ahead window.
- Estimate how many minutes remain until rain arrives.
- Track the highest forecast rain probability for the configured horizon.
- Show radar frames, coverage, forecast markers, and location context in the bundled dashboard card.
- Use radar coverage, data age, provider status, and latest radar time as diagnostic signals.
- Configure one or more locations through the Home Assistant UI.
- Keep the card bundled with the integration, with no separate frontend repository required.
Radar imagery always comes from Regnradar/Vackertväder. Forecast-based entities can use open data from MET Norway, SMHI, or DMI.
The radar source and forecast provider are separate settings:
| Setting | Choices | What it affects |
|---|---|---|
| Radar source | Nordic, Sweden, Denmark | The map overlay and radar coverage shown in the card. All choices are fetched through Regnradar. |
| Forecast provider | MET Norway, SMHI, DMI | The Home Assistant precipitation, rain soon, rain arrival, and rain risk entities. |
The Nordic radar source uses MET frames through Regnradar and is the only radar source that can include radar forecast frames when Regnradar exposes them. The Sweden radar source uses SMHI radar frames through Regnradar and currently contains observed radar frames only. The Denmark radar source uses DMI radar frames through Regnradar and currently contains observed radar frames only.
Each forecast provider exposes different data, so the entities are normalized as far as possible but not identical in meaning.
| Provider | Best fit | Main limitations |
|---|---|---|
| MET Norway | Default forecast provider and best match for the original rain-risk behavior. | Radar imagery still comes from Regnradar. MET point nowcast coverage is not available for every location, and radar forecast map frames are only available through the Nordic Regnradar source when Regnradar exposes them. |
| SMHI | Swedish point forecasts for rain now, rain soon, arrival, and rain risk. | SMHI forecast data is point/grid-point based and does not add radar forecast frames. The Sweden radar source through Regnradar is observed radar imagery only. |
| DMI | Denmark-focused point forecasts for rain now, rain soon, and arrival. | DMI does not expose the same general probability_of_precipitation signal used by MET Norway and SMHI. Rain risk is therefore threshold-based from DMI precipitation intensity and is reported as 100 when the configured rain threshold is expected to be met, otherwise 0. DMI forecast data can be rate limited when the Open Data service is busy, so Rain Radar caches responses conservatively and may show stale or unavailable forecast entities until the next successful update. |
Because of these differences, compare sensor.<name>_rain_risk_12h values only within the same forecast provider. MET Norway and SMHI can represent forecast probability, while DMI represents whether the configured rain threshold is expected to be met in the forecast horizon.
Rain Radar is not a HACS default repository yet. Install it as a custom repository:
- Open HACS in Home Assistant.
- Open the three-dot menu.
- Select Custom repositories.
- Add
https://github.com/Nicxe/home-assistant-rain-radar. - Select category
Integration. - Install Rain Radar.
- Restart Home Assistant.
Download rain_radar.zip from the latest GitHub release. Extract the archive and place the rain_radar folder in config/custom_components/, then restart Home Assistant.
Set up Rain Radar through Settings > Devices & services > Add Integration > Rain Radar.
| Field | Default | Notes |
|---|---|---|
| Location name | Home |
Used as the base name for the created entities. |
| Latitude | Home Assistant latitude | Must be between -90 and 90. |
| Longitude | Home Assistant longitude | Must be between -180 and 180. |
| Forecast provider | MET Norway | Used for rain arrival, rain soon, precipitation, and rain risk. Choose SMHI for Swedish point forecast data or DMI for Denmark-focused point forecast data. |
| Radar source | Nordic | Regnradar source used for radar frames and map coverage. Choose Sweden for SMHI radar frames through Regnradar or Denmark for DMI radar frames through Regnradar. |
| Rain threshold | 0.1 mm/h |
Minimum intensity that counts as rain. |
| Rain soon window | 60 minutes |
Look-ahead window for the rain soon binary sensor. |
| Sampling radius | 1000 meters |
Reserved for provider strategies. MET Norway, SMHI, and DMI currently use point/grid-point forecasts. |
| Rain risk horizon | 12 hours |
Forecast horizon inspected by the rain risk sensor. |
The same values can be changed later from the integration options. Setup and options text is available in English, Swedish, Finnish, Norwegian Bokmål, and Danish.
Rain Radar creates these entities for each configured location. Entity IDs use the configured location name by default, but Home Assistant may adjust them to avoid duplicates.
| Entity | Type | State | Main attributes |
|---|---|---|---|
binary_sensor.<name>_raining_now |
Binary sensor | on when current precipitation is at or above the threshold |
Attribution, entry ID, stale status |
binary_sensor.<name>_rain_soon |
Binary sensor | on when rain is expected inside the configured window |
Attribution, entry ID, stale status |
binary_sensor.<name>_radar_coverage |
Binary sensor | on when radar coverage is available |
Attribution, entry ID, stale status |
sensor.<name>_precipitation_now |
Sensor | Current precipitation intensity in mm/h | Forecast samples, threshold, window, stale status |
sensor.<name>_rain_risk_12h |
Sensor | Highest normalized rain risk in percent | Hourly risk/probability, precipitation amount, symbol code, update status |
sensor.<name>_rain_arrival |
Sensor | Minutes until expected rain, when known | Attribution and entry ID |
sensor.<name>_data_age |
Sensor | Age of the newest available data in minutes | Attribution and entry ID |
sensor.<name>_provider |
Sensor | Active provider name | Provider IDs, radar source, status, forecast coverage, radar coverage, attribution |
sensor.<name>_latest_radar_time |
Sensor | Timestamp of the latest radar frame | Attribution and entry ID |
Raw provider payloads are not stored as entity attributes. Forecast details are bounded to the values needed by dashboards and automations. For MET Norway and SMHI, the rain risk sensor is based on provider precipitation probability where available. For DMI, it is a threshold-based forecast signal because DMI does not provide the same general precipitation probability field.
The rain-radar-card is bundled with the integration. On startup, Rain Radar copies the bundled frontend assets to config/www, registers /local/rain-radar-card.js?v=... as a Lovelace JavaScript module, and exposes authenticated radar frame endpoints for the card.
After installing or updating the integration, reload your browser once if the card is not visible immediately.
Add the card through the dashboard UI editor and choose Rain Radar Card. The editor includes an entity selector, so select one of the Rain Radar entities for the location you want to show. binary_sensor.<name>_rain_soon is a good default because the card can find companion Rain Radar entities from the same integration entry.
Minimal YAML:
type: custom:rain-radar-card
entity: binary_sensor.home_rain_soonCommon card options:
type: custom:rain-radar-card
entity: binary_sensor.home_rain_soon
title: Rain risk
show_icon: true
show_status: true
show_precipitation: true
show_arrival: true
show_risk: true
show_latest_radar: true
show_provider: true
show_coverage: true
show_timeline: true
show_map: true
show_status_strip: true
show_location_marker: true
show_forecast: true
map_zoom_controls: true
map_scroll_wheel: false
forecast_minutes: 60
arrival_format: auto
height: 420The card supports an expandable details section. Summary rows can stay visible, individual metadata rows can be enabled or disabled, and the map can be hidden when only the summary is needed.
The metadata row order can be customized with meta_order. Use divider to separate always-visible summary rows from rows that belong under the expandable details section.
type: custom:rain-radar-card
entity: binary_sensor.home_rain_soon
meta_order:
- status
- arrival
- precipitation
- risk
- divider
- latest_radar
- coverage
- provider
- forecast
- timeline
- mapManual Lovelace resource setup should only be needed for troubleshooting. If you add it manually, use URL /local/rain-radar-card.js and type JavaScript Module. Do not edit Home Assistant .storage files directly.
Rain soon notification:
triggers:
- trigger: state
entity_id: binary_sensor.home_rain_soon
to: "on"
actions:
- action: notify.mobile_app_phone
data:
message: "Rain is expected soon."
mode: singleRain intensity threshold:
triggers:
- trigger: numeric_state
entity_id: sensor.home_precipitation_now
above: 0.5
actions:
- action: notify.mobile_app_phone
data:
message: "Rain intensity is increasing."
mode: singleRain risk threshold:
triggers:
- trigger: numeric_state
entity_id: sensor.home_rain_risk_12h
above: 70
actions:
- action: notify.mobile_app_phone
data:
message: "There is a high chance of rain in the next 12 hours."
mode: singleUse GitHub issues for bug reports, feature requests, and support questions. Pull requests should include relevant tests and keep user-facing text in English.