Allow Deep Sleep ESPhome Devices to install updates using HA

Currently Deep Sleep enabled esphome devices cannot be updated using HA automations or HA, because the devices just won’t show the option to update it in this case.

https://github.com/home-assistant/core/blob/33016c29770de12ea62e9df701be86c56a345b33/homeassistant/components/esphome/update.py#L163 and
https://github.com/home-assistant/core/blob/33016c29770de12ea62e9df701be86c56a345b33/homeassistant/components/esphome/update.py#L129C33-L129C47 prevents ESPHome deep sleep enabled devices to show the update available state or update action.|

I want to update those devices as well. Currently I can disable deepsleep using a switch helper when the deepsleep device wakes up (every 12 hour at least).
I could automate (given HA allows for updating those devices):

  • disable deep sleep if a esphome device needs an update.
  • execute the update if it becomes online
  • check if the version is up-to-date > disable the disabledeepsleep switch > put in deepsleep again

I understand that it might make people scratch their head when they try to manually (in the HA UI) update the device if it is not online (It will not work). So somehow making this change opt-in would be great.

Maybe a global setting on ESPHome integration could do the trick, or just some device configuration in ESPHome yaml?
Anyhow I wanted to post it here as it seems it need code changes on this end as well.

I can look into making a PR myself, but first we need to decide what route makes most sense.

  1. Globally enabled deepsleep devices to show update (behaviour change)
  2. Allow Esphome integration to set a flag to enable updates on deep sleep devices
  3. Extend ESPhome device yaml to include a flag to explicit enable it in combination with deep sleep.

Open for suggestions/feedback

Hi,
Did you manage to get anywhere with this or is it a dead end?
I am trying to make a automation to update some esphome devices with deep sleep, so would be interested if you managed to do it or have some info.

thanx

Okay, I see this functionality was added in 2025.6 but how does it work . Can’t seem to find any instructions for it.

Click update on the newly available update entity. Wait for the device to wake up and update.

Note that update entities are disabled by default for new devices so you may need to enable the entity

For instance. On a device that’s already deployed, I make changes to the yaml file and want to update that device but it’s in deep sleep. I have to wait for it to wakeup and then manually click update. It doesn’t sound like that process has changed.

The update entity didn’t exist before in Home Assistant for sleepy devices. Now when you click it, it will wait for the device to wake up and update it

I suppose @vbphil is talking about config changes that require recompilation, not the framework updates that are signalled by the update entity.
It would be amazing if the update dialog would retry for longer to upload the file. Currently it fails after three attempts or so, then requiring a recompilation.

Correct. That’s what I was talking about.