チャットボットがスマートホーム機器を操作する場合、最も重要なのは権限境界です。自然言語操作は便利ですが、デバイス状態、サービス呼び出し、メッセージ送信元を明示的に記録する必要があります。
プロジェクト概要
main.py は /ha と /ha_ping を処理します。home_assistant_control では、クライアント、設定、権限、エンティティ一覧、別名解決、自然言語ルーティング、サービスルーティング、監査、trace を分けています。
用途は、AstrBot から制限付きで Home Assistant のエンティティを照会、操作することです。状態確認、低リスクな照明操作、監査付きのスマートホーム操作に向いています。
実装
起動時にエンティティを取得し、ID、表示名、ドメイン、利用可能サービス、別名を持つローカル一覧を作ります。入力はまずデバイスと動作に照合され、サービス呼び出しへ変換されます。
一般的な操作はルールで処理します。LLM 解釈は補助に留め、その出力も権限 profile とサービス許可リストを通ってから実行します。