Weather Alerts Card
A custom Lovelace card for severe-weather alerts: severity badges, time progress bars, expandable details. Works with NWS (US), Bureau of Meteorology (Australia), MeteoAlarm (Europe), DWD (Germany), NINA (German civil protection), MeteoSwiss (Switzerland), ECCC (Canada), NSW RFS (Australian bushfire), PirateWeather, and the CAP Alerts integration — auto-detected from your entity’s attributes, configurable through the visual editor (no YAML required).
Note: This thread replaces the earlier NWS Alerts Card thread — the card has grown beyond NWS, so the project was renamed. The underlying
finity69x2/nws_alertsintegration is still the recommended NWS source and the development reference integration.
What it does
- Multi-provider, auto-detected — the card reads your alert entity’s attributes and figures out the source on its own; no manual provider setting needed in most cases.
- Severity-aware — color-coded severity, plus optional official palettes (NWS event colors, MeteoAlarm awareness levels, ECCC’s red/orange/yellow/grey).
- Time progress bars — elapsed/remaining time with relative and absolute timestamps; per-phase styling (
solid,striped,shimmer,pulse) or a Bubble-style wash that fills the whole row. - Expandable details — sanitized description, instructions, and a source link; optional mini-map: the affected-area outline for CAP alerts, or a marker at a point incident.
- Tap actions —
tap_action: { action: details }opens the tapped alert in a pop-up (no add-ons, and genuinely per-alert even on aggregate sensors), or use the standard HA action set:more-info,navigate,url,toggle,call-service,fire-dom-event. - Themeable surfaces — alert bodies are transparent by default, so a translucent theme shows through instead of compounding into a solid look, and a stable set of
--wac-*custom properties covers backgrounds, borders, corners, shadows, and the progress wash. Settable from theme YAML, card-mod, or a dashboardstyle:block, with no card config. - Dismissable alerts — optional per-alert dismiss (button or swipe) with undo, stored browser-locally.
- Broken-source safety net — if an alert sensor goes unavailable, the card shows a clearly-labelled degraded badge that names the broken source. A broken feed is never treated as proof of safety by default. Tunable via
unavailableBehavior. - Localized UI — English, French, Spanish, Italian, German, Simplified Chinese, and Dutch, auto-detected from your HA locale (translation PRs always welcome).
- Compact layout, sort order, severity threshold, event-code filtering — tune it to your dashboard.
- Visual editor — no YAML editing required.
Color themes
Four built-in themes. Left to right: severity-based (default), NWS official event colors, MeteoAlarm awareness colors, ECCC public-alert palette.
Installation
HACS (recommended) — search Weather Alerts Card in HACS → Frontend, or click the badge:
Manual — download weather-alerts-card.js from the latest release, copy it to config/www/, and register /local/weather-alerts-card.js as a JavaScript Module under Settings → Dashboards → Resources.
Setting up
The card ships with a visual editor — most people never need to touch YAML.
- Install a weather-alert integration for your region (see the table below).
- Add Card → Weather Alerts Card on your dashboard.
- Pick your alert entity. For CAP Alerts, pick the device instead — the card auto-discovers each per-alert sensor and re-discovers as alerts come and go. For the NSW RFS feed, use the Auto-collect from installed feeds checkbox.
- Tweak color theme, layout, sort order, and severity threshold in the editor.
Supported providers
| Provider | Region | Integration |
|---|---|---|
| NWS | US | finity69x2/nws_alerts (HACS) |
| BoM | Australia | bremor/bureau_of_meteorology or the safepay fork (HACS) |
| MeteoAlarm | Europe | Built-in meteoalarm |
| DWD | Germany | Built-in dwd_weather_warnings |
| NINA / BBK | Germany (civil protection) | seevee/cap_alerts BBK provider (0.6.0) — reads BBK’s CAP feed directly: DWD weather, LHP flood, and MoWaS / KATWARN / BIWAPP. The built-in nina adapter still works through HA 2026.10; see the expiry note below |
| MeteoSwiss | Switzerland | izacus/hass-swissweather (HACS) — point at sensor.weather_warnings_at_<postcode> |
| ECCC | Canada | seevee/cap_alerts — the recommended ECCC source; see the Canada note below |
| NSW RFS | Australia (bushfire) | Built-in nsw_rural_fire_service_feed — one geo_location.* entity per incident; auto-collect the whole feed with sources: [nsw_rural_fire_service_feed]. Or the CAP Alerts AU provider (0.6.0), which adds Queensland, WA and Tasmania and the fire-ground polygon where the agency draws one |
| PirateWeather | Global | Pirate-Weather/pirate-weather-ha (HACS) |
| CAP Alerts | NWS, ECCC, MeteoAlarm, WMO, GDACS, BBK (Germany), AU (four states) | seevee/cap_alerts — generates one entity per active alert; pair with device: for auto-discovery. Ingests any CAP 1.2 feed, including the WMO Severe Weather Information Centre firehose for countries without a dedicated integration |
Provider is auto-detected from entity attributes; set provider: manually if you ever need to override it.
NINA has a known expiry. The nina integration is removing its entity attribute surface in HA 2026.11 (core#161882), and the replacement puts the description and recommended actions behind an action a card can’t call while rendering. The adapter is correct through HA 2026.10 and stops working after that. The route past it shipped: CAP Alerts 0.6.0 reads BBK’s CAP feed directly and carries MoWaS, KATWARN, BIWAPP and LHP alongside the DWD relay. If you’re on NINA, that’s the move before 2026.11.
A few representative configs
Full options table and the rest of the examples live in the README. A taste:
Most users (NWS, defaults):
type: custom:weather-alerts-card
entity: sensor.nws_alerts_alerts
Compact rows, sorted by severity, NWS official event colors:
type: custom:weather-alerts-card
entity: sensor.nws_alerts_alerts
colorTheme: nws
layout: compact
sortOrder: severity
NSW RFS bushfire feed — auto-collect every active incident, on a map:
type: custom:weather-alerts-card
sources:
- nsw_rural_fire_service_feed
showGeometry: true
geometryStyle: map
showMyLocation: true
(Severity comes from each incident’s category — the Australian Warning System ladder. Incidents have no real expiry, so the card shows an honest “ongoing” state with no progress bar. geometryStyle: map needs core 2026.9 for the tile proxy and goes online; drop it for the offline outline. Leave maxDistanceKm off here, the integration already trims its feed at 20 km. The same config works against CAP Alerts’ AU provider with device: in place of sources:.)
ECCC via CAP Alerts — official palette + affected-area mini-map:
type: custom:weather-alerts-card
device: 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d
colorTheme: eccc
showGeometry: true
CAP Alerts — auto-discover every active alert under a device:
type: custom:weather-alerts-card
device: 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d
(Use the editor’s device picker so you don’t have to type the device ID.)
Common questions
The card shows “No active alerts” but I expect some.
Check the underlying entity first — open it in Developer Tools → States and confirm attributes contains the alert list. The card is read-only on top of that data.
A sensor went unavailable — does the card just show “No active alerts”?
No. When a configured source is unavailable/unknown with no parseable alert, the card shows a degraded badge naming the broken source (with a count when more than one), so a dead feed never reads as safety. unavailableBehavior: compact shrinks it to an icon; hide removes it (not recommended — a broken source isn’t proof of safety). The badge keeps the card on screen even under hideNoAlerts.
Some badges are italic with a tilde, like ~Moderate.
That marks values inferred by the card from other fields (e.g. BoM doesn’t ship a CAP severity, so the adapter derives one from the alert type and group). Plain non-italic badges came straight from the provider.
Auto-detect picked the wrong provider.
Set provider: explicitly — nws, bom, meteoalarm, dwd, nina, meteoswiss, eccc, nsw_rfs, pirateweather, or cap.
Canadian (ECCC) alerts — which integration?
Use the CAP Alerts integration using the ECCC provider flow. It ingests the NAAD CAP feed directly, so you get raw severity/certainty, the original alert polygons, and the affected-area mini-map. Neither the core environment_canada nor the HACS fork is the right fit for this card — core exposes alert detail only through a get_alerts action (which a Lovelace card can’t read during render), and the HACS fork is a maintainer-acknowledged stop-gap. The README’s ECCC section has the full rationale.
Wall-mounted display / kiosk:
expandDetails: true shows details without a tap, hideNoAlerts: true removes the empty-state banner, and showSourceLink: false drops the link out of kiosk mode. fontSize: large (or x-large) is also worth trying at viewing distance.
NWS alert text has awkward mid-sentence line breaks.
That’s the legacy 69-character teletype wrap from the NWS source feed. reformatText: true (the default) strips it while preserving paragraph breaks — leave it on unless you specifically want the raw text.
Help & bug reports
- Questions, dashboard tips, screenshots, theme requests: reply on this thread.
- Bugs and feature requests: open an issue on GitHub — they get lost in forum scroll.
Support
If the card’s useful, consider tipping at Ko-fi
or — better — donating to The Y’all Squad, a rapid-response program providing direct aid, chainsaws, and supplies to families hit by severe weather.

