スマートホーム インテントは、ライトの点灯やスピーカーへのオーディオのキャストなど、実行する 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
インテントをフルフィルメントに送信し、クラウド インフラストラクチャからユーザーのデバイスと機能の初期リストを取得します。
![この図は、Google インフラストラクチャとパートナー インフラストラクチャ間のデータのやり取りを示しています。Google インフラストラクチャから、アシスタント クライアント アプリで使用できるパートナーのリストがパートナー インフラストラクチャに渡されて、OAuth 認証が行われます。パートナー側の OAuth 認証は、パートナー セットアップ WebView、OAuth WebView、オプションの設定と期間、パートナー クラウド サービスです。認証が完了すると、パートナー インフラストラクチャからアシスタント クライアント アプリに OAuth 認証情報が返されます。パートナー クラウド サービスから、使用可能なデバイスと機能がアシスタント サービスに送信され、その情報がホームグラフに保存されます。](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome001.png?authuser=0&hl=ja)
ユーザーのアカウントのリンクをいったん解除して再びリンクすることを避けるため、Assistant に Request Sync を送信できます。これにより、action.devices.SYNC
インテントがフルフィルメントに送信され、デバイスと機能のリストが同期されます。詳細については、Request Sync の実装をご覧ください。
![SYNC インテントのフロー図](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome002.png?authuser=0&hl=ja)
ローカルホーム プラットフォームは、ローカル フルフィルメントのセットアップ中に、smart home アクションのクラウド フルフィルメントからの SYNC
レスポンスをチェックします。ローカル フルフィルメントをサポートするよう SYNC
レスポンスを変更する方法については、クラウド フルフィルメントで SYNC レスポンスを更新するをご覧ください。
QUERY
action.devices.QUERY
インテントは、smart home デバイスの現在の状態を問い合わせるために使用されます。
ユーザーから「OK Google, キッチンで点灯しているライトはどれ?」というような質問を受けたとき、Assistant は、フルフィルメントに action.devices.QUERY
インテントを送信します。
![QUERY インテントのフロー図](https://developers.home.google.com/static/cloud-to-cloud/primer/images/query-diagram.png?authuser=0&hl=ja)
最適なユーザー エクスペリエンスを実現するには、Report State を実装して、事前にユーザーのデバイスの現在の状態を Google Home Graph に直接送信しておく必要があります。たとえば、ユーザーが物理的な照明スイッチでスマートライトをつけたかどうかを Assistant が認識できるようになります。
![Report State を使用してデバイスの状態を報告する](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome004.png?authuser=0&hl=ja)
EXECUTE
action.devices.EXECUTE
インテントは、smart home デバイスで実行するコマンドを提供するために使用されます。
ユーザーが Assistant を使用してデバイスにコマンドを送信すると、実行するアクションと対象のデバイスを指示する action.devices.EXECUTE
インテントがフルフィルメントに送信されます。ユーザーは、「OK Google, リビングのライトをつけて」などのコマンドでデバイスに対するアクションを実行できます。
![EXECUTE インテントのフロー図](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome003.png?authuser=0&hl=ja)
DISCONNECT
action.devices.DISCONNECT
インテントは、ユーザーが Assistant からアプリ アカウントのリンクを解除したことを知らせるためにトリガーされます。action.devices.DISCONNECT
インテントを受け取った後は、このユーザーのデバイスの状態を返さないでください。