Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Nest API のアーキテクチャ

Google Nest サービスについて

Nest アプリケーションを使用すると、ユーザーはどこにいても家に接続できます。すべての Nest デバイス(サーモスタット、Protect、カメラ)とアプリ(iOS、Android、ウェブアプリ)が Nest サービスに接続している。

クラウド間接続の例

Nest サービスは、家のデータモデルを提供します。デバイスとアプリケーションは、このデータモデルから読み取り、適切なアクションを実行します。システムの変更を反映するようにデータモデルを更新します。

たとえば、サーモスタットはデータモデルから設定温度を読み取ります。周囲温度を現在の測定値に設定し、センサーデータを在宅/外出アシストに送信して、それに応じて構造モードを調整します。

Google Nest デバイスは、制限された環境で動作します。電力が制限されるため、ホーム ネットワーク接続が不安定になる場合があります。プロダクトやサービスでは、Google のデバイス アルゴリズムを利用して、シンプルで直感的なユーザー エクスペリエンスを提供できます。

データモデル

Nest API は、metadatadevicesstructures という最上位の属性を持つ JSON ドキュメントとして表されます。Works with Nest 製品は、この JSON ドキュメントを使用して、Google Nest デバイスや関連する状態の変化を操作します。

Google Nest structures は、現実世界に存在する物品を表します。これらは devices 用の体系的なポイントとして機能し、建物全体のデータを格納します。通常、structure はユーザーホームです。

Nest devices は、構造内の物理デバイス(サーモスタット、Protect、カメラ)を表します。

JSON ドキュメント内のすべてのデータ要素は、URL でアドレス指定できます(「データ ロケーション」とも呼ばれます)。Works with Nest プロダクトは、このドキュメントのセクションの読み取りと書き込み、および変更のサブスクライブを行うことができます。この定期購入機能を使用すると、Works with Nest 製品は、ユーザーがストラクチャを「外出」に設定したときに照明を消すなど、システムに加えられた変更にリアルタイムで反応できます。

また、オブジェクトは実際の制約下でも機能します。データモデルは、予期せぬ危険なアクションを回避することで、デバイスとユーザーの自宅を保護します。たとえば、緊急ヒーターが有効になっていると、サーモスタットはエアコンを稼働しません。

インタラクティブ API リファレンスでデータモデルを確認する。

目的の状態

Nest サービスはシステムの信頼できる状態を保存し、Works with Nest 製品は変更のサブスクライブを行います。この状態を変更すると(たとえば、サーモスタットの目標温度を変更するなど)、サービスがすべてのサブスクライバーに変更通知を push します。

この伝播には多少の遅延があり、ネットワークが信頼できない可能性があるため、あるプロダクトで観測される状態は、他のプロダクトまたはサービスで現在モニタリングされている状態ではない可能性があります。状態は、さまざまなプロダクト間でメッセージが転送されるときに、最終的に同期されます。

このドキュメント指向の公開/サブスクライブ モデルは、アプリケーションの応答をレスポンシブにします。

Nest サービスの使用

Nest サービスで REST エンドポイントにアクセスするには、製品の HTTPS を使用します。この目的で使用できるサードパーティ製クライアント ライブラリは数多くあります。

権限と認証

Google では、ユーザーのプライバシーとセキュリティを損なうことなく、デベロッパーが家を改善できる製品やサービスを開発できるようにしたいと考えています。Google のコミュニケーションはすべて安全であり、データへのアクセス権限は常にユーザーによって明示的に付与されます。詳細については、権限の概要をご覧ください。

認証は OAuth 2.0 プロトコルで処理されます。ユーザーがリクエストされた権限レベルへのアクセス提供に同意すると、Nest はリクエストを認証し、リクエスト元にアクセス トークンが付与されます。そのアクセス トークンを使用して、Nest API にアクセスし、ユーザーのストラクチャやデバイスとやり取りできます。

アクセス トークンの付与は、ユーザー、Works with Nest プロダクト、Nest 間の信頼関係を確立します。ユーザーはいつでもアクセス権を取り消すことができます。

Nest API への接続を承認する方法については、承認の概要をご覧ください。