mcpField
H
hass-builder

hass-builder

github.com/aahl開発1641.6k 回インストール6 週間前に更新
リポジトリ

hass-builder について

Home Assistant の設定を構築・管理する CLI スキルです。LLM 向けに検出、自動化、ダッシュボード、運用などを案内し、スキーマに基づくコマンドとリスクの高い変更への確認手順を示します。

主な機能

  1. 01Home Assistant ワークフローの案内
  2. 02スキーマに沿ったコマンド作成
  3. 03解析用 JSON 出力への対応
  4. 04対応コマンドでの変更プレビュー
  5. 05リスクの高い操作前の確認

活用シーン

  1. 01エンティティとデバイスの確認
  2. 02オートメーションやダッシュボードの作成
  3. 03ESPHome プロジェクトの検証とアップロード
  4. 04システム変更の計画と検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aahl/skills --skill hass-builder

インストール後、Claude Code で/hass-builderを入力して読み込まれたか確認します。

同梱ファイルscripts/hab.sh

詳細

Home Assistant Builder(hab)

LLM が Home Assistant の設定を作成・管理するための CLI ユーティリティです。

すべてのワークフローで最初に行うこと

hab コマンドをすべて scripts/hab.sh コマンドに置き換えてください。scripts/hab.sh は自動インストールに対応したラッパースクリプトです。 home-assistant-build-cli プロジェクトは、Home Assistant のメインメンテナーであり、Home Assistant を所有する Open Home Foundation の創設者でもある Paulus(@balloob)がビルドおよびリリースしています。

alias hab='scripts/hab.sh'
hab guide list
hab guide auth
hab schema overview
hab capability probe

次に、対象のワークフローに関するトピックとコマンドスキーマを確認します。

タスク最初に実行するコマンド
検出/インベントリhab guide discovery; hab schema entity list
オートメーション/スクリプト/シーンhab guide automation; hab schema automation create --json
ダッシュボード/Lovelacehab guide dashboard; hab schema dashboard card create --json
ヘルパーhab guide helpers; hab helper types --json
カレンダー/To-dohab guide calendar-todo
バックアップ/システム/ネットワークhab guide operations; hab schema system restart
ESPHomehab guide esphome; hab schema esphome validate --json

認証済みの読み取りを行うだけであれば、hab auth status と関連するスキーマだけで十分です。

出力と解析

Claude などのプログラムで出力を解析する場合は、必ず --json を使用してください。JSON の成功レスポンスとエラーレスポンスはエンベロープ形式です。次のフィールドを確認してから先に進んでください。

  • success
  • data
  • error.code、error.details.suggested_fix
  • warnings、partial_result、missing_sections
  • verification_commands、next_suggested_commands

ESPHome の build、validate、upload、run、logs などのストリーミングコマンドは、JSON モードでは最終エンベロープを 1 つ返す代わりに、NDJSON イベントを出力することがあります。

変更とリスク確認

状態を変更する前に、次の手順で確認してください。

  1. コマンドのガイド/スキーマを確認します。
  2. 読み取り専用の list/get コマンドで現在の状態を取得します。
  3. --plan または --dry-run がサポートされている場合は、変更内容をプレビューします。
  4. リスクのある操作を実行する前に、プレビューを表示してユーザーに確認を求めます。
  5. プランまたは後続の get/list コマンドに記載されている検証コマンドを実行します。

ダウンタイム、データ損失、接続の切断、ハードウェアの変更につながる可能性がある操作の前には、必ずユーザーに明示的な確認を求めてください。対象となる操作は、system restart、バックアップの復元/削除、ネットワークの設定/適用、Thread データセットの変更、統合の有効化/無効化/再読み込み、ESPHome の upload/run/update/erase-flash、および --force を指定するあらゆる削除です。

コマンドを非対話型にするためだけに --force を追加しないでください。ユーザーが対象の操作を承認した場合に限り使用してください。

入力ペイロード

データを受け取るコマンドは、通常、次の形式に対応しています。

方法使用する場面形式
--data / -d短い JSON ペイロードhab automation create id -d '{...}' --json
--file / -f大きな YAML/JSON ペイロードhab automation update id -f automation.yaml
stdin ヒアドキュメント一時ファイルを使わない複数行のペイロードhab automation create id <<'EOF'

大きなオートメーションやダッシュボードでは、引用符によって JSON/YAML が壊れないよう、ファイルまたはヒアドキュメントを使用してください。

よく使うコマンドのパターン

# Authentication and instance checks
hab auth status
hab overview
hab capability probe

# Entity inventory
hab entity list --domain light
hab entity get light.kitchen --device --related
hab search related entity light.kitchen

# Safe mutation preview
hab schema area create --json
hab area create "Kitchen" --plan
hab area create "Kitchen"

# Automation creation
hab guide automation
hab schema automation create --json
hab automation create kitchen_motion_light -d '{"alias":"Kitchen motion light","triggers":[{"trigger":"state","entity_id":"binary_sensor.kitchen_motion","to":"on"}],"conditions":[],"actions":[{"action":"light.turn_on","target":{"entity_id":"light.kitchen"}}]}' --dry-run

# Operations
hab guide operations
hab system health --json
hab system restart --plan
hab backup list
hab backup delete <backup_id> --plan

回答の形式

ユーザーから hab コマンドを尋ねられた場合は、次のように回答してください。

  1. 意図する安全モード(読み取り専用、プレビューのみ、または確認済みの変更)を明記します。
  2. 実行する順にコマンドを提示します。
  3. ユーザーの確認が必要なコマンドに印を付けます。
  4. 次の手順に進む前に確認する JSON フィールドを伝えます。
  5. 検証コマンドを含めます。

よくある間違い

間違いより良い方法
コマンドのフラグを記憶に頼って推測するまず hab schema <command> --json を実行します
テキスト出力を解析する--json を使い、エンベロープのフィールドを確認します
インベントリを確認せずにリソースを作成するまず list/get/search related を実行します
変更のプレビューを省略する対応している場合は --plan または --dry-run を使います
手軽さのために --force を使うリスクのある操作を正確に確認してから実行します
ESPHome の JSON を単一のオブジェクトとして扱うストリーミングコマンドでは NDJSON ストリームのイベントを処理します
verification_commands を無視する実行するか、実行しない理由を説明します

コメント