Home Assistant, ESPHome, and Unexpected Changes
May 16, 2025I have been using esphome with various m5stack controllers with home assistant for collecting environment data in my apartment.
Being able to write a bit of yaml and have a fairly functional sensor is great.
I have been using the picture element card with some state badges to have a nice overview of my apartment and it has generally worked well.
I noticed however with a recent update, that all of the badges had a much longer label and needed to look into what changed.
It seems like there was a legacy format exception that was removed and released in 2025.5, though one has to look at the detailed changelog to find a reference of it.
So now that I actually understand the bug, I need to fix my ESPHome configs.
Initially, I started with a single node and updated it, however this resulted in all entities for that component receiving a new id, therefore losing any historical data for that entity. After messing up on a second sensor, I was able to figure out a rough way to fix things in a way that kept old data.
Given an entity with ID old_friendly_name_<entity>
, I manually updated it to new_device_name_<entity>
in the Home Assistant UI before deploying a new ESPHome build to the device. Verifying that this worked, I then went one device at a time, fixing the metrics in Home Assistant and then rebuilding and deploying the new ESPHome device config.
Once I verified that each device was correct, I then needed to go around various dashboards and update the entity references there.
This did make me long for a way to manage dashboard yaml files in git though I was not able to find good documentation on that during my search.
I do not necessarily fault the Home Assistant developers or ESPHome developers.
Keeping around legacy code does have a cost, and many of the developers are working on things in their free time and not getting paid.
I am sure it is very likely when I first configured things, I copied an example I found on the internet, unaware that it was not the recommended way to use friendly name
, and then likely kept propagating things.
I do however wish there was a more visible callout in the changelog, considering the quote I found in the issue.
I think a few folks might be a bit frustrated with this change, especially if they’ve been stuck with some odd naming from before we had friendly names. There might be a little transition pain, but once everything’s consistent, it’ll be way easier to understand and keep things tidy moving forward.
That is part of the nature of open source however.