First off, really great work on this integration, exactly what I was looking for! Managing ESPHome firmware updates has always been a bit of a manual chore and this fills a real gap.
Here are a few things I noticed along the way while testing this, both some issues and some ideas that I think could make it even better (I’m currently running v.1.2.6):
Suggested enhancements
- Button “Live logs” – open a window with the current device logs. Worth considering docked vs. floating/modal window as a design option.
- Round-robin log archive – keep a configurable number of archived ESPHome Update Manager and device logs (e.g. 10).
- Extend ESPHome Update Manager’s own log to include “from version > to version” under “Details:” – the current log shows that an update happened but not what changed, which makes it less useful for audit purposes.
- Rename the side panel from “ESPHome updates” to “ESPHome Update Manager”. (see red marker in the attached screenshot down below). EDIT: If you think “ESPHome Update Manager” is too long, I prefer “ESPHome Manager.”
- Display the current version number in the ESPHome Update Manager panel header or as a subtitle.
- Manual refresh/rescan button to force re-detection of available updates rather than waiting for the next scheduled check.
Current issues
- I have a zombie device in ESPHome Update Manager I can’t get rid of (see yellow marker in the screenshot). I have tried restart/delete/reload the integration etc without success. The zombie device doesn’t show up in the ESPHome Builder.
Screenshot:
The ESPHome Update Manager Log:
ESPHome Update Manager - Update Log
Timestamp: 2026-03-04 12:39:37
============================================================
Summary: 1 device(s) processed
✅ Success: 1
❌ Failed: 0
⏭️ Skipped: 0
⛔ Cancelled: 0
------------------------------------------------------------
Details:
------------------------------------------------------------
✅ update.pana_hz25tke_firmware
Status: success
Started: 2026-03-04T12:31:37.954326
Finished: 2026-03-04T12:39:37.970724
============================================================
End of log
============================================================
