Skip to content

v2.5.3-beta.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jun 18:30

Highlights: This beta lands three independent changes: two features and a performance overhaul. The climate panel now shows threshold temperatures and explains why climate mode is inactive when it is. The force-override tile migrates to the integration's v2.28.0 custom-position slot-5 model. The render path gets a significant restructure — RegistryCache shares a single entity-registry fetch across components, createDiscoveryListMemo avoids redundant discovery work on irrelevant state updates, and shouldUpdate guards (via entityStateChanged) prevent re-renders when nothing the component cares about changed. The bundle grew roughly 8 KB to accommodate the new registry-store.ts module.

Beta feedback wanted: confirm climate thresholds and inactive reasons render correctly against your integration version; confirm force-override behaves on integration v2.28.0+; and report any render glitches or unexpected re-render pauses introduced by the throttling changes.

✨ Features

  • Climate panel shows thresholds and inactive reason (#129, #152) — src/components/climate-panel.ts now reads threshold_low, threshold_high, and threshold_summer_outside from the climate entity and displays them alongside the panel status. When climate mode is loaded but not active, the panel resolves the ClimateInactiveReason slug — mode_off, schedule_off, floor_clamp, motion_control, integration_disabled, or active — and renders a localized explanation pulled from the climate.reason i18n namespace. Reasons listed in SUPPRESSED_REASONS are silently omitted. French translations are included under climate.reason in src/lib/i18n/fr.ts. Requires no new config keys.

  • Force-override migrates to integration v2.28.0 custom-position slot-5 (#150, #151) — The force-override path now targets the integration's new custom-position slot at priority 100 (CUSTOM_POSITION_SAFETY_PRIORITY). activeSlotIsSafety() in src/lib/badge-visibility.ts identifies when slot-5 is the active slot, and resolveActiveMinModeFloor() in src/lib/decision-summary.ts contains the slot-finding logic that resolves against CustomPositionSlotSnapshot. safetyVariant badge styling in src/components/tile-badge.ts and src/components/more-info-dialog.ts marks the force-override state visually. Requires integration v2.28.0 or newer; earlier integration versions will not produce a slot-5 snapshot and the force-override badge will not appear.

⚡ Performance

  • Throttled re-renders, memoized discovery, shared registry fetch (#153) — Three coordinated changes reduce unnecessary work on every hass update. RegistryCache in the new src/lib/registry-store.ts holds a single HassRegistry result and exposes it via loadEntityRegistry, so all components share one fetch rather than each issuing their own. createDiscoveryListMemo in src/lib/entity-discovery.ts memoizes the discovered entity list and skips re-discovery when the relevant registry slice has not changed. entityStateChanged in src/lib/hass-change.ts is used as a shouldUpdate guard in components, preventing Lit re-renders when none of the component's tracked entities changed state. startMinuteTimer and cancelMinuteTimer in src/lib/minute-timer.ts replace inline timer logic, and _sampleDayCache in src/lib/sun-model.ts caches the day's sun-path sample. Installations with many covers or frequent HA state traffic should see the most improvement.

📦 Install / Upgrade

Through HACS, update to v2.5.3-beta.1. Restart is not required for the card; reload your browser or dashboard.

HA caches ES modules aggressively. After updating, bump the ?v=2.5.3-beta.1 query string on your Lovelace resource URL (/hacsfiles/adaptive-cover-pro-card/adaptive-cover-pro-card.js?v=2.5.3-beta.1) to ensure browsers pick up the new bundle. A hard-refresh alone is not sufficient.

No config migration needed. Existing configs work without modification.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer. The force-override custom-position slot-5 feature requires integration v2.28.0 or newer.