β¨ New Features
π― Color Threshold Direction & Transition
Color thresholds now have two independent settings:
Direction β which axis colors are painted along:
- Vertical β Y-axis gradient. The entire chart is colored based on value height.
- Horizontal β per-segment coloring along the time axis. Each line segment gets the color of its value.
Transition β how colors change at threshold boundaries:
- Smooth β gradual blend between adjacent threshold colors.
- Hard β instant color switch at the threshold value.
All four combinations are available from the editor under Colors β Color Thresholds.
βοΈ Annotation Manual Mode
Event markers and time spans can now be configured with fixed timestamps directly from the editor β no YAML required. A new Source toggle switches between:
- Entity β automatically tracks a binary sensor's state changes.
- Manual β enter specific start/end times (spans) or a single timestamp (events).
ποΈ Annotation Opacity
All annotation types (threshold, band, event, span) now have an Opacity slider in the editor (0β1). Control how prominent or subtle each annotation appears.
π§© Annotation Jinja Templates
Manual annotation fields (start, end, time, value, label) now support Jinja2 templates. Values update automatically when the referenced entities change.
annotations:
- type: threshold
value: "{{ states('sensor.target_temp') | float }}"
label: "Target"
- type: span
start: "{{ states('input_datetime.shift_start') }}"
end: "{{ states('input_datetime.shift_end') }}"π Bug Fixes
π Annotation Show Values
The Show Values toggle for threshold lines and bands now works. When enabled, the numeric value is displayed alongside the label. When no label is set, just the value is shown.
β¬ Rounded Bar Corners
Bars now have slightly rounded corners for a more polished look. Corner radius scales with bar width (up to 5px).
π Bar Gradient Fill
Bar charts now feature a subtle vertical gradient β full color at the value end fading to 40% opacity at the baseline. Negative bars reverse the gradient direction. Disable per entity with gradient: false.
π Invert + Stacked Bars
Fixed a bug where using invert: true on a bar entity together with stacked: true caused the inverted bars to stack on top of normal bars instead of drawing below zero. Butterfly charts now render correctly β positive bars go up, inverted bars go down.
0οΈβ£ Y-Axis Zero Label
The "0" label on the Y-axis was sometimes missing or overlapping with nearby values like 0.2. Zero now always appears when the chart crosses zero, and any nearby tick that would overlap is removed β because 0 is always more useful as a reference point than an arbitrary value next to it.
βοΈ Y-Axis Label Clipping
Y-axis labels with wide values (e.g. 1880.1 or -9945.4) were cut off at the card edge. The chart now measures actual label width from real data values and reserves enough space so labels are never clipped.
π’ Y-Axis Decimals
Setting decimals on an entity now correctly propagates to Y-axis labels when y_axis_decimals is not explicitly configured. Priority: y_axis_decimals > entity decimals > auto-detect from range.
π Date Format Consistency
datetime_format (e.g. DD/MM) was only applied to some parts of the chart. It now works consistently across X-axis date labels, X-axis time labels, extrema labels, and tooltips.
π Range Bands Not Showing
show_range_band: true stopped working with calendar group modes (group_by: date, week, month, year). The min/max range data was lost during calendar grouping. Range bands now display correctly for all group modes.
π Range Band Clipping
When range bands extended beyond the plotted data values, the band cloud was cut off at the chart edges. Y-axis bounds now include range band extremes so the full band is always visible.
ποΈ Date Picker β Jump to Current
Clicking the date label in the date picker now always jumps back to the current period, regardless of how far you've navigated. Previously this only worked when viewing a past period.
π¨ Editor β Template Colors
Entity color dots in the editor now correctly display resolved template colors (e.g. color: "{{ 'green' }}") instead of showing the default red.
π» Negative Threshold Color Extension
The lowest color threshold now extends to negative infinity β symmetric with how the highest threshold already extended to positive infinity. No more fallback to the entity's base color below the lowest threshold.