スマートホーム インテントは、ライトをつける、オーディオをスピーカーにキャストするなど、どのような Cloud-to-cloud 統合を実行するかを表す単純なメッセージング オブジェクトです。
smart home インテントはすべて action.devices 名前空間に含まれており、アクションの開発時にインテントに対するフルフィルメントを提供する必要があります。Google Assistant がインテントをフルフィルメントに送信するたびに、ユーザーのサードパーティ OAuth 2 アクセス トークンが Authorization ヘッダーで渡されます。
サポートされている smart home インテントは次のとおりです。
SYNC
action.devices.SYNC インテントは、ユーザーが接続済みで使用可能な smart home デバイスのリストをリクエストするために使用されます。
ユーザーが Google Home app (GHA) でデバイスをセットアップする際、クラウド インフラストラクチャに対しそれらのデバイスの認証も行われます。認証が完了すると、Assistant は OAuth2 トークンを受け取ります。この時点で、Assistant は action.devices.SYNC インテントをフルフィルメントに送信して、クラウド インフラストラクチャからユーザーのデバイスと機能の初期リストを取得します。
ユーザーのアカウントのリンクをいったん解除して再びリンクすることを避けるため、Assistant に Request Sync を送信できます。これにより、action.devices.SYNC インテントがフルフィルメントに送信され、デバイスと機能のリストが同期されます。詳細については、Request Sync の実装をご覧ください。
ローカルホーム プラットフォームは、ローカル フルフィルメントのセットアップ中に、smart home アクションのクラウド フルフィルメントからの SYNC レスポンスをチェックします。ローカル フルフィルメントをサポートするよう SYNC レスポンスを変更する方法については、クラウド フルフィルメントで SYNC レスポンスを更新するをご覧ください。
QUERY
action.devices.QUERY インテントは、smart home デバイスの現在の状態を問い合わせるために使用されます。
ユーザーから「OK Google, キッチンで点灯しているライトはどれ?」というような質問を受けたとき、Assistant は action.devices.QUERY インテントをフルフィルメントに送信します。
最適なユーザー エクスペリエンスを実現するには、Report State を実装して、事前にユーザーのデバイスの現在の状態を Google Home Graph に直接送信しておく必要があります。そうすれば、たとえばユーザーが物理的な照明スイッチでスマートライトをつけた場合に Assistant がそれを知ることができます。
EXECUTE
action.devices.EXECUTE インテントは、smart home デバイスで実行するコマンドを提供するために使用されます。
ユーザーが Assistant を使用してデバイスにコマンドを送信すると、実行するアクションと対象のデバイスを指示する action.devices.EXECUTE インテントがフルフィルメントに送信されます。ユーザーは、「OK Google, リビングのライトをつけて」などのコマンドでデバイスに対するアクションを実行できます。
DISCONNECT
action.devices.DISCONNECT インテントは、ユーザーが Assistant からアプリ アカウントのリンクを解除したことを知らせるためにトリガーされます。action.devices.DISCONNECT インテントを受け取った後で、このユーザーのデバイスのステータスを返さないでください。