スマートホーム インテントは、 どのような 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 インテントを
フルフィルメントに送信してユーザーのデバイスと機能の初期リストを
クラウド インフラストラクチャから取得します。
ユーザーのアカウントのリンクをいったん解除して再びリンクすることを避けるため、request sync
を Assistantに送信できます。これにより、action.devices.SYNC
インテントがフルフィルメントに送信され、デバイスと機能のリストが同期されます。詳細については、
Request Syncの実装をご覧ください。
ローカルホーム プラットフォームは、ローカル フルフィルメントのセットアップ中に、
スマートホーム アクションのクラウド フルフィルメントからのSYNCsmart home レスポンスをチェックします。ローカル フルフィルメントをサポートするよう
SYNC レスポンスを変更する方法については、
クラウド フルフィルメントで SYNC レスポンスを更新するをご覧ください。
QUERY
action.devices.QUERY インテントは、smart home デバイスの現在の状態
を照会する場合に使うインテントです。
ユーザーがデバイスのステータスをクエリする場合、「
OK Google, キッチンで点灯しているライトはどれ?」
というような質問に答えるには、Assistant は action.devices.QUERY インテントをフルフィルメントに送信します。
最適なユーザー エクスペリエンスを実現するには、 Report Stateを実装して、事前に ユーザーのデバイスの現在の状態を Google Home Graphに直接送信しておく必要があります。そうすれば、たとえばユーザーが Assistant物理的な照明スイッチでスマートライトをつけた場合に Google アシスタントがそれを知ることができます。
EXECUTE
action.devices.EXECUTE インテントは、smart home デバイスで実行するコマンド
を提供する場合に使うインテントです。
ユーザーが Assistant を通じてデバイスにコマンドを送ると、実行するアクションと対象のデバイスを指示する action.devices.EXECUTE インテントが
フルフィルメントに送信されます。ユーザーは、「OK Google, リビングのライトをつけて」
などのコマンドでデバイスに対するアクションを実行できます。
DISCONNECT
action.devices.DISCONNECT インテントは、ユーザーが Assistant からアプリアカウントのリンクを解除したことを伝えるインテントです。action.devices.DISCONNECT
インテントを受け取った後で、このユーザーのデバイスのステータスを返さないでください。