Skip to content

Releases: LuckyTriple7/ha-beach-weather

v1.1.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 29 Aug 19:48

Changed

Entity IDs are left to the entity registry. Every entity used to assign its own entity_id in the constructor (sensor.water_temperature_platja_de_muro). Home Assistant treats that as a suggestion rather than ownership, but it takes over what _attr_has_entity_name = True is meant to derive, so it is gone.

Locations added from this version on get the shape Home Assistant derives from the device and entity name:

sensor.platja_de_muro_water_temperature instead of sensor.water_temperature_platja_de_muro
button.platja_de_muro_update_now instead of button.update_now_platja_de_muro
weather.platja_de_muro unchanged

Nothing changes for locations you already have. The registry never rewrites an entity ID it already holds, so dashboards, automations and history keep working untouched. Only newly added locations use the new shape.

The Lovelace card resolves entities through their registry translation_key from v0.2.0 on, so it handles both shapes — and, unlike before, entities you have renamed yourself. Update the card alongside this release.

v1.0.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 29 Aug 19:20

Breaking

The Lovelace card now lives in its own repository, ha-beach-weather-card, and has to be installed separately (HACS → Dashboard → Beach Weather Card).

Up to 0.24.0 the card shipped inside this integration, which registered a Lovelace resource for it under /beach_weather_static/. Writing the user's shared lovelace_resources store from a config entry is not an integration's job — HACS does that as the package manager, visibly and with an uninstall path, which is where the card belongs.

Existing dashboards keep working unchanged: same custom:beach-weather-card type, same config format, same entity IDs. Only a custom background_image pointing at a /beach_weather_static/... URL has to be repointed.

The minimum Home Assistant version is now declared as 2024.12.0. The previously declared 2024.1.0 was never accurate: lovelace.const.LOVELACE_DATA only exists from 2025.2, the resource_mode attribute read in 0.24.0 only from 2026.2, StaticPathConfig from 2024.7, and the implicit OptionsFlow.config_entry from 2024.12. Dropping the card removed the first two constraints, so the real floor is now the options-flow one.

Upgrading

  1. Update this integration
  2. Install Beach Weather Card from HACS → Dashboard
  3. Reload the browser

Added

  • A one-time cleanup on start removes the Lovelace resource earlier versions registered under /beach_weather_static/. Without it, updating would leave a resource pointing at a path nothing serves any more, which Lovelace retries on every dashboard render. Nothing else in the resource store is touched, and the integration never writes to it again

Changed

  • The download no longer carries the card and its seven photos — about 1.8 MB less
  • Diagnostics also redact the location name and its slug, and redact the raw coordinator payload (which echoes the requested coordinates) rather than passing it through unfiltered

Fixed

  • README: HTTP 503 backs off for 30 seconds, not the 5 minutes documented — the value has been 30s since 0.22.1 but only the changelog said so

v0.24.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 18 Aug 15:22

Fixed

  • The card showed "Custom element doesn't exist" in Firefox (and any other browser Home Assistant doesn't classify as "modern"), while working fine in Chrome. The card was published with frontend.add_extra_js_url(), which Home Assistant renders into the index page as <script>if (isModern) { import("<url>"); }</script>isModern being a user-agent regex plus a feature check. Where that check rejects, the import never runs and the card silently never registers. It is now registered as a normal Lovelace resource (Settings → Dashboards → Resources) instead, the same mechanism every HACS-installed card uses, which Lovelace loads regardless of that check. YAML resource mode still falls back to the old behaviour, since resources can't be managed programmatically there
  • The background photo was only drawn across part of the card in the Home Assistant companion app on iPhone. It is now a real <img> layer with object-fit: cover instead of a CSS background-image — iOS WebKit painted the CSS background against the card's height from before aspect-ratio resolved and never repainted it
  • Switching Advanced → Language in the card editor threw a TypeError (called a _render() method that doesn't exist) and left the editor broken until the dashboard was reopened

v0.23.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 15 Aug 16:06

Added

  • The card's language can be set explicitly: Advanced → Language in the editor, or language: de / language: en in YAML. auto (the default, and the previous behaviour) keeps following the Home Assistant user language

Changed

  • Language detection also considers hass.locale.language before falling back to hass.language

After updating, restart Home Assistant and hard-refresh the browser so the new card script is loaded.

v0.22.1

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 01 Aug 13:55

Fixed

  • 503 (Open-Meteo temporarily overloaded) now backs off only 30s instead of the 300s default — it's a transient condition, not a rate-limit lockout like 403/429, so retries (including a manual "Update Now" press) shouldn't be blocked nearly as long

v0.22.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 01 Aug 13:15

Changed

  • Both Open-Meteo coordinators (marine, forecast) now reuse Home Assistant's shared aiohttp session instead of each opening its own — same fix applied upstream to the Strato DynDNS integration after review feedback from a HA core maintainer
  • geo.py and coordinator.py no longer depend on the external async_timeout package (unused, replaced by builtin asyncio.timeout)

v0.21.1

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 28 Jul 07:04

Fixed

  • Dashboards with many locations (e.g. 20 cards) became sluggish, especially while editing — every card's day/night and weather-condition lookups scanned the entire HA entity registry on every hass update. Now cached per entity-registry reference (stable across normal state updates).

v0.21.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 28 Jul 06:47

Added

  • New background preset Automatic (weather) — picks a bundled photo from the location's live weather condition (sunny / partly cloudy / cloudy / rainy), falling back to the night photo after dark regardless of condition, same as "Automatic (day/night)"

Fixed

  • Card editor's Advanced section (and drag-in-progress state) collapsed/reset on every field edit instead of only on first load

v0.20.0

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 27 Jul 09:02

Added

  • 5 new Marine API sensors, no extra request needed (same current/hourly call already made): sensor.wind_wave_height, sensor.wind_wave_direction, sensor.wind_wave_period (local wind-driven chop, separate from swell), sensor.ocean_current_velocity, sensor.ocean_current_direction — each with the same 48h forecast attribute as the other Marine sensors

v0.19.1

Choose a tag to compare

@LuckyTriple7 LuckyTriple7 released this 27 Jul 08:46

Changed

  • Each location's first data fetch no longer blocks Home Assistant startup — with 20+ locations sharing the global rate limiter (min. 3s between any two requests), waiting for every location's first refresh before startup could finish could add minutes to boot. Entities now come up as "unavailable" and populate in the background as their turn in the queue comes up; the regular polling cycle still retries on failure the same as before