A new plugin reads Home Assistant with a read-only token every 5 minutes and shows which Core, OS and add-on updates are waiting and how old the last backup is. Install takes a backup through a local-only webhook, confirms Home Assistant's last-backup time moved, installs, and follows the update to its end, through Home Assistant's and Steward's own restarts. One runs at a time. Each ends as one timeline entry. Steward holds nothing that can act on the house: the webhook's automation can only take a backup or install an allowed update (System 231's ruling). A refused token stops polling, as Home Assistant bans an address after a few refusals. Milestone 576 steps 1 to 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.9 KiB
Home Assistant plugin
Shows which Home Assistant updates are waiting and how old its last backup is, and installs Core, OS and add-on updates, each only after a fresh backup is confirmed. Each update goes on the timeline.
Steward never holds a credential that can act on your house. It reads with a read-only token, and acts only through a webhook whose automation can take a backup or install an allowed update.
Setting it up
- In Home Assistant, turn on automatic backups (Settings → System → Backups).
- Make a local-only user in the read-only group (
system-read-only) and a long-lived token for it. - On Steward's Home Assistant page, choose Connect, enter Home Assistant's local address and the token, and save.
- Copy the automation the connection page shows into Home Assistant (Settings → Automations → Create → Edit in YAML). Steward reads whether it is there and on.
Steward must reach Home Assistant by a local address, because the webhook only answers local requests. Home Assistant bans an address after a few refused requests, so Steward stops asking after one refusal until you save the connection or choose Try again.
Installing an update
Install asks once, then Steward:
- Asks for a backup and waits until Home Assistant's last successful backup time moves. If it doesn't, nothing is installed.
- Asks for the update and follows it until the new version is installed, or until a deadline: 20 minutes for an add-on, 30 for Core, 45 for the OS.
One runs at a time, and it carries on if Steward restarts. Firmware and custom integrations are left to Home Assistant, and Supervisor updates itself.
Metrics
Under source homeassistant, resource homeassistant, read every 5 minutes: is_up, updates_waiting and backup_age_hours. An alert rule on backup_age_hours above 26 warns when a daily backup has been missed; a rule's no-data warning covers Home Assistant going quiet.