スマートホーム インテントは、ライトの点灯やスピーカーへのオーディオのキャストなど、実行する 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
インテントを受け取った後は、このユーザーのデバイスの状態を返さないでください。