Skip to content

History Card

Jason Rhubottom edited this page Aug 5, 2026 · 2 revisions

History Card

custom:adaptive-cover-pro-history-card β€” added in card v2.15.0.

Everything the other cards show you is now. This one shows you what happened: the cover's recorded position over the last several hours, which pipeline handler was winning at each moment, when the sun was in the sun acceptance angle, and every move the integration actually issued. It answers "why is this blind down?" after the fact, when the live decision strip has already moved on.

The position track is recorder-backed, so it reflects what the cover really did β€” not what Adaptive Cover Pro asked for. Where those two disagree, you can see it.


Configuration

Drop the card onto a dashboard and the visual editor opens automatically. Only entry_id is required.

type: custom:adaptive-cover-pro-history-card
entry_id: YOUR_CONFIG_ENTRY_ID   # required; pick from the visual editor dropdown
title: Living room history       # optional; header above the tracks
hours: 24                        # optional; defaults to 24. One of 6, 12, 24, 48, 72
tracks:                          # optional; each track defaults on
  position: true                 #   recorded actual position over the window
  who_won: true                  #   banded strip of the winning handler over time
  context: true                  #   sun-in-FOV / glare / manual-override bands
  actions: true                  #   list of cover actions and skipped actions
advanced_open: false             # optional; start with the Advanced section expanded
hide_advanced: false             # optional; hide the Advanced section entirely

In the visual editor the four track toggles appear as track_position, track_who_won, track_context, and track_actions. They map onto the nested tracks: block above β€” the flat names are an editor convenience, the YAML shape is what the card stores.

hours

The window counts back from now. The dropdown offers 6, 12, 24, 48, and 72 hours; other values aren't offered because the recorder query cost grows with the span and the tracks stop being readable much past three days.

A longer window is only as good as your recorder retention. If Home Assistant's recorder purges after 10 days, a 72-hour window is fine; if you've tightened purge_keep_days below the window you've picked, the early part of the chart will simply be empty rather than wrong.


The tracks

Position

The cover's actual recorded position across the window, drawn as a step line.

It steps, it doesn't slope. Recorder history is a series of discrete state changes, not a continuous signal β€” a cover that sat at 40% for six hours produces two rows, not six hours of samples. Drawing a straight line between them would imply the cover was gliding the whole time. The card holds each value until the next change and turns the transition into a vertical edge, so a flat stretch reads as "nothing happened" and a step reads as "it moved here, then."

This also means a gap in recorder data (a Home Assistant restart, a purge boundary) shows as a held value rather than an invented diagonal across the gap.

Who won

A banded strip showing which decision-pipeline handler was winning at each point in the window β€” the historical version of the Decision Strip's live view. Bands are colored per handler, so a day that flips between solar tracking and a climate rule is visible as two alternating colors rather than a number you have to read.

Reach for this when a cover's position surprises you: the band under that moment names the handler responsible, and you can go read How It Decides for that specific one.

Context

Overlay bands marking three spans that explain most surprising positions:

  • Sun in FOV β€” the sun was inside the window's sun acceptance angle.
  • Glare active β€” a glare zone was engaged.
  • Manual override β€” someone (or something) had taken manual control.

These sit behind the position track, so you read the position against the reason. A drop that lines up exactly with a sun-in-FOV band is solar tracking doing its job; the same drop with no band under it is something else, and the Who-won track will say what.

Actions

A scrollable list of the cover actions the integration issued over the window, and β€” just as usefully β€” the ones it skipped. A skipped action carries the reason it was skipped, which is often the answer when someone reports "it didn't move when it should have."


Advanced: the event buffer

Below the tracks, an Advanced section exposes the integration's diagnostic event buffer for this instance β€” a lower-level record than the Actions list, useful when you're filing an issue or working through Troubleshooting.

It requires the integration to expose the get_diagnostics service. When that isn't available the section simply doesn't render, so an older integration build degrades to the four tracks rather than showing an error.

Two options control it:

  • advanced_open: true β€” start expanded rather than collapsed.
  • hide_advanced: true β€” hide the section entirely, even when the integration does expose the buffer. Reach for this on a shared or wall-mounted dashboard where the raw buffer is noise.

Where it fits

You want Use
What is it doing right now, and why Panel Card or Decision Strip Card
What did it do earlier today, and why History Card
A compact status chip among many instances Tile Card

The History card is also reachable from the Tile Card and panel dialogs, so you don't have to place it permanently to consult it once.


Reporting issues

Card bugs and feature requests belong in the card repository. Include your card version (shown in the visual editor footer), your Home Assistant version, and the YAML for the card.

🏠 Home Β· ✨ Features Β· πŸ“° What's New

Buy Me A Coffee

πŸš€ Getting Started

🧠 Core Concepts

πŸ“ Cover Types

βš™οΈ Configuration

πŸ”Œ Entities & Services

πŸ› οΈ Operations

πŸ”§ Advanced Use Cases

🎨 Dashboard

πŸ§ͺ Testing & Simulation

πŸ“š Reference

πŸ‘©β€πŸ’» For Developers

Clone this wiki locally