diff --git a/src/data/energy.ts b/src/data/energy.ts index e5d2532b37..4bb9611b04 100644 --- a/src/data/energy.ts +++ b/src/data/energy.ts @@ -12,6 +12,8 @@ import { ConfigEntry, getConfigEntries } from "./config_entries"; import { subscribeEntityRegistry } from "./entity_registry"; import { fetchStatistics, Statistics } from "./history"; +const energyCollectionKeys: string[] = []; + export const emptyFlowFromGridSourceEnergyPreference = (): FlowFromGridSourceEnergyPreference => ({ stat_energy_from: "", @@ -123,11 +125,7 @@ export const saveEnergyPreferences = async ( type: "energy/save_prefs", ...prefs, }); - const energyCollection = getEnergyDataCollection(hass); - energyCollection.clearPrefs(); - if (energyCollection._active) { - energyCollection.refresh(); - } + clearEnergyCollectionPreferences(hass); return newPrefs; }; @@ -252,6 +250,16 @@ export interface EnergyCollection extends Collection { _active: number; } +const clearEnergyCollectionPreferences = (hass: HomeAssistant) => { + energyCollectionKeys.forEach((key) => { + const energyCollection = getEnergyDataCollection(hass, { key }); + energyCollection.clearPrefs(); + if (energyCollection._active) { + energyCollection.refresh(); + } + }); +}; + export const getEnergyDataCollection = ( hass: HomeAssistant, options: { prefs?: EnergyPreferences; key?: string } = {} @@ -268,6 +276,8 @@ export const getEnergyDataCollection = ( return (hass.connection as any)[key]; } + energyCollectionKeys.push(options.key || "energy"); + const collection = getCollection( hass.connection, key, diff --git a/src/panels/energy/strategies/energy-strategy.ts b/src/panels/energy/strategies/energy-strategy.ts index aabed8728d..49cbd113d0 100644 --- a/src/panels/energy/strategies/energy-strategy.ts +++ b/src/panels/energy/strategies/energy-strategy.ts @@ -1,6 +1,5 @@ import { EnergyPreferences, - getEnergyDataCollection, getEnergyPreferences, GridSourceTypeEnergyPreference, } from "../../../data/energy"; @@ -52,8 +51,6 @@ export class EnergyStrategy { (source) => source.type === "solar" ); - getEnergyDataCollection(hass, { prefs, key: "energy_dashboard" }); - if (info.narrow) { view.cards!.push({ type: "energy-date-selection", diff --git a/src/panels/lovelace/components/hui-energy-period-selector.ts b/src/panels/lovelace/components/hui-energy-period-selector.ts index 68fd4c3a99..a14a993663 100644 --- a/src/panels/lovelace/components/hui-energy-period-selector.ts +++ b/src/panels/lovelace/components/hui-energy-period-selector.ts @@ -7,6 +7,8 @@ import { formatDate } from "../../../common/datetime/format_date"; import { EnergyData, getEnergyDataCollection } from "../../../data/energy"; import { SubscribeMixin } from "../../../mixins/subscribe-mixin"; import { HomeAssistant } from "../../../types"; +import "@material/mwc-icon-button/mwc-icon-button"; +import "../../../components/ha-svg-icon"; @customElement("hui-energy-period-selector") export class HuiEnergyPeriodSelector extends SubscribeMixin(LitElement) { @@ -47,11 +49,7 @@ export class HuiEnergyPeriodSelector extends SubscribeMixin(LitElement) {
${label}
- +