From cdd17eed2e61c531af80d903f09857740a9edbaa Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 17 Feb 2025 21:36:53 -0800 Subject: [PATCH] Fix untracked energy rendering at the base of the bar stack (#24288) --- .../hui-energy-devices-detail-graph-card.ts | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts index 82ae3d31a4..9ece46a8d2 100644 --- a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts +++ b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts @@ -327,17 +327,19 @@ export class HuiEnergyDevicesDetailGraphCard ); const untrackedConsumption: BarSeriesOption["data"] = []; - Object.keys(consumptionData.total).forEach((time) => { - const ts = Number(time); - const value = - consumptionData.total[time] - (totalDeviceConsumption[time] || 0); - const dataPoint: number[] = [ts, value]; - if (compare) { - dataPoint[2] = dataPoint[0]; - dataPoint[0] = compareTransform(new Date(ts)).getTime(); - } - untrackedConsumption.push(dataPoint); - }); + Object.keys(consumptionData.total) + .sort((a, b) => Number(a) - Number(b)) + .forEach((time) => { + const ts = Number(time); + const value = + consumptionData.total[time] - (totalDeviceConsumption[time] || 0); + const dataPoint: number[] = [ts, value]; + if (compare) { + dataPoint[2] = dataPoint[0]; + dataPoint[0] = compareTransform(new Date(ts)).getTime(); + } + untrackedConsumption.push(dataPoint); + }); // random id to always add untracked at the end const order = Date.now(); const dataset: BarSeriesOption = {