スマートホーム アクションではホームグラフが使用されます。ホームグラフは、家やスマートホーム デバイスに関するコンテキスト データを保存して提供するデータベースです。ホームグラフ データベースには、構造(家屋やオフィスなど)、部屋(ベッドルームやリビングルームなど)、デバイス(スピーカーやライトなど)に関する情報が格納されます。たとえば、ホームグラフには、「さまざまなメーカーの複数のデバイス(ライト、テレビ、スピーカーなど)が置かれたリビングルームがある家」というコンセプトを保存できます。この情報を利用して、Google アシスタントは適切なコンテキストに基づいてユーザーのリクエストを処理できます。ライトが点灯しているかどうかなどの状態データは長期的には保存されません。このようなデータは一時的なものであり、ホームグラフでのみ使用されます。
ホームグラフはその性質から、家の論理的な地図のようなものと言えます。ホームグラフを使用することで、Google アシスタントとの自然な会話が可能になります。たとえば、書斎にいるユーザーがその部屋のライトを消そうとする場合は「OK Google, ライトを消して」と言うだけで、現在どの部屋にいるかを伝える必要はありません。
ホームグラフの利点は次のとおりです。
- 暗黙的に指示ができる。Google Home デバイスとライトがある部屋にいる場合は、「ライトを点けて」というだけで済みます。ライトが置かれた部屋を指定する必要はありません。
- 特定の対象を制御できる。他の部屋にいるときでも、キッチンのライトを消すことができます。複数のメーカーのライトが混在していても問題ありません。スマートホーム インテントは、ホームグラフで識別された部屋に対して決定されます。
Google Home アプリでは、ユーザーが複数の構造を構成できるため、複数の家を管理できます。構造ごとに固有の部屋とデバイスがあります。構造は以下から構成されます。
- 管理者 - 構造の所有者のアカウント。構造ごとに 1 人以上の管理者が必要です。定義された管理者は他のユーザーと構造を共有または共有解除できます。
- 部屋 - 構造の一部である部屋。
- ラベル - 「John の家」のように構造を識別するラベル。
- デバイス - 構造の一部であるデバイス。複数のメーカー製のデバイスが混在していてもかまいません。
部屋は構造に属し、次のもので構成されています。
- ラベル - 「メイン ベッドルーム」のように部屋を識別するラベル。
- デバイス - 部屋の一部であるデバイス。複数のメーカー製のデバイスが混在していてもかまいません。
デバイスは少なくとも 1 つの構造に属する必要があり、最大で 1 つの部屋に属することができます。デバイスには次のプロパティがあります。
- 種類 - ランプ、カメラ、空調機器などのデバイスの種類。
- トレイト - デバイスがサポートするトレイトの種類。トレイトはデバイスごとに異なります。たとえば、照明には
Brightness
やColorSetting
などのトレイトがあります。
トレイトには次のプロパティがあります。
- 属性 - デバイス属性のうち、デバイスにとって静的なものをいいます。たとえば、温度単位やモードなどがこれに該当します。
- 状態 - デバイスの状態。ランプは、その特定のランプの現在の明るさを示す明るさの状態を返すことができます。デバイスのトレイトごとに、さまざまなデバイス状態がデバイスに追加されます。
- ラベル - 「寝室のランプ」のようにデバイスを識別するラベル。
デバイスタイプやトレイトの詳細については、デバイスのタイプとトレイトをご覧ください。
図 1 は、1 つのストラクチャ、3 つの部屋、いくつかのデバイスを備えた家のサンプルです。これらのアイテムごとに、上記の対応するプロパティがあります。
