π New Chart Types
β¨ Three new chart modes: Box Plot, Waterfall & Histogram
π¦ Box Plot β chart_mode: box
Min / Q1 / median / Q3 / max boxes per time bucket, computed from the dense source samples (independent of points_per_hour). Bucket width follows group_by, or is picked automatically from the window.
Use it when the question is "what's typical, and how much does it spread?"
- π‘οΈ Room temperature or humidity β daily spread over a month; instantly shows unstable rooms and day/night swing
- π₯οΈ CPU / RAM / load sensors β hourly distribution profiles instead of a noisy line
- πΆ Ping / latency / WiβFi signal β consistency at a glance: a tall box means jitter
- β‘ EPEX / Nordpool price sensors β the daily price range and where the median sits
- βοΈ Solar production per day/week β spread across the period, not just the total
Box Plot vs Candlestick β they look like cousins, but the body means something different. A candlestick body is open β close of the bucket: direction matters, color tells you up/down, and the order of values is essential β it's a momentum chart. A box plot body is Q1 β Q3 with the median inside: order is irrelevant, there is no open/close and no direction. "Where did it go?" β candlestick. "What was typical, and how much did it spread?" β box plot.
πͺ Waterfall β chart_mode: waterfall
Each entity is one +/β step of a running total with an automatic Total bar (hide with waterfall_total: false) and dashed connectors β the classic bridge chart. The step value is the entity's aggregate over the visible window; the default aggregate is sum in this mode.
Use it when the question is "how do the parts add up to the total?"
- π Energy balance β grid import + solar production β grid export = real house consumption (the killer use case; see README example)
- πΆ Monthly budget β income steps up, rent/groceries/utilities step down, Total = what's left
- π Battery balance β charged vs discharged energy over the window
- π Per-room / per-circuit consumption summing to the house total
- π§ Water or gas: inflows vs usages
For total_increasing counters (energy/water/gas meters) set aggregate_func: diff β a plain sum would add the meter reading repeatedly instead of the consumption. Use invert: true for the subtracting steps.
π Histogram β chart_mode: histogram
The value-frequency distribution over the visible window: X = value ranges (bins), Y = how often the value landed there. Time is discarded entirely. Bin count is automatic (FreedmanβDiaconis) or fixed via histogram_bins; multiple entities share the same bins side by side, and X labels sit centered under the bars showing each bin's midpoint.
Use it when the question is "what value does it usually sit at, and how often?"
- π‘οΈ Thermostat reality check β how much time the room actually spends inside the comfort band
- π₯οΈ CPU / RAM / load sensors β hourly distribution profiles instead of a noisy line
- β‘ Electricity price β how often the price lands above/below your automation threshold
- π Appliance power draw β idle vs active shows up as a two-humped (bimodal) distribution
- πΆ Ping / signal strength β one tight hump = healthy, a long tail = intermittent problems
- π EV state of charge β the SOC ranges the car actually lives in
Histogram vs Bar β a bar chart's X axis is time: each bar is the value of one time slot ("CPU was 62% at 14:00"). A histogram's X axis is value ranges and Y is the count: "CPU spent most of this month in the 55β65% band". Bar tells you what happened when; histogram tells you what's typical and how often. Technically the bar chart draws the
points_per_hourdisplay series, while the histogram counts the dense source samples.
π Docs
- README: new Box Plot / Waterfall / Histogram sections with anatomy, YAML examples, an option reference (
waterfall_total,histogram_bins), "Box Plot vs Candlestick" and "Histogram vs Bar" explainers, and three new columns in the Chart Mode Compatibility table.