Feature Request: Smart "Update All" with Resume Capability for Dashboard #3382
Replies: 5 comments
-
|
Yes! With some way of keeping some devices at known good releases, this would be golden. |
Beta Was this translation helpful? Give feedback.
-
|
Yes I vote for this. I got about 48 esp devices and it take me about a day and a half to update all. Normaly a read thru the release notes and what components was changed and then I will only update the esp devices that got changes to some conponents. I run my esphome on a linux docker container, and not on my homeassistant machina. |
Beta Was this translation helpful? Give feedback.
-
|
I love all these ideas... I think adding the version/update lock would be easy to do with a tag in the device yaml and react accordingly. I also like the idea of a dashboard/view to group devices - thinking by "area" or a "tag" or both selectable in the UI... I'll play with these. |
Beta Was this translation helpful? Give feedback.
-
|
Came here to suggest something similar, but not as well as you did for sure. Great ideas! Adding background updating would be a great addition to your request. Errors shown on completion. |
Beta Was this translation helpful? Give feedback.
-
|
Don't skip offline devices that are known to have worked before, just retry until resolved. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the enhancement
Summary
Add intelligent bulk update functionality to ESPHome Dashboard that only updates devices requiring updates, with resume capability for interrupted operations.
I'm Willing to Contribute
I'm not just requesting this—I'm offering to help build it:
Problem Statement
Current Behavior
ESPHome Dashboard's "Update All" button currently:
Real-World Impact
I manage a 377-device ESPHome deployment. Here's what "Update All" currently does:
Scenario 1: Routine ESPHome core update
Scenario 2: Modified 5 device YAML files
Scenario 3: Daily workflow
This isn't theoretical—this is my daily reality with a large deployment.
Proposed Solution
Add a "Smart Update" button (or replace current "Update All" logic) that:
Core Logic
Additional Features
Resume Capability
.esphome/update_progress.jsonProgress Indicators
Offline Detection (optional enhancement)
Benefits & Impact
Time Savings (Real Numbers)
My deployment (377 devices):
Most common case: Only 5-20 devices need updates after YAML changes.
Community Impact
Based on Home Assistant community discussions:
Use Cases
1. Daily operations (most common)
2. ESPHome core updates
3. Targeted updates
Technical Implementation Notes
Data Already Available
ESPHome Dashboard already tracks this information in
.esphome/dashboard.json:{ "device_name": { "deployed_version": "2025.10.3", "current_version": "2025.11.0", "target_platform": "ESP8266", ... } }No new data collection needed—just use existing version fields for comparison.
Estimated Complexity
Low to Medium:
This is a straightforward enhancement using existing infrastructure.
Proof of Concept
I built a working implementation as a Home Assistant add-on to validate this approach:
Repository: https://github.com/CSJudd/ha-addons/tree/master/esphome_selective_updates
How it works:
dashboard.jsondeployed_versionvscurrent_versionfor each devicedocker execto compile inside ESPHome container (only devices needing updates)Results on my 377-device deployment:
Limitations of my workaround:
This proves:
Why This Should Be High Priority
1. Scalability Blocker
2. Low-Hanging Fruit
3. Frequently Requested
4. Competitive Feature
User Stories
Story 1: Smart Home Enthusiast
Story 2: Property Manager
Story 3: Maker Space
Alternative Approaches Considered
Why These Don't Work
"Just click Update manually for each device"
"Use ESPHome CLI in scripts"
"Just recompile everything every time"
"Use Home Assistant automations"
Proposed UI
Option 1: Separate Buttons
Option 2: Dropdown (Cleaner)
Progress Display (During Updates)
Success Metrics
If implemented, this feature would:
Quantitative:
Qualitative:
Backwards Compatibility
Fully backwards compatible:
I'm Willing to Contribute
I'm not just requesting this—I'm offering to help build it:
What I can provide:
What I need from maintainers:
I've already proven the concept works. Let's make it official and help the entire ESPHome community.
Related Discussions
(Feel free to link if you find existing issues/discussions about this)
Conclusion
This isn't a nice-to-have—it's a scalability requirement for ESPHome's continued growth.
Current "Update All" works fine for 5-10 devices. But at 50+ devices, it becomes painful. At 100+ devices, it's practically unusable. At 377 devices (my deployment), it's a multi-hour ordeal that I avoid unless absolutely necessary.
The data exists. The logic is simple. The benefit is massive.
This would make ESPHome significantly better for thousands of users while requiring minimal implementation effort.
Thank you for considering this feature request. Happy to discuss further or answer any questions.
If you manage 20+ ESPHome devices and want this feature, please 👍 this issue and share your device count and use case below.
Beta Was this translation helpful? Give feedback.
All reactions