Weather Alerts Card (v3.7.0)

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_alerts integration is still the recommended NWS source and the development reference integration.


Weather Alerts Card - Hero

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 dashboard style: 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.

Color themes


Installation

HACS (recommended) — search Weather Alerts Card in HACS → Frontend, or click the badge:

Open in HACS

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.

  1. Install a weather-alert integration for your region (see the table below).
  2. Add Card → Weather Alerts Card on your dashboard.
  3. 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.
  4. 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

A grass fire marked on the mini-map, with the you-are-here ring at home about 60 km away

(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 :coffee: or — better — donating to The Y’all Squad, a rapid-response program providing direct aid, chainsaws, and supplies to families hit by severe weather.


GitHub: GitHub - seevee/weather_alerts_card: Multi-provider weather alerts card for Home Assistant: NWS, ECCC, MeteoAlarm, BoM, DWD and more, with severity color themes and time-progress bars · GitHub

10 Likes

This is the best looking card in my entire HA layout. I don't suppose you'd be interested in creating a Home Assistant Theme to match it, so everything else can look as clean and professional as this card does? :slightly_smiling_face:

1 Like

Thank you for the high praise!

The card primarily consumes your configured theme for all text and background colors, and severity colors in the default mode. The original goal was to minimize visual friction by respecting your theme as closely as possible. Neither the event-coded NWS theme nor the MeteoAlarm/ECCC severity themes have any real utility outside of weather alerting purposes.

With respect to the accent bar, pills, and progress bar - I briefly trialed a card-mod theme but dropped the effort, as it would require extensive per-card configuration to provide any real value. Realistically, I would need to maintain something like a card collection if I wanted to use those elements in an arbitrary entity context.

I can share the rough card-mod theme I sketched if anyone wants to tinker. I would investigate this further myself, but my partner says no until I finish a few more of my active projects. Frankly, they're right. :slight_smile:

1 Like

Noting that UIX 7.4.0 now allows for local theme override for cards. So if you do publish your theme, it is now very easy to have a user apply at a card level.

1 Like

This is a very clever project, and it does remove the CSS-authoring burden I was most concerned about. The potential for state-driven coloring support via forge is particularly appealing to my vision for such a theme.

Thank you for including extensive documentation with uix; I'll have to dive more into it to see what is possible. A proper theme is still on the someday list.

1 Like

Congrats on a great card. Along with the BoM weather information for Australia, another integration for NSW, Australia could be Hazards Near Me app | NSW Government

1 Like

This is absolutely amazing, thank you! I had sucked a hacked way to show alerts with a mix of conditional and markdown cards, and this replaces 100% what I have with just a few clicks. Even the little touches like being able to hide when there are no active alerts is epic. Keep up the great work!

1 Like

Thank you, I'm glad you like it!

I must admit, I hadn't realized that fire warnings were issued separately from BOM. After checking the app at your link and poking around a bit, it looks like it uses SES and RFS feeds - BOM sources already provide the "wet" weather portions (SES is derived from BOM), and it may be possible to get the fire feed from an existing integration: nsw_rural_fire_service_feed.

There will be some quirks in supporting this integration, as the original data source does not publish useful end dates/times, so the progress bar becomes less meaningful. I do think this is still worth adding, so expect to see an implementation for my next provider pass.

EDIT: opened this issue to guide dev work. Feel free to comment with suggestions or follow along for progress.

You're most welcome! Your scenario is quite literally the situation I found myself in before I started this project. Limitations of the markdown card (particularly the details section behavior on re-renders) forced me to move to a typescript approach to get this working well enough for my own purposes.

I've mentioned before that this card began life as a markdown card, thanks in no small part to @finity's documentation guidance for NWS Alerts; some of my favorite features like hideNoAlerts and excludeEventCodes are also direct results of user feedback. This really has been a group effort in more ways than one.

Thank you for the encouragement, and thank you to everyone who has contributed feedback, bug reports, ideas, and code thus far. I greatly appreciate it!

I'm no developer, but if there's anything I can ever do to help please let me know!

1 Like

Since you asked :slight_smile:

I would love to see more screenshots of the card in the wild. I've added so many configuration options, it's hard to get a sense of how it is fitting into actual layouts; most of what I see during active development is a massive grid of cards and tens to hundreds of alerts.

I suppose I want ideas for elevating my production setup as well. What I run is pretty barebones, just one location per view with weather-radar-card underneath.

I have it set to over the top block on my weather dash here. The chip icon on the top left also shows a :warning: instead of the current condition when a weather alert is active.

1 Like

Cheers seevee, I will follow with interest.

1 Like

thanks! with this, I can replace a lot a template sensors and card visibility conditions.

as suggestions, please add the following configuration options:

  • have a straight line (not diagonal dashes) for the active range
  • allow to un-hide (manually or after x hours) manually hidden alerts
1 Like

Glad this is coming in handy for you!

Some specific points to think about on the un-hide functionality:

Alerts tend to fall off after a matter of minutes/hours, or they receive "update" follow up events. Anything issued as an update that supersedes the previous alert should be effectively un-hidden. This does depend on how the provider handles alert updates, and integration alert data fidelity, so let me know what provider integration you're using with the card.

In the meantime, you can already manually restore all hidden alerts via the card visual editor:

As the alerts naturally expire, this hide list should purge stale entries. Let me know if this behavior makes sense - I do want to provide complete dismissal functionality, but I didn't want to add restore actions to the actual card as it would directly conflict with the "hide no alerts" option.

I'll also have a look at the styling treatment for the progress bars, I'm open to making this configurable.

With the 2026.07 update to the official Environment Canada integration, is is possible to have it supported?

Of note, ECCC has decided to use colours (Red, Orange, Yellow) to denote where the event lies on the confidence/impact matrix -- regardless of whether it is actually occurring (warning), the conditions are favourable to occur (watch), or a statement / advisory. It would be nice to have this identified separately from severity for good iconography and visual identification.

1 Like

It is possible to add heat and cold alerts from the UKHSA?

I cant seem to get the code right to get it to show.

1 Like

Good news - the card already does what you’re describing. There’s a colour theme built specifically for this: set colorTheme: eccc (in the visual editor it’s the “ECCC Public Alerts” option). It reads ECCC’s Red/Orange/Yellow/Grey level straight from the feed and colours each alert by that scheme (matching the weather.gc.ca palette) independently of the severity tier the card sorts and badges by. The confidence and impact fields get mapped in too (as certainty/severity hints), so no template sensors needed.

The one catch is where the data comes from. The card reads the color / impact / confidence fields from the alert entity’s attributes. The 2026.07 core integration only returns them from the get_alerts action, not as attributes, so the card can’t see them there. The turnkey feed is cap_alerts - it exposes those fields as attributes, so pairing it with colorTheme: eccc gets you exactly the colour-coded iconography you’re after.

wrt @talixewi’s comment: the template-sensor approach works when a provider just tucks data in attributes, but ECCC’s new core integration is a step harder: you’d need a trigger-based template sensor that calls get_alerts with response_variable and republishes those fields as attributes.

There’s no UKHSA support yet - the card only renders entities matching a provider it recognizes, so an arbitrary sensor won’t show unless the YAML matches the shape of one of the existing adapters.

Can you paste the entity you’re feeding it and its attributes (Developer Tools → States)? That’ll help inform our options for supporting their feed.

I’ve done a first pass at NSW RFS in v3.2.0-alpha.5, based on the built-in nsw_rural_fire_service_feed integration.

v3.2.0 is coming soon, will drop an accompanying post here when I publish it.