Skip to content

✨ New Features & πŸ› Bug Fixes

Choose a tag to compare

@cataseven cataseven released this 20 May 12:45
7bf303c

⚠ Breaking change β€” change vs diff clarified

The two aggregate functions used to behave almost identically. They've now
been pulled apart so each does one specific thing:

Aggregate What it does When to use it
change Sum of positive jumps. Always β‰₯ 0. Counter resets are ignored. Counter-style sensors β€” energy meters, rain gauges, odometers, water meters, daily totals.
diff Last value βˆ’ first value. Can be negative. Sensors that drift up and down β€” battery level, indoor temperature, fuel level.
delta Max βˆ’ min. Always positive. (unchanged) Spread between highest and lowest in the window.

Do I need to change anything?

  • If you used aggregate_func: diff on a counter sensor (energy, rain,
    km, water…), switch it to aggregate_func: change.
  • If you used diff on a sensor that genuinely goes up and down, you're
    already on the right one.
  • The tooltip text in the visual editor now describes the difference, so
    picking the right one is easier going forward.

New features

Hide the color dot per entity (#183)

New per-entity toggle Color Dot in the entity editor's State Row tab.
When off, the colored marker is hidden:

  • In the state row, the entity name and value shift left into the
    freed space for a cleaner look.
  • In the compact legend, detail legend, timeline tooltip and all
    chart-mode tooltips, the marker's slot stays reserved so rows
    still line up neatly.

Useful when:

  • You only have one entity and don't need a color marker at all
  • You're using color_thresholds and the static dot color no longer matches
    the dynamically-colored line / bar / value

YAML:

entities:
  - entity: sensor.something
    show_color_dot: false

Ranking chart threshold filter (#189)

New card-level option ranking_min_value for Ranking mode. Entities
whose absolute value falls below this threshold are hidden from the
ranking entirely β€” useful for energy or power rankings where idle /
standby devices would otherwise crowd the chart.

In the visual editor: Chart Mode = Ranking β†’ Graph Data section β†’ Min
Value
field.

chart_mode: ranking
ranking_min_value: 5      # hide entities reading under 5 W
entities:
  - entity: sensor.tv_power
  - entity: sensor.fridge_power
  - entity: sensor.router_power     # idle at 2W β†’ hidden

Adaptive Color now drives the state row color dot

When state_adaptive_color: true is set on an entity, the colored dot in
the state row now follows the same threshold-aware color as the state
value text and icon. Previously the dot stayed locked to the static line
color even when the value crossed a threshold and the text changed; now
all three update together.

Zoom Sync β€” multiple cards zoom together (#197)

New card-level options zoom_sync + zoom_sync_group. When you
brush-zoom (or double-click to reset) on one card, every other card in
the same group adopts the same time window. Cards with different
hours_to_show still sync correctly β€” the shared language is the
timestamp range, not the pixel position.

# Card 1
type: custom:statistics-graph-chart-card
zoom_sync: true
zoom_sync_group: energy
entities:
  - entity: sensor.power_produced

# Card 2 β€” same group, follows Card 1's zoom
type: custom:statistics-graph-chart-card
zoom_sync: true
zoom_sync_group: energy
entities:
  - entity: sensor.power_consumed

In the editor: Overlay tab β†’ Zoom Sync toggle (next to Tooltip Sync).
Available when Brush Zooming is on. Group is optional β€” leave empty to
sync with every other ungrouped card.

Scroll Sync β€” horizontal scrolling stays in lock-step (#197)

Same idea as Zoom Sync but for horizontal scrolling. With
max_visible_interval set so the chart is wider than the viewport,
turning on scroll_sync + scroll_sync_group makes scrolling one card
move all the others in the same group to the matching position. The
position is shared as a 0–100 % ratio so cards with different total
widths still land at the same relative point.

type: custom:statistics-graph-chart-card
hours_to_show: 960              # 40 days of data
max_visible_interval: 240       # 10 days visible at a time
scroll_sync: true
scroll_sync_group: energy
zoom_sync: true
zoom_sync_group: energy
tooltip_sync: true
tooltip_sync_group: energy      # use all three together for a fully linked dashboard
entities:
  - entity: sensor.power_produced

In the editor: Overlay tab β†’ Scroll Sync toggle (below Zoom Sync).


Bug fixes

Current month no longer disappears with group_by: month (#193)

Energy / counter sensors no longer show empty charts on long ranges (#186)

Tap action now works on every chart mode (#190)

Ranking chart now respects theme text colors (#188)

Extrema labels align with their data points (#184)

Record timestamps reflect the actual data precision (#179)

HA Profile time format is honored (#180)


Upgrading

If you used aggregate_func: diff
on a counter-style sensor and relied on the old behavior, please change it
to aggregate_func: change (see the breaking-change section at the top).