はじめに

スマートホームのアクションを構築して、ユーザーが Google アシスタントで IoT(モノのインターネット)デバイスを制御できるようにします。スマートホームのアクションを構築すると、既存のクラウド インフラストラクチャを介してデバイスの接続、クエリ、制御ができます。

スマートホームのアクションは、Home Graph に依存しています。これは家について、またその屋内のデバイスに関するコンテキスト データを保存して提供するデータベースです。たとえば、Home Graph は、さまざまなメーカーの複数種類のデバイス(ライト、テレビ、スピーカー)があるリビングルームのコンセプトを保存できます。この情報は、適切なコンテキストに基づいてユーザーのリクエストを実行するために Google アシスタントに渡されます。

GitHub からダウンロードまたはクローンを作成して、スマートホームのアクションのエンドツーエンドのサンプルを入手してください。

サンプルを入手

Google スマートホームを使用して洗濯機を制御する方法のサンプルについては、スマートホーム洗濯機 Codelab をご覧ください。

デバイスの同期

ユーザーが Google アシスタント アプリを使ってデバイスをセットアップしてクラウド サービスを認証すると、アシスタントが OAuth トークンを受け取ります。この時点で、アシスタントは action.devices.SYNC インテントをフルフィルメントに送信し、クラウド インフラストラクチャからデバイスと機能の初期リストを取得します。

図 1 - 青色は Google のインフラストラクチャ、黄色はパートナーのインフラストラクチャ

action.intent.REQUEST_SYNC インテントを使用して Google アシスタントにリクエストを送信できます。Google アシスタントは、action.devices.SYNC インテントをフルフィルメントに送信して、デバイスと機能のリストを再度同期します。

図 2

コマンドの実行

ユーザーがデバイスにコマンドを送信するようにアシスタントに依頼すると、フルフィルメントは、アクションと動作させるデバイスを記述したペイロードを持つ action.devices.EXECUTE インテントを受信します。

図 3

デバイス ステータスの問い合わせ

「キッチンではどのライトが点灯していますか?」のような質問に答えたり、「ライトを明るくして」 のような相対的な明るさに関するコマンドを扱ったりするために、デバイス ステータスを問い合わせると、アシスタントは action.devices.QUERY インテントをフルフィルメントに送信します。

図 4

サードパーティは、デバイスの現在のステータスを直接 Home Graph に通知できます。

図 5