3.6.1 promotes 3.6.1-rc1 to stable after a short bake. Two new things since rc1: a fix for ghost trails during initial radar load (contributed by @genericJE) and a build-time security bump for serialize-javascript.
The wind source registry keeps its Experimental tag for one more release. If you want to pin pre-3.6.1 wind behaviour, set
wind_source: 'dwd_icon'in your card YAML (or pick it via the editor's Wind Data Source dropdown).
Bug fixes
- Shadow clouds / flicker at
radar_opacity < 1(#151). With per-layer opacity set toradar_opacity, two semi-transparent radar layers stacked during the crossfade and the alpha-over composite brightened during the overlap window — visible as "shadow clouds" (rain from both frames showing through where they didn't perfectly align) and a flicker on every animation tick. Moved all radar tile layers into a dedicatedwrcRadarLeaflet pane (z-index 240) and appliedradar_opacityon the pane. Individual layers crossfade between 0 and 1, so the composite α inside the pane stays at 1 throughout the overlap. - Ghost trails of stacked radar frames during initial load (#155). While the card was still fetching frames on initial load, the playback showed a growing trail of overlapping past frames stacked under the current one — small rain cells looked smeared until the loop completed a full cycle. Cause was a missing companion bump:
_currentSlotwas shifted when a new older frame prepended_loadedSlots, but_prev1Slotwasn't, so the wrong layer faded out on the next tick. Fixed by shifting both indices together. Contributed by @genericJE.
Security
serialize-javascriptbumped 6.0.2 → 7.0.5 to remediate two advisories:- GHSA-5c6j-r48x-rmvq — high (CVSS 8.1), RCE via crafted
RegExp.flags/Date.toISOString - GHSA-qj8w-gfj5-8c6v — moderate (CVSS 5.9), CPU-exhaustion DoS via crafted array-likes
- GHSA-5c6j-r48x-rmvq — high (CVSS 8.1), RCE via crafted
- Build-time dependency only (terser/rollup chain) — the shipped card bundle never executed
serialize-javascript, so end users were not exposed. Remediation is for build-environment safety.
What's new — Experimental (from 3.6.1-rc1)
Wind source registry (wind_source config field)
Three options — pick the forecast model behind the barbs / arrows / streamline overlays:
'dwd_aicon'(new default for non-US) — DWD's AI-augmented variant of ICON-D2. Same 0.25° global grid (~28 km) and hourly cadence as ICON-D2, served from the same WCS endpoint; visibly better short-range accuracy at zero behaviour cost. Configs withoutwind_sourceset silently upgrade from ICON to AICON on first reload.'dwd_icon'— Raw DWD ICON-D2 numerical model (the previous default). 0.25° global grid, hourly anchor, +48 h forecast, new model run every 3 h. Opt-in for users who prefer the unadjusted model output.'ndfd_wind'(new default for fresh installs in US locations) — NWS National Digital Forecast Database (forecaster blend of HRRR + RAP + NAM + GFS). 2.5 km over CONUS / AK / HI / PR, hourly updates, 3-hourly forecast steps out to 7+ days. The same sourceapi.weather.govgridpoint forecasts come from, but as a raster grid the bulk-fetch pipeline can consume in one WCS call.
Editor's Wind Overlay subpage has a new Wind Data Source dropdown above the Style picker; cadence helper line under it switches per-source.
Fresh-install auto-default by location
When you add the card to a new dashboard via the picker, wind_source is auto-set based on HA's location:
hass.config.country === 'US'→'ndfd_wind'- Otherwise, lat/lon bbox check against CONUS / AK / HI / PR — match →
'ndfd_wind' - Else →
'dwd_aicon'(the new global default)
Existing configs are untouched — they don't have wind_source set, and absent-field resolves at runtime to 'dwd_aicon'.
Silent NDFD → AICON fallback
When wind_source: 'ndfd_wind' but the viewport centre pans outside US coverage (e.g., US user panning over the Atlantic or Pacific), the fetcher silently dispatches to AICON for that bbox so you still see real wind data instead of fill values. Configured source is unchanged in your config; one info log per session announces the auto-switch.
Example configs
# Pin pre-3.6.1 wind behaviour:
type: custom:weather-radar-card
dwd_wind_flow: true
wind_source: dwd_icon# US user, high-res NDFD arrows:
type: custom:weather-radar-card
dwd_wind: arrows
wind_source: ndfd_windKnown limitations of the experimental wind work
- Bilinear sampling near NDFD coverage boundaries may produce slightly attenuated wind values within ~1 cell of the coast — mostly visible at AK / HI coastlines. The 9999.0 fill sentinel is detected and treated as calm so particles don't teleport, but the bilinear blend across a valid/fill cell pair still attenuates.
- Silent fallback uses bbox-centre decision point — a panning user who half-crosses the coast sees the source flip on the next refetch (transient mid-pan visuals are unaffected).
- 11 locale files have
[en]-prefixed English fallbacks for the new editor strings (Wind Data Source dropdown / cadence notes). Real translations land in a follow-up.
Upgrade notes
No config migration runs. Existing configs work unchanged.
- Wind users on non-US locales: your wind overlay will look slightly different on first reload — that's the silent ICON → AICON default flip. Same provider, same grid resolution; AICON is the AI-augmented post-processing variant. If you prefer the raw model, set
wind_source: 'dwd_icon'. - Wind users in the US: existing configs without
wind_sourcecontinue to use AICON globally (not NDFD). To switch to NDFD over US regions, addwind_source: 'ndfd_wind'or pick it via the editor. - Fresh installs in US locations get NDFD automatically.
Internal
- Tests: 403 → 440 across the 3.6.1 line (US-detection bbox edges, country-code precedence, AICON / NDFD URL shapes, NDFD Mercator / speed-dir parsing, fill-value sentinel handling, silent-fallback dispatch with cache-key isolation).
- New file src/wind-source-caps.ts holds the source registry + US-detection helpers.
Full Changelog: v3.6.0...v3.6.1