diff --git a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts index ae556b90e5..af616f0ff5 100644 --- a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts @@ -300,18 +300,26 @@ export class HuiStatisticsGraphCardEditor } private async _entitiesChanged(ev: CustomEvent): Promise { - const config = { ...this._config!, entities: ev.detail.value }; + const newEntityIds = ev.detail.value; + + // Save the EntityConfig objects from being replaced with strings + const newEntities = newEntityIds.map((newEnt) => { + const matchEntity = this._config!.entities.find( + (oldEnt) => typeof oldEnt !== "string" && oldEnt.entity === newEnt + ); + return matchEntity ?? newEnt; + }); + + const config = { ...this._config!, entities: newEntities }; if ( - config.entities?.some((statistic_id) => - isExternalStatistic(statistic_id) - ) && + newEntityIds?.some((statistic_id) => isExternalStatistic(statistic_id)) && config.period === "5minute" ) { delete config.period; } const metadata = config.stat_types || config.unit - ? await getStatisticMetadata(this.hass!, config.entities) + ? await getStatisticMetadata(this.hass!, newEntityIds) : undefined; if (config.stat_types && config.entities.length) { config.stat_types = ensureArray(config.stat_types).filter((stat_type) =>