ワンクリックで
read
List/read Home Assistant automation and script configs through HA NOVA Relay. For analysis, use ha-nova:review.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
List/read Home Assistant automation and script configs through HA NOVA Relay. For analysis, use ha-nova:review.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when the user wants Home Assistant operations through HA NOVA (App + Relay) with local OS-backed auth.
Use when checking Home Assistant home status, repairs, system health, unavailable/unknown entities, low batteries, or component/config summaries through HA NOVA Relay.
Use when HA NOVA Relay requests fail due to onboarding, connectivity, or auth issues.
Use when checking pending Home Assistant updates (core, OS, Apps, integrations, device firmware), reading release notes, installing updates with safety gates, or skipping/unskipping update versions through HA NOVA Relay.
Use when managing Home Assistant people, zones, tags, and user accounts — creating a person, drawing a zone, adding a tag, or reviewing who has access — through HA NOVA Relay.
Use when working with Home Assistant's voice assistant — testing what Assist understands, inspecting or editing Assist pipelines, managing which entities are exposed to voice, and listing TTS/STT/wake-word engines — through HA NOVA Relay.
| name | read |
| description | List/read Home Assistant automation and script configs through HA NOVA Relay. For analysis, use ha-nova:review. |
| license | MIT |
| compatibility | Requires the ha-nova CLI (run 'ha-nova setup' first) and the HA NOVA Relay in Home Assistant (App, or standalone container on Container/Core). |
Read only:
automation.listautomation.readscript.listscript.readautomation.tracescript.traceNot for helpers — use ha-nova:helper.
Multi-target is inventory-only:
skills/ha-nova/bulk-patterns.md for prefix / domain / area / labelNo writes.
POST, PUT, PATCH, or DELETE relay requests.ha-nova:write with resolved IDs and current config.Read and follow ../ha-nova/session-bootstrap.md.
Verify relay CLI: ha-nova relay health
If this fails: ha-nova setup
Use file-based requests:
perl -0pi, sed -i, or similar rewrites.ha-nova relay ws --data-file <payload-file>.ha-nova relay core --method <METHOD> --path <PATH> --body-file <payload-file>.--jq-file <filter-file> for complex filters and --out <result-file> for large responses. ha-nova relay jq is single-input; compare files natively.Use the compact entity registry (abbreviated keys: ei=entity_id, en=name, ai=area_id):
Create <payload-file> with:
{"type":"config/entity_registry/list_for_display"}
Then run:
ha-nova relay ws --data-file <payload-file> --jq-file <filter-file>
Write <filter-file> with one of:
[.data.entities[] | select(.ei | startswith("automation.")) | {entity_id: .ei, name: .en, area_id: .ai}] | .[0:30]
[.data.entities[] | select(.ei | startswith("script.")) | {entity_id: .ei, name: .en, area_id: .ai}] | .[0:30]
For bulk inventory by prefix, domain, area, or label, reuse skills/ha-nova/bulk-patterns.md and return the compact table only. For area scope, use the search/related area projection rules, not compact-registry ai.
Use short stems; limit results.
ha-nova relay ws --data-file <payload-file> --jq-file <filter-file>
Write <filter-file> with:
[.data.entities[] | select(.ei | startswith("automation.")) | select((.ei + " " + (.en // "")) | test("KEYWORD";"i")) | {entity_id: .ei, name: .en, area_id: .ai}] | .[0:20]
If 0 results: try synonyms/shorter stems: test("kw1|kw2";"i").
For "automations in room X": stay inside read and follow the area-first search/related flow from skills/ha-nova/bulk-patterns.md.
Resolve the config key via entity registry first; UI-created items often use numeric unique_id values.
unique_id:
<payload-file> with {"type":"config/entity_registry/get","entity_id":"automation.{slug}"}ha-nova relay ws --data-file <payload-file> --out <registry-file>ha-nova relay jq -r --file <registry-file> '.data.unique_id' (POSIX example; on Windows/PowerShell pass the same filter with native argument quoting)entity_id value directly into <payload-file>; do not use placeholder tokens such as REPLACE_ENTITY_IDscript.{slug}<result-file>:
ha-nova relay core --method GET --path /api/config/automation/config/{unique_id} --jq-file <filter-file> --out <result-file>/api/config/script/config/{unique_id}skills/ha-nova/config-body-filter.jq to <filter-file>if .ok then .data.body else error("relay error: \(.error.message // "unknown")") end
<filter-file> with the canonical line before the first config read; do not create alternate config-filter filenamesha-nova relay jq --file <result-file> -e --jq-file <filter-file>type == "object"ha-nova relay jq --file <result-file> with length or --jq-file <filter-file>.Read the saved file with the native file-reading tool. Do not analyze configs from shell output.
Find automations/scripts that use a specific entity:
Create <payload-file> with:
{"type":"search/related","item_type":"entity","item_id":"{entity_id}"}
Then run:
ha-nova relay ws --data-file <payload-file>
If id is ambiguous, ask one clarifying question. Never use raw get_states.
Apply skills/ha-nova/output-rules.md to all user-facing output.
After reading a config, present (the bold labels below are semantic slots — localize them at runtime per output-rules.md, never print them as literal English headings):
**{Automation|Script}: {alias}**
- **ID:** {id}
- **Entities:** {list all entity_ids used in triggers, conditions, and actions}
- **Triggers:** {short description of each trigger}
- **Conditions:** {short description or "none"}
- **Actions:** {short description of each action, grouped by trigger if applicable}
- **Mode:** {single|restart|queued|parallel}
Then show the full YAML config:
alias: ...
triggers: ...
actions: ...
For list operations, render the List Frame (output-rules.md) with these columns:
| Entity ID | Name | Area |
|-----------|------|------|
Never show raw JSON to the user.
For trace queries:
Prefer CLI helpers: ha-nova trace latest <entity> --json, ha-nova trace list <entity> --json, ha-nova trace get <entity> <run_id> --json. They resolve unique_id and normalize trace shapes. If none exist, explain that Home Assistant keeps only recent traces and YAML automations/scripts need an id.
Manual relay path:
unique_id. item_id requires the unique_id, NOT the entity_id slug.
Create <payload-file> with the config/entity_registry/get request, then run:
ha-nova relay ws --data-file <payload-file> --out <registry-file>
ha-nova relay jq -r --file <registry-file> '.data.unique_id'
unique_id:
Create <payload-file> with:
{"type":"trace/list","domain":"automation","item_id":"{unique_id}"}
ha-nova relay ws --data-file <payload-file>
For scripts: "domain":"script". Trace lists may be .data array or .data.traces; inspect first.
Pick the newest real run_id. Do not use a list index such as "0" or "4".ha-nova trace get; otherwise save trace/get to <result-file>:
Create <payload-file> with:
{"type":"trace/get","domain":"automation","item_id":"{unique_id}","run_id":"{run_id}"}
ha-nova relay ws --data-file <payload-file> --out <result-file>
ha-nova relay jq --file <result-file> empty
Read the file with your native file-reading tool.last_changed via /api/states/{entity_id}.item_id in trace data matches the target's unique_id. see skills/ha-nova/SKILL.md → Claim-Evidence Binding./health preflightRead-only skill: never issue mutating relay or service calls.
For write intent, hand off to the owning skill; unfamiliar writes go through ha-nova:fallback first.
never guess ids
if multiple close matches, ask one selection question