🛠️ Automatic updates in homeassistant 🛠️

:fire: Version 5.2.0

Changelog
* **5.2.0:** Added detailed failure reason logging to system_log with level
error. Failed updates now log entity state, installed/latest version, and
timeout info. Uses logger
homeassistant.components.automation.advanced_auto_updater for easy
filtering.

* **5.1.0:** Added optional notify.send_message support for modern
notification services (e.g. Telegram). Both legacy notify and
send_message can be used simultaneously.

* **5.0.2:** Removed deprecated sensor.backup_manager_state. Backup is now
treated as blocking (hassio.backup_full is synchronous).

* **5.0.1:** Moved release URLs to the final notification to avoid the
255-character log limit.

* **5.0.0:** Added optional pre-run backup, release notes in notifications,
and day-of-week filtering.

* **4.1.1:** Robustness fixes for state handling, log truncation, and entity
filtering.

* **4.1.0:** Fixed install_timeout to use minutes instead of a time-of-day
selector.

* **4.0.0:** Major robustness improvements for resume handling and
notifications.

* **3.0.0:** Major refactor with all review improvements applied.

:hammer_and_wrench: Advanced Auto-Updater with Smart Resume, Backups & Final Notifications

Stop worrying about manual Home Assistant updates

Are you tired of constantly checking Home Assistant for new updates and installing them manually?
With this automation blueprint, you don’t have to worry about that anymore.

This blueprint automatically detects pending updates and installs them for you in a safe, controlled order — including optional pre-run backups, retry handling, restart survival, and exactly ONE final notification when everything is done.

This blueprint automatically detects all pending Home Assistant updates and installs them for you in a safe and controlled order — including notifications, backups, and automatic handling of restarts.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

:rocket: What does this blueprint do?

This automation is a robust, set-and-forget update manager for your entire Home Assistant ecosystem. It gives you granular control over what gets updated and executes everything in a safe, strict order.

It starts on your chosen daily schedule and can be limited to specific days of the week. Before installing the first update, it can optionally create a full Home Assistant backup, giving you a clean rollback point.

From there, it installs updates in a smart sequence: first Add-ons and HACS/custom integrations, then Supervisor and OS, and finally Home Assistant Core.

Because OS updates may reboot the system and Core updates restart Home Assistant, this blueprint is specifically designed to survive restarts and continue automatically after boot. It tracks progress using helpers, resumes from the correct stage, retries failed Add-on or HACS updates, and sends a single consolidated notification only after the full run is complete.

:white_check_mark: Key features

:mag: Granular Control
Choose exactly which update types should be installed automatically:

  • Add-ons
  • HACS & custom integrations
  • Home Assistant OS & Supervisor
  • Home Assistant Core

:calendar: Day-of-Week Filtering
Only allow the update run to start on the days you choose.

:shield: Optional Pre-Run Backup
Create a full Home Assistant backup before the update sequence begins.

:gear: Smart Sequencing
Updates are installed in a safe order to reduce dependency issues and instability.

:repeat: Smart Retry Loop
Automatically retries failed Add-on and HACS updates up to your configured maximum.

:arrows_counterclockwise: Restart & Reboot Survival
If Home Assistant restarts after a Core update or the system reboots after an OS update, the blueprint resumes automatically on startup.

:calling: Zero Spam Notifications
Sends exactly ONE final notification at the end of the full run.

:page_facing_up: Release Notes Links in Final Notification
Release URLs are gathered for the final notification instead of the live log, avoiding the 255-character helper limit.

:broom: Robust State Recovery
Built-in guards detect and clear stale, stuck, or out-of-sync run states.

:arrows_counterclockwise: Update order

To minimize risks, avoid dependency breakage, and handle reboots safely, updates are installed in this exact order:

  1. Pre-run backup (optional)
  2. Add-ons
  3. HACS & Custom Integrations
  4. Retry loop for failed Add-on/HACS updates
  5. Home Assistant Supervisor
  6. Home Assistant Operating System
  7. Home Assistant Core (always last)

This structured approach ensures that supporting components are updated first, while reboot-triggering updates are handled at the end.


:loudspeaker: Notifications & Log Output

You can configure one or more notification services, such as:

  • notify.mobile_app_your_phone
  • notify.telegram
  • any other Home Assistant notify service

During the run, the automation stores a compact progress log in a helper so the update state survives restarts and reboots.

