Install
openclaw skills install haos-ssh-maintenancePerform Home Assistant OS maintenance via SSH for direct file access, YAML edits, custom component inspection, shell troubleshooting, and interactive ha CLI...
openclaw skills install haos-ssh-maintenanceUse SSH only when API-based inspection is not enough.
Prefer the Home Assistant API first for:
Switch to SSH when:
/config need reading or editingcustom_components must be inspectedha CLI work is neededUse the SSH target stored in TOOLS.md.
/config/config/configuration.yaml/config/automations.yaml/config/scripts.yaml/config/scenes.yaml/config/custom_components//config/home-assistant_v2.dbDo not assume Home Assistant writes logs to a file by default.
Check logs in this order:
ha CLI log access such as ha core logsObserved behavior for this environment:
ha core logs may fail in one-shot SSH modeha core logs works in an interactive PTY-backed SSH sessionWhen editing Home Assistant automations or packages by hand:
service: to call a service such as shell_command.foo or light.turn_on.action: shell_command.foo in YAML automations. That produces an unknown action error in this environment.action is the UI/schema concept for a step in the actions list, but in hand-written YAML the concrete service call key should be service:.Use one-shot SSH commands for:
/configOne-shot SSH is appropriate for commands like:
catgrepsedfindlsDo not assume ha CLI commands will work in one-shot mode.
Use an interactive PTY-backed SSH session for:
ha core logsha CLI commands that fail in one-shot modeWhen running from OpenClaw, prefer a PTY-backed exec session and then send commands into the live SSH shell.
/config/automations.yaml/config/scripts.yaml/configcustom_components if relevantUse SSH for:
custom_components inspectionha CLI log inspection.storage inspection or edits when UI/registry-backed state must be changed directlyDo not use SSH first for:
.storage direct-edit policyHome Assistant internal storage under /config/.storage/ can be edited when necessary, including files such as:
/config/.storage/core.entity_registry/config/.storage/core.device_registry/config/.storage/core.config_entriesRules:
.storage edits as a last-resort or targeted-operation path, not the default first move.core.entity_registry; YAML friendly_name overlays can override what the UI shows..storage JSON unless explicitly necessary.When using this skill, report: