Replace entities and keep history (BREAKING CHANGE starting HA Core 2023.4)

I really think this needs more attention. So I deciced to make a dedicated topic out of the release notes blog post at 2023.4: Custom template macros, and many more new entity dialogs! - #621 by e-raser.


According to 2023.4: Custom template macros, and many more new entity dialogs! - Home Assistant

  • Home Assistant now keeps history when renaming entities :metal:

Before:

  1. sensor.entity with statistics
  2. Renamed sensor.entity to sensor.entity_old
  3. Created a new sensor.entity using the same name
  4. The new sensor.entity will have the full history (states and statistics) of the old sensor.entity

Now: doing the same results in a complete new history (states and statistics).

How to rename entities to actually preserve the old states + statistics?

It seems to be not possible anymore for an entity to inherit the history of another entity just based on the entity_id. I really need to solve this, otherwise this would be an actual step backā€¦ the entity_id swap workaround worked just perfectly before 2023.4!

When reading this first I thought thatā€™s exactly what this new feature does - instead after trying with a few entities, I lost all the history dataā€¦ :cry:


Edit: I think the core issue is when the old entity has itā€™s own unique_id set. One simply can not transfer unique_idā€™s to another entity, right?


Currently instead of a rocking

  • Home Assistant now keeps history when renaming entities :metal:

I tend to say the opposite is right: now we are not able to swap entities and keep their history. So that ā€œfancy new featureā€ comes with a HUGE downside :warning:
Not possible without very very VERY ugly and dangerous database hacks I guess - really not an option.

Please my fellow HA enthusiasts, prove me wrong. How to achieve this now > HA Core 2023.4?

Edit: found this unsolved topic targeting the same topic/issue:

Looking forward to the solution as well. Yesterday one of my powerplugs died and I want to replace it with a new one, but keep the history of the old powerplug since it is integrated in my energy dashboard.

The new powerplug is ready to be adopted in Home Assistant, but without the steps to keep the history, I am a little hesitant to proceed.

Current status: After HA Core 2023.4 it is still possible to swap entities AND keep the history of the old (replaced) entity.

According to How to replace entity in Energy Dashboard by new one without losing history - #2 by petro the process now with HA Core >= 2023.4 is:

1. Delete old entity
2. Rename new entity to old entity_id
3. New entity will inherit old entities history

Do not under any circumstances rename the old entity before you delete it, this will cause the history to follow the renamed name.

Thereā€™ll also be some errors logged to the HA log which seems to be ā€œnormalā€ for this kind of database and entity registry operation.


Another guide which seems to work fine according to Replacing device but keeping entity_id/long term statistics in HA - #12 by mekaneck can be found (via Replacing device but keeping entity_id/long term statistics in HA - #10 by mekaneck) at HA Energy Dashboard FAQ Ā· GitHub

It seems way more complicated as it involves restarting HA, which shouldnā€™t be necessary (anymore with HA Core >= 2023.4).


For all further information I strongly recommend to look at this topic where few open questions should be answered shortly:

1 Like