github jpettitt/weather-radar-card v3.11.0
3.11.0

4 hours ago

Stable release. Two new map styles: MapTiles, which uses Home Assistant 2026.10's own map tiles, and Custom for any tile URL. Radar tiles are now kept in the browser, so switching dashboards or reloading no longer refetches the loop, and low_power_mode makes the card usable on old wall tablets. Drop-in upgrade from 3.10.0 — no breaking changes, no config changes required.

What's new

  • map_style: MapTiles — OpenStreetMap tiles through Home Assistant's own map_tiles integration instead of fetching them directly: localized labels, no CARTO watermark, no API key. Requires Home Assistant 2026.10+; the editor greys out the option on older cores, and YAML falls back to Light if set anyway (#276).

  • map_style: Custom — custom_tile_url takes any {z}/{x}/{y} raster template (self-hosted tile server, caching proxy, keyed provider), with an optional custom_tile_attribution. custom_tile_theme: invert shows light tiles as a dark map; custom_tile_theme: dark tells the card the tiles are already dark. Available in the visual editor. Put API keys in the URL itself: a URL with any placeholder other than {s}/{x}/{y}/{z}/{r}/{-y}, such as an unedited {apikey}, shows OpenStreetMap and logs a warning. Contributed by @jvandenbroek (#273).

    type: custom:weather-radar-card
    map_style: Custom
    custom_tile_url: https://tiles.example.com/{z}/{x}/{y}.png
    custom_tile_attribution: "© Example Tiles"
    custom_tile_theme: invert
  • Radar tiles are reused instead of re-downloaded — switching dashboards and back, or reloading, no longer refetches the whole loop. Tiles are kept in the browser (IndexedDB) once their content is final, until they leave the card's history window plus 30 minutes; newer and forecast frames stay in memory for 5 minutes. Matters most for DWD, which sends no cache headers, and NOAA: reloading a 2-hour DWD loop made no tile requests in testing. DWD cards read DWD's run list (~13 KB) before loading frames to know which frames are final, so the first frame waits about a second. Reported by @m42cel (#279, #280, #283).

  • low_power_mode — for old or slow wall tablets — frames switch without fades, motion compensation is off, and DWD frames are shown as DWD draws them: its own grey wash and magenta outline outside coverage, instead of the theme-coloured overlay. On a 2016 Galaxy Tab A, a full reload of a cached DWD loop went from about 2 minutes to about 5 s. Off by default; editor: Animation → Low Power Mode (#284).

  • forecast_refresh_minutes — keep DWD's forecast current — forecast frames used to keep the nowcast run they first loaded with, and kept showing that forecast after their time had passed. Set this (editor: Forecast Refresh, Off / 5 / 10 / 15 / 30 / 60 min) and the card refetches the forecast from DWD's newest run at most that often, and switches each frame to the observed radar once a run covers it. Only a newer run triggers a refetch. Off by default; 15 is a good balance (#281).

    type: custom:weather-radar-card
    data_source: DWD
    forecast_minutes: 120
    forecast_refresh_minutes: 15

Changed

  • Editor strings translated — the Custom and MapTiles map styles, the CARTO API key and the Grey styles were English-only in the 10 other languages.
  • Radar tiles are never smaller than 512 px — small cards used 256 px tiles, and so did the first frame and DWD's coverage mask on any map, because they're created before the map reaches its final size: about 3× the requests for those layers.

Fixed

  • Long-running DWD loops developed 10-minute gaps — frames are 5 minutes apart but the card updates every 6, and each update added only the newest frame, so about every 30 minutes one was skipped and the gap stayed for the whole loop. Every new frame is now added (#286).
  • The map stayed blank after the OS switched light/dark mode with map_style: Auto, until the next Home Assistant update arrived; it now redraws straight away. The progress bar also uses the dark colours on Auto's dark map now (#286).
  • DWD downloaded one frame's tiles twice — the coverage outline is drawn from the same tiles as the newest past frame but fetched them separately; it now shares that frame's download.
  • Map could stay blank after Home Assistant detached and reattached the card (entering/exiting dashboard edit mode, sections-grid layout changes), for a few seconds to 45+ seconds. The card now re-initializes directly on reconnect.
  • WMS tile requests (DWD radar) leaked internal retry/callback options into the URL — no effect on the tiles served, but it bloated every request. Contributed by @m42cel (#275).
  • Wind overlays could throw on a one-cell-wide grid (#267).
  • Viewer layer state could lose saved settings after a failed read (#268).
  • The editor said the default zoom was 5; the card has always used 7. The editor now also offers zoom 3, as YAML allows.

Internal

  • Mutation testing with Stryker (npm run mutate) over 10 pure-helper modules; it found the #267 and #268 bugs above. Dev tooling only; nothing ships in the card bundle (#270).

Still relevant from 3.9.0

CARTO watermarks anonymous basemap tiles. If you use map_style: Light/Voyager/Dark/Satellite, set carto_api_key (free, no account), or switch to a no-key style: Grey/GreyDark, or the new MapTiles on Home Assistant 2026.10+.

Full Changelog: v3.10.0...v3.11.0

Don't miss a new weather-radar-card release

NewReleases is sending notifications on new releases.