Skip to content

Releases: jrhubott/adaptive-cover-pro-card

v2.5.1

09 Jun 14:03

Choose a tag to compare

Highlights: Two visual and layout corrections ship in this patch. The sun dot on the sky compass and elevation chart now reads clearly at a glance: warm yellow or gold when the sun is up, dim grey when it has set. The detailed tile card floors its grid height at 2 rows so the controls row never clips in tight Sections layouts. No new config keys; no migration needed.

🐛 Fixed

  • Sun dot color legibility — The sky compass and elevation chart sun dot previously used colors that blurred the distinction between daytime and nighttime states. .sun-dot.up (above horizon, outside FOV) now fills #ffe680 (light yellow); .sun-dot.in-fov (in FOV but not hitting) uses var(--warning-color, gold); .sun-dot.valid (actively hitting) keeps var(--warning-color, gold) with a drop-shadow glow; .sun-dot.night (below horizon) renders at var(--secondary-text-color) at reduced opacity — a dim grey that clearly signals the sun has set. Changes land in src/components/sky-compass.ts and src/components/elevation-chart.ts.

  • Tile card controls clipping in narrow gridsgetGridOptions() on the detailed tile layout now enforces a minimum of 2 grid rows. Previously, a single-row allocation could clip the controls row in narrow or compact Sections columns. The floor is applied in src/adaptive-cover-pro-tile-card.ts.

📦 Install / Upgrade

Through HACS, update to v2.5.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.1 query string on your Lovelace resource URL (/hacsfiles/adaptive-cover-pro-card/adaptive-cover-pro-card.js?v=2.5.1) to ensure browsers pick up the new bundle. A hard-refresh alone is not sufficient.

No config migration needed. All changes are visual corrections and a layout floor; existing configs work without modification.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.5.0

09 Jun 04:08

Choose a tag to compare

Highlights: The cover bar and sky compass visual language now form a coherent whole — cover-bar fill colors match the compass wedges, an override wedge shows the gap between commanded and actual position, and the sun dot distinguishes three states (hitting, in-FOV-not-valid, outside-FOV) so users can diagnose solar-control behavior at a glance. Tile controls reflow to their own row in narrow Sections columns, and every card now declares getGridOptions() so the HA Sections layout sizes cards correctly without manual tuning. The legend loses its redundant sun entries and gains a single "Sun" entry. Bundle grew ~5.7 KB (228,900 → 234,747 bytes).

