- Figma-aligned card chrome: When the card title is enabled, a subtitle shows the
entity_idso the YAML-friendly id is visible next to the friendly name; when the title is disabled, both title lines are hidden (includingentity_id). Entity icon sits in a fixed-size header container using Home Assistant’sha-icon/ha-state-icon(no raster assets from the design file). - Figma-aligned comparison panel (Data series info): Two-column layout (Current / Reference) with period captions, cumulative values for the comparison story (“to today”), and a single delta chip combining absolute difference and percent — colors follow the HA theme, not hard-coded Figma hex. The chip stays visible for zero and for missing data (
---/-- %) with unit suffixes aligned to the card formatter. - Figma-aligned Forecast | Total panel (Surface Container): With forecast on, Forecast describes the full current period and Total is the full reference window from long-term statistics (not the same as “to today” in the first panel). With
show_forecast: false, the entire second panel is removed (unchanged from 0.4.x semantics). - Figma-aligned narrative & warnings: Narrative summary (
textSummary) in a row with a trend icon (higher / lower / similar vs reference) aligned with chart delta semantics. Warnings (e.g. incomplete reference) appear in a dedicated bottom section only — the full warning text is not duplicated inside the summary block. - Figma-aligned chart: Vertical “today” line spans the full plot height; delta segment between current and reference at the current aggregation step; refreshed reference-series point styling. When the current series is hidden, X-axis tick count and spacing stay in line with the last release before the Figma UI (no forced “three labels” rule).
- Layout visibility toggles (YAML + Lovelace visual editor):
show_comparison_summary(comparison panel),show_forecast_total_panel(Forecast | Total block), andshow_narrative_comment(narrative row). Each defaults to on when omitted or any value other thanfalse. - With forecast on,
show_forecast_total_panel: falsehides only the Forecast | Total panel while keeping dashed forecast line behavior driven byshow_forecast.show_forecast: falsestill removes the whole second panel.
Changed
- Period captions in the comparison panel use a single compact formatter (
formatCompactPeriodCaption): short month names, Home Assistant time zone, optionaltime_formatfor hourly windows, and compressed ranges (e.g. a full calendar month →Mar 2026). - Unified multi-window chart axis: For two or more windows,
buildChartTimelineuses one rule — axis length is the maximum nominal bucket count at window 0’s aggregation (Longest-window axis span), not a separate YoY/MoY legacy path. Forecast still usesforecastPeriodBucketsfrom window 0 only when that differs from axis length. timeline[]construction: Built from window 0’s slot starts, then an ordinal tail to reach the longest span — not from the longest window’s calendar alone. Fixes wrong month/year on the X-axis and the “now” marker jumping to the last day of the reference period (MoM / YoY / MoY).- Tail axis labels: X-axis ticks past the current window’s nominal end use compact date-style tail formatting. FR-G carry-forward fills the current cumulative at the “today” slot when LTS has not closed that bucket yet (day / week / month where supported), using window 0 boundaries and HA
time_zoneconsistently with the marker. - Default comparison labels: Adaptive X-axis and tooltip headers omit redundant years when the two windows start in different years, and use day-of-month only for daily aggregation when the year matches but start months differ (MoM).
x_axis_format/tooltip_formatstill override this matrix. - Intl time zone: Default Intl-based axis and tooltip calendar strings use
timeZone= Home Assistant instance zone instead of the browser default.
Fixed
- LTS
sumvs chart slots: Increments from consecutivesumvalues are timestamped at the start of the bucket they belong to (previous row’sstart), so the first visible point aligns with the first axis tick foraggregation: day/hour(e.g. month-over-year no longer looks shifted by one day or hour). ECharts slot matching uses the next timeline timestamp as the slot end when available (same idea as the historical Chart.js path), improving DST-length days. - Chart tooltip vs X-axis: Tooltip date headers resolve the same timeline slot as the axis (
axisValue/ current or reference series X), so sparse series such as the two-point forecast line no longer shift the header by one day or drop the tail column label. - FR-G carry-forward: The “now” slot used to fill missing LTS buckets matches window 0 bucket boundaries with HA
time_zone, consistent with the “now” marker. - Comparison panel — current period caption: For presets with
currentEndIsNow, the current window caption shows the full nominal month/year again (expandCurrentWindowForCaption), not a partial range to today (e.g.Apr 2026vs1 Apr – 12 Apr 2026).
Full Changelog: 0.4.0-beta...1.0.1-beta