Edits, validates, and deploys Home Assistant YAML config (automations, scripts, scenes, templates, MQTT, Lovelace) via SSH, hass-cli, or MCP. Guides reload vs restart decisions and verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/home-assistant-manager:home-assistant-managerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Operate a remote Home Assistant instance precisely: make a change, get it live, prove it
Operate a remote Home Assistant instance precisely: make a change, get it live, prove it worked. Optimize for the fewest safe round-trips.
/config dir, git-connected to the instance
(typically [email protected]). Edits aren't live until pulled on the instance.hass-cli (REST), SSH ha, or an MCP server (see below)..yaml/.yml/.md. Never read/write .env or secrets.yaml; use !secret.ha — always works, needs no local env. Use for ha core check|restart|logs|info.hass-cli (REST) — state/service calls, but needs HASS_SERVER/HASS_TOKEN in the
shell before the session starts. If they're unset, hass-cli falls back to the wrong
host (localhost) and errors — don't retry, check [ -n "$HASS_TOKEN" ] once, then use
SSH or MCP instead.mcp_server integration (HA core ≥2025.2) or community ha-mcp
(richer, 80+ tools). Use it instead of shelling out when present.Changes are not live until step 4.
ssh [email protected] "ha core check" (slow, ~30-60s — see "when to
skip" below).git add … && git commit -m "…" && git push.ssh [email protected] "cd /config && git pull".Rapid iteration: skip git and scp straight to the instance, then reload — good for
dashboards and tight test loops. Commit to git only once stable.
scp automations.yaml [email protected]:/config/ → reload.
When to skip ha core check: it parses the whole config and is slow. For an isolated
YAML edit you're confident in, a domain reload surfaces errors faster and the logs tell
you immediately. Always run it before a restart or for configuration.yaml changes.
| Change | Action |
|---|---|
| automations, scripts, scenes, groups, template entities, themes | reload the domain (hass-cli service call automation.reload, etc.) |
configuration.yaml core, new integrations, platform sensors (min/max), MQTT sensor/binary_sensor platforms, dashboard registry (lovelace_dashboards) | restart (ssh … "ha core restart", ~30s) |
Prefer reload. Never restart without a passing ha core check.
hass-cli service call automation.trigger --arguments entity_id=automation.<id>
(or call the service via MCP).ssh [email protected] "ha core logs | grep -iE '<name>|error' | tail -20".
Good: Running automation actions, Executing step …. Bad: Invalid data for call_service, TypeError, Template variable warning, Error executing script.hass-cli state get <entity>), or ask
the user for notification-type actions.states('sensor.x') | int(0) < 7. Bare states are
strings; '5' < 7 raises TypeError. Provide a default (int(0)) so startup None
doesn't error.state_attr(...) returns None if the entity/attr is missing — guard it.Lovelace dashboards live in .storage/lovelace.* (JSON). UI edits show on a browser refresh;
direct file edits (scp/git) may not appear until a ha core restart — HA caches the
lovelace store in memory. Adding a new dashboard to .storage/lovelace_dashboards also needs
a restart. scp + refresh is the fast loop; validate JSON first:
python3 -m json.tool .storage/lovelace.x > /dev/null. After deploying, validate the UI
visually in the browser (see the reference) — logs/state won't catch a broken card or a
mis-sorted popup.
Full dashboard reference (view types, card catalog, template cards, tablet layout,
pitfalls, debugging) → read reference/dashboards.md when doing
UI work. Modern HA: native sections view (drag-drop grid, badges, heading cards) and
feature-rich tile cards now cover most needs without custom cards; reach for Mushroom
only when you want its specific look.
# Validate / apply
ssh [email protected] "ha core check"
ssh [email protected] "ha core restart"
ssh [email protected] "cd /config && git pull" # make pushed changes live
# Logs
ssh [email protected] "ha core logs | grep -iE 'error|<name>' | tail -20"
# State / services (needs env loaded, or use MCP)
hass-cli state get <entity>
hass-cli service call <domain>.reload
hass-cli service call automation.trigger --arguments entity_id=automation.<id>
# Rapid deploy
scp <file>.yaml [email protected]:/config/ && hass-cli service call automation.reload
npx claudepluginhub komal-skynet/claude-skill-homeassistant --plugin home-assistant-managerManages Home Assistant YAML configurations: editing configuration.yaml, integrations setup, secrets management, packages organization, and troubleshooting errors.
Create and manage Home Assistant YAML configuration files including automations, scripts, templates, blueprints, Lovelace dashboards, and file organization. Use when working with Home Assistant configuration files (.yaml, .yml) or discussing HA automations, scripts, sensors, or dashboards.
Promotes best practices for Home Assistant automations, helpers, scripts, and dashboards. Triggers when creating/editing automations, choosing between template sensors and helpers, or setting up Zigbee button automations.