v2.5.3-beta.1
Pre-releaseHighlights: 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.tsnow readsthreshold_low,threshold_high, andthreshold_summer_outsidefrom the climate entity and displays them alongside the panel status. When climate mode is loaded but not active, the panel resolves theClimateInactiveReasonslug —mode_off,schedule_off,floor_clamp,motion_control,integration_disabled, oractive— and renders a localized explanation pulled from theclimate.reasoni18n namespace. Reasons listed inSUPPRESSED_REASONSare silently omitted. French translations are included underclimate.reasoninsrc/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()insrc/lib/badge-visibility.tsidentifies when slot-5 is the active slot, andresolveActiveMinModeFloor()insrc/lib/decision-summary.tscontains the slot-finding logic that resolves againstCustomPositionSlotSnapshot.safetyVariantbadge styling insrc/components/tile-badge.tsandsrc/components/more-info-dialog.tsmarks 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
hassupdate.RegistryCachein the newsrc/lib/registry-store.tsholds a singleHassRegistryresult and exposes it vialoadEntityRegistry, so all components share one fetch rather than each issuing their own.createDiscoveryListMemoinsrc/lib/entity-discovery.tsmemoizes the discovered entity list and skips re-discovery when the relevant registry slice has not changed.entityStateChangedinsrc/lib/hass-change.tsis used as ashouldUpdateguard in components, preventing Lit re-renders when none of the component's tracked entities changed state.startMinuteTimerandcancelMinuteTimerinsrc/lib/minute-timer.tsreplace inline timer logic, and_sampleDayCacheinsrc/lib/sun-model.tscaches 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.