Skip to content
Back to skills

Homeassistant Ops

ASecurity

Operate a Home Assistant instance via the official REST/WebSocket APIs and backups, with safe plan/apply workflows for bulk, reviewable changes.

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 9, 2026
toolsgobashnodeapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill homeassistant-ops --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Homeassistant Ops?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Homeassistant Ops
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-homeassistant-ops/badge)](https://www.skillsdirectory.com/skills/majiayu000-homeassistant-ops)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: homeassistant-ops
description: "Operate a Home Assistant instance via the official REST/WebSocket APIs and backups, with safe plan/apply workflows for bulk, reviewable changes."
---

# Home Assistant Ops

Use this skill as the operator's playbook for making bulk, reviewable changes
to a Home Assistant instance without SSHing into the host.

**Requires Node.js 22+** (uses built-in `fetch` + `WebSocket`; no npm deps).

## Default workflow (plan -> apply -> validate)

1. Inventory the current state (API) and/or registries (backup).
2. Propose an explicit change set (entity_ids, names, automation ids, etc).
3. Apply via API with validation (small batches, dry-run first).
4. Smoke-test the specific behavior (traces + event tail).
5. Record a timestamped log + a rollback mapping.
6. (Optional) Snapshot before/after for diff/rollback.

## Setup

Set environment variables (never pass tokens on the command line):

```bash
export HA_URL="http://<home-assistant-host>:8123"
export HA_TOKEN="<long-lived-access-token>"
```

Run scripts using `node`:

```bash
node scripts/ha_ops.js --help
```

Keep logs in a working folder (scripts write timestamped `.md` files by default).

## First questions (to avoid rework)

- What's the HA version and deployment type (OS / Container / Core)?
- Which Zigbee stack is used (ZHA vs Zigbee2MQTT) and which devices are affected?
- Which parts are YAML-managed vs UI-managed (automations, scripts, scenes, dashboards)?
- Do we have a recent backup to inspect before making bulk changes?
- Is the goal UI clarity, automation correctness, performance/latency, or all of the above?

## Core concepts (what to change where)

- **Entity registry**: source of truth for friendly-name overrides, entity_id renames, hidden/disabled, and some area assignment.
- **Device registry**: best place to assign areas for physical devices (entity area often inherits).
- **Blueprint inputs**: not templatable; state triggers need a static entity list at config-load time.
- **HA "group helpers"**: great for UI/targeting/maintenance, but they don't make Zigbee unicast faster (they expand to member calls).

## Scripts

All scripts read `HA_URL` and `HA_TOKEN` from environment variables.

### `ha_ops.js` - Single CLI with subcommands

All operations are available under a single CLI:

```bash
# List commands
node scripts/ha_ops.js --help

# Command help
node scripts/ha_ops.js cleanup --help
```

### `ha_ops.js cleanup` - Bulk cleanup (dry-run by default)

```bash
# Dry-run all default steps (default)
node scripts/ha_ops.js cleanup

# Apply specific steps
node scripts/ha_ops.js cleanup --apply \
  --steps rename-switch-suffix,prefix-lights-cove

# Prefix custom patterns with area names
node scripts/ha_ops.js cleanup --apply \
  --steps prefix-generic \
  --pattern "Thermometer:^Thermometer" \
  --pattern "Blinds:^Blinds"

# Output proposed changes as JSON
node scripts/ha_ops.js cleanup --json
```

Available steps:

- `rename-switch-suffix`: Rename "Lights ... Switch" to "Lights ..."
- `create-groups`: Create/update switch groups for sync automations
- `prefix-lights-cove`: Prefix Lights/Cove names with area
- `prefix-generic`: Prefix entities matching `--pattern` with area

### `ha_ops.js snapshot` - Capture state for diffing

```bash
# Full snapshot
node scripts/ha_ops.js snapshot

# Skip noisy sections
node scripts/ha_ops.js snapshot \
  --no-lovelace --no-scenes

# Include runtime states (noisy for diffs)
node scripts/ha_ops.js snapshot --include-states
```

### `ha_ops.js rollback` - Revert registry changes from a snapshot

```bash
# Preview what would be rolled back
node scripts/ha_ops.js rollback \
  snapshot_before.json --dry-run

# Apply rollback
node scripts/ha_ops.js rollback \
  snapshot_before.json --yes
```

### `ha_ops.js find-references` - Find entity_id usage

```bash
# Search for entity references before renaming
node scripts/ha_ops.js find-references \
  --needle "switch.bedroom_lights"

# Search from a rename mapping file
node scripts/ha_ops.js find-references \
  --map-json rename_map.json --backup-root /path/to/backup
```

### `ha_ops.js tail-events` - Monitor events in real-time

```bash
# Tail state changes
node scripts/ha_ops.js tail-events

# Filter to specific entities
node scripts/ha_ops.js tail-events \
  --entity switch.bedroom_lights --entity switch.bedroom_lights_2

# Include ZHA events
node scripts/ha_ops.js tail-events \
  --event-type state_changed --event-type zha_event
```

### `ha_ops.js name-review-from-backup` - Offline naming analysis

```bash
# Analyze backup for naming candidates
node scripts/ha_ops.js name-review-from-backup \
  --backup-root /path/to/backup
```

## Error recovery

If a script fails mid-way:

1. Check the log file for what was applied before the failure.
2. Use `ha_ops.js rollback` with your before-snapshot to revert registry changes.
3. Fix the underlying issue (network, permissions, entity conflicts).
4. Re-run the script (operations are generally idempotent).

## Resources

- API reference: `references/api.md`
- Ops playbook: `references/playbook.md`
- Entity ID conventions: `references/id_conventions.md`

## Logging convention

Prefer one markdown log per run (timestamped), listing every entity/automation changed and the before/after values.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.