✨ Features

  • getGridOptions() declared on all three card types (#143) — The main card, sky-compass card, and tile card now implement getGridOptions(), telling the Sections layout the card's default column span, row count, and min/max bounds. The main card scales its row count with the number of visible sections. Without this, HA would size every card identically and resizing was erratic.

  • Override actual-vs-target wedge on the sky compass (#132, #142) — When a cover is under manual or force override, the compass renders a second wedge via overrideDivergenceTarget() in src/lib/geometry.ts to visualise the gap between the integration-commanded position and where the cover physically sits. The window segment color on the main-card compass follows the same override state, so the two visuals stay in sync.

  • Tile controls reflow in narrow Sections columns (#136, #139) — Tile card layout now uses CSS container queries (container-type: inline-size) instead of viewport media queries. Below 340 px card width the controls row drops to its own line, preventing icon and label truncation in narrow Sections columns where @media is blind to the actual column width.

  • Cover bar colors match the sky compass (#135, #140) — The cover-bar fill now uses the same gold/blue palette as the compass wedges: the open segment is gold, the closed segment is the selected cover color. The percentage label shifts left to clear the bar edge.

  • 3-way sun dot state (#137, #138) — A new pure helper src/lib/sun-dot-state.ts classifies the sky-compass and elevation-chart sun dot as gold (hitting), light-yellow (in_fov_not_valid), or dim (outside_fov). The authoritative source is the decision_trace.sun_state attribute introduced in integration PR #554; on older integration builds the card falls back to deriving the same three states from direct_sun_valid + sun_position.in_fov.

  • cursor: default on all tooltips (#134, #141) — Tooltip elements across the full card suite switch from cursor: help to cursor: default, removing the misleading question-mark cursor on non-interactive elements.

  • Collapsed Sun legend entry — The sky-compass legend previously listed separate swatches for each above-horizon sun state. These collapse into a single "Sun" entry, removing the .sun.in-fov CSS rule and the compass.in_fov i18n key.

🐛 Fixed

  • Cover bar closed segment color (#135) — Two earlier iterations painted the open/closed segments in the wrong colors or used hard-coded values that ignored the cover's configured color. The closed segment now always uses the selected cover color; the open segment is gold to match the compass hitting-sun wedge.

📦 Install / Upgrade

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

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

No config migration needed. All changes are additive or visual corrections; existing configs work without modification.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer. The authoritative sun-dot path (#137) requires an integration build that includes decision_trace.sun_state (integration PR #554); the card falls back gracefully on older builds.

v2.4.0

07 Jun 21:35

Choose a tag to compare

Highlights: The sky compass and elevation chart gain substantial new visual depth: an actual-vs-target cover wedge makes position error immediately visible, multi-window field-of-view ribbons are now overlaid directly inside the chart grid, and schedule windows are surfaced on both the elevation chart and across the decision strip and tile cards. Tooltip elements across all cards now signal interactivity with cursor: help, and the now-line on the sun/elevation chart shows its current time. One fix corrects a climate standby label that was silently showing "Unknown". Bundle grew ~3.9 KB (224,977 → 228,900 bytes).

✨ Features

  • Actual-vs-target cover wedge on the sky compass (#132) — A second wedge now renders alongside the FOV arc to show the gap between where a cover is commanded and where it physically sits. Main-card quadrant coloring adapts via the quadrant_colors config option, with arrow coloring conditioned on the same state.

  • Multi-window FOV ribbon in the elevation chart grid — Multiple windows now each contribute a stacked FOV row rendered directly inside the chart grid, replacing the previous single-window overlay. Each row maps to its own window's field-of-view band, making per-window solar exposure easy to read at a glance.

  • Schedule window surfaced across all cards (#128, #131) — The automation schedule window — derived from schedule_start_minutes and schedule_end_minutes on the control_status entity attributes — is now visualized as a shaded region on the elevation chart and as an off_schedule badge on the decision strip and tile card. Coverage of out-of-window states no longer requires opening more-info.

  • Help cursor on tooltips and now-line time on the sun chart — Every tooltip across the card suite now sets cursor: help so users know the element is interactive. The now-line on the elevation/sun chart additionally displays its wall-clock time, using formatClock with correct timezone handling.

🐛 Fixed

  • Climate standby shown instead of "Unknown" (#129, #130) — When the climate switch is off, the climate panel was falling through to a generic "Unknown" label. The climate_standby i18n key is now resolved correctly, giving users a meaningful state string in all supported locales.

📦 Install / Upgrade

Through HACS, update to v2.4.0. Restart not required for the card; reload your browser/dashboard.

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

No config migration needed. The quadrant_colors config option is additive and optional — existing configs continue to work without it.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.3.3

05 Jun 14:35

Choose a tag to compare

Highlights: Reverts the sky-compass sun marker from the photographic data-URI image introduced in v2.3.2 back to a flat gold SVG circle. src/lib/sun-image.ts is deleted; the sun renders via a CSS-classed circle element queried as .sun. The committed bundle shrinks 242,013 → 218,397 bytes (−23.6 KB, ~9.7%), entirely from dropping the inlined sun image.

🔄 Changed

Sky-compass sun reverted to flat gold disc

The photographic sun marker added in v2.3.2 is removed. src/lib/sun-image.ts and its SUN_IMAGE data-URI export are deleted. src/components/sky-compass.ts now renders the sun as a plain SVG circle with the sunDotClass CSS classes — the same approach used before v2.3.2 — rather than an image element. Tests in tests/sky-compass.test.ts query .sun (the circle) instead of the former image element. (#126, #127)

The photographic moon marker from v2.3.2 is unchanged.

📦 Install / Upgrade

Through HACS, update to v2.3.3. No restart required; reload your browser/dashboard.

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

No config migration needed.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.3.2

05 Jun 03:27

Choose a tag to compare

Highlights: The sky compass gets a full visual overhaul: photographic sun and moon markers replace plain coloured dots, the sun path is now an elevation-coloured arc of directional chevrons riding a gradient spine, and the below-horizon portion of the path is masked out entirely. The elevation chart's x-axis labels and the now-cursor are promoted to the topmost render layer so nothing paints over them. Bundle grew ~47 KB (194,949 → 242,013 bytes), entirely from the two inlined imagery data URIs.

✨ Features

  • Photographic sun and moon markers — the sky compass sun and moon dots are replaced with circular crops of real solar and lunar imagery, inlined as data URIs in src/lib/sun-image.ts (SUN_IMAGE) and src/lib/moon-image.ts (MOON_IMAGE). No separate asset files; the single-file HACS bundle carries everything. The sun retains its valid-glow and night state modifiers; the moon keeps its SVG phase mask so only the illuminated fraction shows, sized to 2/3 the sun marker. (#124, #125)

  • Elevation-coloured sun path with directional chevrons — the sun path arc is coloured by the sun's elevation rather than time of day: a neutral grey near the horizon warming to gold at the zenith via a sqrt ramp (reaches gold quickly, eases near the peak). The arc renders as block-arrow chevrons riding a faint gradient spine, pointing in the direction of travel. Each above-horizon run gets its own linearGradient (keyed sunPathGradients, stroke resolved via sunPathStroke) built from elevation samples along the arc. The old time-based fade and per-sample dots are gone. (#124, #125)

  • Below-horizon path masked — only above-horizon arc segments are drawn. aboveHorizonSegments in src/lib/sun-model.ts splits the 24-hour sample array into contiguous above-horizon runs (sunPathRuns); the below-horizon stretch no longer traces around the rim. Rise and set glyphs mark the entry and exit points. (#124, #125)

  • Elevation chart axis and now-cursor on top — the x-axis gridlines, time labels, current-time cursor, and sun dot are all moved to render last in src/components/elevation-chart.ts. The FOV ribbon bars no longer paint over the time labels, and the 24:00 edge label is end-anchored so it no longer clips at the right side. (#124, #125)

📦 Install / Upgrade

Through HACS, update to v2.3.2. Restart not required for the card; reload your browser/dashboard.

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

No config migration needed.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.3.1

03 Jun 13:45

Choose a tag to compare

Highlights: The elevation chart now overlays every discovered window's field-of-view bands on the elevation strip — not just the primary window. A color-keyed time ribbon sits below the plot, one row per window, with hover tooltips showing each window's name and its exact FOV clock range. Single-window setups are unchanged. Bundle grew ~2.4 KB.

✨ Features

  • Multi-window FOV ribbon on the elevation strip — the elevation chart draws a dedicated time ribbon below the plot with one color-keyed row per discovered window. Each bar spans the window's FOV hours for the day. Hover over any bar to see the window name and its exact clock range (e.g. "Living Room: 07:20 AM → 01:30 PM") via a native SVG <title> tooltip — no bundle cost. The elevation plot itself stays pristine; the per-window color keying matches the sky compass legend above. A new ribbonLayout() helper in geometry.ts handles the vertical stacking math. Per-window labels use the new fov_window_named i18n key. Resolves #120 (#121).

📦 Install / Upgrade

Through HACS, update to v2.3.1. Restart not required for the card; reload your browser/dashboard.

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

No config migration needed.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.3.0

02 Jun 14:49

Choose a tag to compare

Highlights: The forecast strip now plots against a fixed 24-hour timeline anchored at start-of-day, with a "now" marker tracking current time and clock tick labels along the axis. A spike that appeared at the chart edge when out-of-day samples crept past midnight is gone. The Lovelace card-picker shows live previews using a real entry_id discovered from your installation. Chart sun colors now match the sky compass.

✨ Features

  • Fixed 24h forecast axis with now marker — the forecast strip plots against a fixed day axis anchored at startOfDay() rather than scaling to whatever samples exist. dayFractionX() maps any timestamp to an x position; clock labels via formatClock() sit at tickX intervals along the bottom. A nowLine / nowCursor marker tracks the current time using nowX (shown only when nowInDay is true). Resolves #116 (#118).

  • Out-of-day spike fix — forecast sample points are tagged with an inDay flag (ts >= dayStart && ts <= dayStart + DAY_MS), and the polyline points is built only from samplePts that pass that test. Previously, samples just past midnight produced a spike at the chart edge. Resolves #116.

  • Live card-picker previews — all three cards (main, sky-compass, tile) now implement getStubConfig(), which calls fetchAcpConfigEntries() to discover a real Adaptive Cover Pro config entry from your installation. The Lovelace card-picker receives a valid entry_id and renders a live preview instead of a broken placeholder (abfa701).

  • Unified sun colors, slimmer compass legend — the elevation chart's sun coloring now uses the same sunDotState / sunBelowHorizon logic as the sky compass, so the chart and compass agree on daytime vs. below-horizon styling. The compass legend was slimmed down at the same time (12b5bdd).

🧹 Maintenance

  • README rewrite and screenshot capture tooling — the README is now structured around the tile card and sky compass as the primary user-facing entry points. A new scripts/capture-screenshots.mjs Playwright script regenerates the screenshot gallery, including the more-info dialog. A capture:readme npm one-shot rebuilds all README assets in one step. The capture-readme script was renamed to capture-readme-wiki to distinguish it from the new one. No runtime bundle impact.

📦 Install / Upgrade

Through HACS, update to v2.3.0. Restart not required for the card; reload your browser/dashboard.

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

No config migration needed.

Compatibility: Home Assistant 2024.1+, Adaptive Cover Pro integration v2.22.1-beta.3 or newer.

v2.2.0

31 May 19:24

Choose a tag to compare

Highlights: The sky compass gains a 24h sun-elevation chart clipped to your window's FOV and elevation limits, the sun dot darkens when the sun is below the horizon, and the tile card now reliably shows the Auto badge whenever the cover is actually under automatic control.

✨ Features

  • Sun Today elevation chart — a new ElevationChart component plots the sun's elevation across the full 24-hour day as a curve, clipped to the window's configured FOV and elevation limits via elevationBandFraction(). Times when the sun is inside the window's active band are immediately visible. The chart appears in both the sky compass card and the tile card more-info dialog. A show_elevation_chart toggle (default on) lets you hide it on either card type. Resolves #46 (#113).

  • Night sun ambient color — when the sun is below the horizon, the .sun dot on the sky compass now renders in a dimmed amber rather than the full daytime color. The .sun.down CSS rule handles the transition; fill/stroke/opacity transitions are preserved (#113, f12a8fb).

  • Auto badge fix for tile card — the tile card now co-renders an independent "Auto" line using a new badge-visibility.ts helper that correctly accounts for manual override, force wins, and custom_position+bypass-auto-control states. Previously the badge was hidden or misreported in several automatic-control scenarios. Default tile layout flipped to detailed. Resolves #112 (037952f).

  • Shared editor footereditorFooter() is extracted into editor-footer.ts and reused across the main, sky compass, and tile card editors, removing duplicated markup (f12a8fb).

🧹 Maintenance

  • Sky compass SVG snap fix — removed the CSS transition on cx/cy from .sun and .moon-lit elements in sky-compass.ts. The dot was elastic-tweening between positions on data updates rather than snapping to the exact computed coordinate. Fill, stroke, and opacity transitions are kept (076ec5c).

  • Dev time-lapse capture toolingscripts/capture-timelapse.mjs drives the harness through a simulated day with Playwright-controlled Chromium and encodes the sky compass animation to a looping GIF. A window.__acpCapture bridge gated behind ?capture in the harness wires the two together. No impact on the distributed bundle (#114).

📦 Install / Upgrade

Through HACS, update to v2.2.0. Restart not required for the card; reload your browser/dashboard.

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

No config migration needed. show_elevation_chart defaults to true on both card types; add it explicitly only if you want to hide the chart.

v2.1.0

31 May 04:08

Choose a tag to compare

Adaptive Cover Pro Card v2.1.0

Highlights: The tile card's detailed layout gets a full badge overhaul — the badge moves inline onto the state line, the standalone Resume pill is gone, Cloud Suppression is now a visible badge, the Auto badge becomes individually toggleable, and badge toggles are grouped in a collapsible section in the editor.

✨ Features

  • Inline badge on the state line — in the detailed tile layout, the contextual badge now sits right-aligned on the same row as the position/state text rather than on a separate third row, keeping the tile compact at two rows regardless of badge visibility (#107).

  • Resume folded into the badge — the standalone Resume pill is removed. While a manual override is active, the contextual badge itself becomes tappable (shows a ↺ icon) and triggers resume-to-automatic. The more-info dialog retains its own Resume Auto button. The show_resume config option is gone; no migration needed (#107).

  • Cloud Suppression badge — when the Cloud Suppression handler wins, the tile now shows a blue "Cloudy" pill. Previously cloud-wins produced a blank badge. The badge is on by default and individually toggleable (#105).

  • Auto badge is now individually toggleablebadge_auto joins the per-badge config options (default on). Previously the Auto badge was always shown and not filterable (#106).

  • Motion idle falls back to Auto badge — when the Motion idle badge is suppressed (because the motion indicator icon is already shown, or its own toggle is off), the tile now shows the Auto badge instead of going blank — unless Auto is also disabled (#107).

  • Badge toggles grouped in the editor — the nine badge per-kind toggles in the tile card editor are now grouped inside a collapsible "Badges" section with a grid layout and shorter labels, replacing the flat "Badge: …" list. Cloud suppression and Auto are included (#106).

  • Version footer in all editors — the card version is now shown as a small footer in the main card, tile card, and sky compass card editors. The show_version toggle on the main card is removed; the version is no longer rendered on the live card face, only in the editor (#104, #106).

  • Solar tracking badge label shortened — the badge text changed from "Solar tracking active" to "Solar tracking" (English and French). The i18n key is unchanged (#105).

🧹 Maintenance

  • Removed deploy-local script; .deploy.example now points at scripts/deploy. The deploy script was also fixed to back up and restore the pre-deploy dist file on exit rather than running git checkout -- dist/..., which was silently discarding uncommitted builds (#105).
  • .dirty-deploy is now gitignored and untracked (#74e6918).

📦 Install / Upgrade

Through HACS, update to v2.1.0. Restart not required for the card; reload your browser/dashboard.

If you had show_version: true in your card YAML, remove it — it is no longer a valid option (the card ignores unknown keys, so it will not break anything). If you had show_resume configured, remove it for the same reason.

v2.0.6

30 May 23:12

Choose a tag to compare

Highlights

v2.0.6 tightens badge accuracy on two fronts. The floor badge — shown when the floor_clamp handler is holding the cover above its target — now renders its ↥ glyph and is suppressed when the floor clamp is not the relevant factor, so users no longer see a badge whose presence contradicts the decision trace. Separately, the solar tracking badge was only appearing in a subset of winning-solar scenarios; it now shows whenever solar is the outright winner.

Added

  • Floor badge ↥ glyph — the tile badge for the floor_clamp handler now displays the ↥ glyph, making it visually distinct from position badges that share the same row (#97, #103).

Changed

  • Priority-conditional floor badge display — the floor badge now appears only when the floor clamp is the deciding factor in the current handler priority order, rather than whenever a floor minimum was configured. The priority comparison uses the handler priority constants in src/const.ts. Previously it could render even when a higher-priority handler owned the outcome (#97, #103).

Fixed

  • Solar tracking badge always shown for solar winnerisCloudConfigured was extracted from src/lib/badge-visibility.ts to correctly identify all winning-solar contexts. The buildSolarActiveContext signature was simplified as part of the same change. Before this fix, solar tracking badges were hidden in configurations where the detection path did not pass through the previous check (#102).

Compatibility

  • Home Assistant 2024.1+
  • Adaptive Cover Pro integration v2.22.1-beta.3 or newer