At the end of the sequence, the blueprint sends a single easy-to-read summary showing exactly what happened, including:

:white_check_mark: Successfully installed updates
:x: Updates that failed
:repeat: Retry attempts for failed downloads
:floppy_disk: Pre-run backup result
:link: Release note / release URLs
:hourglass_flowing_sand: Any updates still pending

Example final notification:

✅ Updates completed
──────────────────────────
💾✅ Backup
✅ Node-RED
✅ HACS
❌ Mushroom [R1]
✅ Mushroom [R2]
✅ Supervisor
✅ HA OS
✅ HA Core

📋 Release notes:
🔗 Mushroom: https://...
🔗 HA Core: https://...

:warning: Important notes & risks

System restarts and reboots
If you enable OS or Core updates, Home Assistant will temporarily go offline during the process.

Breaking changes are still possible
An update may install successfully but still require manual fixes to dashboards, integrations, or automations afterward.

Backups are strongly recommended
The new pre-run backup option adds an extra safety layer, but always make sure you have enough disk space and that your backups are stored safely.

Helpers are required
This blueprint relies on helpers to track:

  • the update log
  • the current stage
  • whether a run is active
  • whether the final notification has been sent

Log helper length matters
The log helper should be limited to 255 characters, which is why release URLs are only included in the final notification.

Best for hands-off users who understand update risks
This blueprint is ideal for users who want mostly autonomous update management and are comfortable with the inherent risks of automatic updates.

1 Like

I assume you mean all people who doesn’t read Release Notes anyways

What could possible go wrong ?

This blueprint doesn’t send any notifications. It only populates an input_text.

nevermind, it does, it just uses an input_text to hold info instead of overwriting a variable.

That one already updates automatically. Forcing a manual update on it is the easiest way to run into GitHub throttling issues.

-1 for this: I don’t think it’s a good idea to update automatically since you probably will run into issues.

Nice that you’ve created this (though with some help I guess)

2 Likes

It sure is a good way, to get unwanted/unnecessary headache , when you are away or sleeping and an update fu the system

Next “project” could be Creating a Blueprint to rollback, Triggered by the “Not welcomed” Notifications
( Not that i know how the “Verification” of a successful update looks like , in this Blueprint )

1 Like

According to your description you allow mutliple notification actions in a comma seperated string

Enter one or more notify services,
separated by commas (e.g.:
notify.mobile_app_phone, notify.telegram)

However you use this string directly in an action: key

action: !input notification_service

That won’t work with a comma separated string. You’ll need to split it on the comma, and use a repeat loop to send it to each notify action.

Also note that more and more integrations will move to notify entities instead of notify actions. In the end that wil make is easier to setup in your blueprint, as you can use an entity selector instead of text selector, but at one point you will have a mixed setup where people might want to use a combination notify actions and notify entities.

2 Likes

Yea it stores the info in it incase hass restarts

Thx for the update, i changed it so that also should work now.

Thx, very useful for someone that does not login as Superuser every day :grinning:

One missed breaking change & you won’t be able to login at all :smiley:

1 Like

Love the idea.

I ended up using a slightly more complex automation to skip <.3 core releases, since those tend to be the most unstable.

I run one update per day at a fixed time, which makes it much easier to track down issues—if something breaks, I know exactly which update caused it.

For those who don’t agree with this approach: maintaining and upgrading multiple instances manually took way more time than the occasional debugging I have to do now. Failures are rare, and this setup makes them easier to isolate.

I’m running multiple instances because sending sensor data over the internet isn’t really an option—latency and reliability just don’t make it workable for local data.

1 Like

You are a basic level user. If you are trying to edit, you have to advance your level.
You need to be a trust level ‘member’ to re-edit a post. Understanding Discourse Trust Levels

is there a template for the helpers? maybe in a little yaml :slight_smile:

What do you mean ?
Something to make the helpers ?

Yes so that they are the way they should be. :slight_smile:

You can when you make the blueprint easily create a new helper, if you click on the select an entity it also suggests to create a new 1

just give it a name so its easy to identify

oh crab i complitly read over this… sorry
is there a way to use “telegram bot” as a notification? because notify.telegram is not availible.

and additional i recived this error:

@Artropos
Did you have an idea how o can use the new telegram integration as notification. and did you know the error from spook?
Thanks in advanced.

I installed the blueprint one week ago and it works fine. Thx!