- Add tianqi weather recorder patch notes (W1N-75: _unrecorded_attributes) - Document Bluetooth hci0 RTL8821CS instability (W1N-74) and eMMC lifetime 10% (W1N-76) as known issues - Rewrite runbook known-issues section: all snapshot items resolved; link hosts doc for the two remaining known issues
9.3 KiB
Runbook: Home Assistant maintenance (hass.windy.lan)
Target: hass.windy.lan (HAOS, machine: green)
Upstream: HAOS 18.1 / Core 2026.8.x / Supervisor 2026.07.5 (verified 2026-08-13)
This runbook covers routine Home Assistant maintenance through the ha
supervisor CLI. All commands are wrapped by a single script
scripts/ha-maintenance.sh; the sections below
document the exact commands it runs, for manual/agent use.
Access pattern
ha authenticates to the Supervisor with SUPERVISOR_TOKEN. Interactive SSH
login works because ~hassio/.zprofile runs exec sudo -i; the root login
environment carries the token. Non-interactive use must be:
ssh -o BatchMode=yes hassio@hass.windy.lan 'sudo -n -i ha <cmd>'
Running ha as hassio directly (or sudo -n without -i) returns
unauthorized: missing or invalid API token.
MOTD: every sudo -n -i login prints the SSH & Web Terminal MOTD banner.
The script runs its whole procedure in one remote login (sudo -n -i bash -s)
so the banner appears once, then strips it with awk up to the
System is ready! Use browser or app to configure. line.
Script usage
cd runbooks/scripts
./ha-maintenance.sh # read-only health snapshot
./ha-maintenance.sh --check-config # validate core configuration
./ha-maintenance.sh --logs core 200 # tail core logs
./ha-maintenance.sh --logs supervisor # tail supervisor logs (default 100)
./ha-maintenance.sh --logs host 50 # tail host journald logs
./ha-maintenance.sh --logs apps:<slug> # tail an add-on log
# Mutating — refuse to run without --yes:
./ha-maintenance.sh --update --yes # refresh + update core(--backup)/supervisor/os
./ha-maintenance.sh --restart-core --yes # restart Core
./ha-maintenance.sh --restart-core --safe-mode --yes # restart Core in safe mode
./ha-maintenance.sh --rebuild-core --yes # rebuild Core image (after options change)
./ha-maintenance.sh --rollback-os --yes # boot previous OS slot (A/B rollback)
./ha-maintenance.sh --reboot --yes # reboot the HAOS host
./ha-maintenance.sh --backup [NAME] --yes # full backup (optionally named)
./ha-maintenance.sh --restore <slug> --yes # restore a backup (DESTRUCTIVE)
./ha-maintenance.sh --app restart core_mosquitto --yes # add-on lifecycle
--appaction is one ofstart|stop|restart|update; needs an add-on slug.HA_HOST/HA_SSH_USERoverride the defaults (hass.windy.lan/hassio).--restoreoverwrites the current installation — run only from a planned recovery, with the backup verified.
Command reference (verified 2026-08-13)
All verified against the live host. MOTD prepends each command's output; strip
with the awk pattern above or read the last block.
Routine / read-only
| Purpose | Command |
|---|---|
| General overview | ha info |
| Core version/status | ha core info |
| Core config validation | ha core check |
| Core stats | ha core stats |
| Supervisor status | ha supervisor info (incl. add-on list) |
| Supervisor stats | ha supervisor stats |
| OS status | ha os info (boot slots A/B) |
| Host status | ha host info (disk free/total, kernel) |
| Network | ha network info (supervisor_internet) |
| Hardware | ha hardware info |
| Pending updates | ha available-updates |
| Reload stores/versions | ha refresh-updates |
| Job manager | ha jobs info |
| Resolution center | ha resolution info |
| Core logs | ha core logs -n 100 (-f follow, -b boot id) |
| Supervisor logs | ha supervisor logs -n 100 |
| Host journald logs | ha host logs -n 100 |
| Add-on logs | ha apps logs <slug> -n 100 |
| Add-on list | ha supervisor info → addons: (started/stopped/error) |
| Security integrity | ha security integrity |
Mutating (require --yes)
| Purpose | Command |
|---|---|
| Update core (with partial backup) | ha core update --backup |
| Update supervisor | ha supervisor update |
| Update OS | ha os update |
| Update add-on | ha apps update <slug> |
| Restart core | ha core restart / ha core restart --safe-mode |
| Rebuild core | ha core rebuild |
| OS rollback | ha os boot-slot other |
| Reboot host | ha host reboot |
| Full backup | ha backups new [--name NAME] |
| Restore backup | ha backups restore <slug> |
| Add-on start/stop/restart | ha apps start|stop|restart <slug> |
Procedure
1. Health snapshot (read-only)
./ha-maintenance.sh
Review: supervisor healthy: true/supported: true; core/OS update_available;
add-on states (any state: error?); resolution info issues; disk free.
2. Validate config after any configuration.yaml change
./ha-maintenance.sh --check-config
Expect Command completed successfully. before a Core restart.
3. Inspect logs
./ha-maintenance.sh --logs core 200
./ha-maintenance.sh --logs supervisor
./ha-maintenance.sh --logs apps:core_mosquitto
4. Apply updates (mutating)
./ha-maintenance.sh --update --yes
Runs refresh-updates → core update --backup (partial backup first) →
supervisor update → os update, then re-prints pending updates. Prefer the
web UI (Settings → System → Updates) for a human-supervised pass.
5. Recovery operations (mutating, only when needed)
./ha-maintenance.sh --restart-core --safe-mode --yes # start Core without custom integrations
./ha-maintenance.sh --rollback-os --yes # OS update broke boot? go back one slot
./ha-maintenance.sh --restore <slug> --yes # full restore; overwrites current install
OS update policy: HAOS uses two boot slots (A/B); ha os info shows which slot
booted. After a bad OS update, ha os boot-slot other boots the previous slot.
6. Backup before major changes
./ha-maintenance.sh --backup pre-migration --yes # named backup
Command families intentionally NOT scripted
These exist in ha but are either rare, dangerous, or better done in the web
UI; documented here so nothing is a surprise. Use ha <family> --help on the
host for exact syntax.
| Family | Notes |
|---|---|
ha audio |
Audio device management; peripheral. |
ha authentication |
auth list/reset/cache; user password ops — do in web UI. auth list is local-terminal only. |
ha cli |
Internal CLI backend info/update; self-maintained. |
ha dns |
Internal DNS server; only relevant if Supervisor DNS add-on in use. |
ha docker |
Host Docker backend info/options/registries; HAOS-managed. |
ha mounts |
Network storage (NFS/CIFS) mounts — configure in Settings → System → Storage. |
ha multicast / ha observer |
Internal services; self-maintained. |
ha network scan/update/vlan |
WiFi AP scan & interface config — prefer web UI networking. |
ha host disks/options/shutdown/reload |
Disk ops / host options; shutdown is equivalent to --reboot but off. |
ha os datadisk list/move/wipe |
Data-disk migration; wipe is local-terminal only and erases all data. |
ha os import |
Import config from USB stick. |
ha os boards / os config |
Board / OS settings. |
ha core options / supervisor options |
Core/OS config options (e.g. --duplicate-log-file); changes need ha core rebuild + restart. |
ha backups freeze/thaw/remove/options |
Freeze/thaw for external backup tools; removal is destructive. |
ha jobs options/reset |
Job-manager tuning. |
ha resolution check/healthcheck/issue/suggestion |
Resolution center management; healthcheck runs fixups. |
ha store add/delete/repair |
Repository management — add repos in web UI app store. |
ha security info/options |
Security backend options. |
Docs vs actual CLI discrepancies
The official HAOS common-tasks docs
reference ha backups list and ha host update. Neither exists in the
installed CLI (2026-08-13): backups are inspected with ha backups info <slug> (a slug is required) and host has no update subcommand. Trust the
server CLI (ha <cmd> --help) over the docs.
Known issues on hass.windy.lan (2026-08-13)
All items from the original 2026-08-13 health snapshot were resolved same day
(W1N-70/71/72/73/74/75/76): OTBR and the duplicate SSH add-on uninstalled, all
resolution-center issues cleared (ha resolution info → empty), full backup
pre-maintenance-20260813 (slug 411a4ba5) taken. Remaining known issues
(documented in hosts/hass.windy.lan.md):
- Bluetooth hci0 instability (RTL8821CS):
bluetooth_auto_recoverypower-reset times out every ~2 min; kernelhci0 hardware error. No BLE entities exist, so no user impact. HAOS image shipsx88-bt-hci-recoveryworkaround units. host inforeportsdisk_life_time: 10(boot eMMC ~10% life left) — monitor on each snapshot; plan disk replacement / data-disk migration.
Pass criteria
- Health snapshot completes; supervisor
healthy/supported: true - Mutating modes refuse to run without
--yes(incl.--restore,--app) --check-configreturns success- Update / rollback / restore / reboot confirmed only after explicit
--yes - Update the Verified line on hosts/hass.windy.lan.md