スマートホーム アクションでは Google Home Graph を利用します。これは、家やデバイスに関するコンテキスト データを保存して提供するデータベースです。Home Graph データベースには、ストラクチャ(自宅やオフィスなど)、部屋(寝室やリビングルームなど)、デバイス(スピーカーと電球など)に関する情報が格納されます。たとえば、Home Graph は、照明、テレビ、スピーカーなど、さまざまなメーカーの複数のデバイスが含まれるリビングルームがある家というコンセプトを保存できます。この情報は、Google Assistant で適切なコンテキストに基づいてユーザー リクエストを実行するために利用できます。電球が点灯しているかどうかなどの状態データは長期的には保存されません。このようなデータは一時的なものであり、Home Graph でのみ使用されます。
Home Graph は基本的に自宅の論理的な地図です。Assistant との自然な会話が可能になります。たとえば、書斎にいるユーザーがその部屋のライトを消そうとする場合は「OK Google, 電気を消して」と言うだけで、現在どの部屋にいるかを伝える必要はありません。
Home Graph の利点:
- 暗黙的に指示ができる。あなたの Google Home デバイスとライトが同じ部屋にあります。「ライトを点けて」というだけで済みます。ライトが置かれた部屋を指定する必要はありません。
- 特定の対象を制御できる。他の部屋にいるときでも、キッチンのライトを消すことができます。複数のメーカーのライトが混在していても問題ありません。smart home インテントは、Home Graph で識別される特定の部屋に対して決定されます。
構造
Google Home app (GHA) を使用すると、ユーザーは複数のストラクチャを構成し、複数の家を管理できます。ストラクチャごとに固有の部屋とデバイスがあります。構造は以下から構成されます。
- 管理者 - 構造の所有者のアカウント。構造ごとに 1 人以上の管理者が必要です。管理者が設定されると、その管理者は他のユーザーとストラクチャを共有または共有解除できます。
- 部屋 - 構造の一部である部屋。
- ラベル - 「John の家」のようにストラクチャを識別するラベル。
- デバイス - 構造の一部であるデバイス。複数のメーカー製のデバイスが混在していてもかまいません。
図 1 は、1 つのストラクチャ、3 つの部屋、複数のデバイスを備えた家のサンプルです。

Rooms
部屋は構造に属し、次のもので構成されています。
- ラベル - 「メイン ベッドルーム」のように部屋を識別するラベル。
- デバイス - 部屋の一部であるデバイス。複数のメーカー製のデバイスが混在していてもかまいません。
デバイス
デバイスは少なくとも 1 つの構造に属する必要があり、最大で 1 つの部屋に属することができます。デバイスには次のプロパティがあります。
- 種類 - ランプ、カメラ、空調機器などのデバイスの種類。
- トレイト - デバイスがサポートするトレイトの種類。トレイトはデバイスごとに異なります。たとえば、照明には
Brightness
やColorSetting
などのトレイトがあります。
トレイト
トレイトには次のプロパティがあります。
- 属性 - デバイス属性のうち、デバイスにとって静的なものをいいます。たとえば、温度単位やモードがこれに該当します。
- 状態 - デバイスの状態。ランプは、その特定のランプの現在の明るさを示す明るさの状態を返すことができます。デバイスのトレイトごとに、さまざまなデバイス状態がデバイスに追加されます。
- ラベル - 「寝室のランプ」のようにデバイスを識別するラベル。