Device Access プロジェクトは、環境と商用サービスの種類に応じて、ユーザー、構造、レート制限によって制限されます。
Google はデベロッパーに魅力的なユーザー エクスペリエンスを提供したいと考えていますが、Nest サービスとデバイスを常にユーザーが利用できるようにすることも求められています。一定期間内に多数のリクエストを実行する統合は、サービスとデバイスの可用性に影響する可能性があるため、SDM API はレート制限を適用します。レート制限により、一定期間の API 呼び出しの数を制限し、リソースの過剰使用を防ぎます。
環境別の上限
すべてのプロジェクトは サンドボックス 環境で開始されます。サンドボックスは SDM API の評価と個人使用を目的としており、上限はそれに応じて制限されています。 商用開発 のようにユーザーベースが大きい環境では、制限が異なります。
サンドボックス ユーザーの上限
サンドボックスのデベロッパー アカウントは、すべてのプロジェクトの 5 つのストラクチャで 25 ユーザーに制限されています。アカウントあたりのプロジェクト数の上限は 3 個です。
ストラクチャのユーザー数の上限は 5 人であるため、ユーザー数の上限に達するのは、ストラクチャの 5 つすべてで各ユーザー数が 5 人に達してからのみです。プロジェクトを所有しているデベロッパー アカウントは、ストラクチャのユーザー数の上限 5 人にはカウントされません。
逆に、プロジェクトに 5 つのストラクチャを超える 15 人のユーザーがいる場合は、すでにストラクチャの上限に達しているため、既存の 5 つのストラクチャにのみユーザーを追加できます。
サンドボックスのレート制限
サンドボックスのレートには 3 つのレベルがあります。特に明記されていない限り、上限は 1 分あたりのクエリ数(QPM)に設定されています。
API レベル
API 呼び出しは、プロジェクトごと、ユーザーごとに制限されています。個々のメソッドの詳細については、API リファレンスをご覧ください。
API メソッド | レート制限 |
---|---|
devices.executeCommand |
10 QPM |
devices.get |
10 QPM |
devices.list |
5 QPM |
structures.get |
5 QPM |
structures.list |
5 QPM |
structures.rooms.get |
5 QPM |
structures.rooms.list |
5 QPM |
コマンドレベル
各トレイト コマンド(devices.executeCommand
)は、プロジェクト、ユーザー、デバイスごとに 5 QPM に制限されます。
つまり、プロジェクトに 2 人のユーザーがそれぞれ 2 台のデバイス(合計 4 台のデバイス)を割り当てた場合、その 4 台のデバイスのそれぞれに対して 1 分間に同じコマンドを 5 回呼び出すことができます。
ただし、1 つのプロジェクトに 2 人のユーザーが 3 台のデバイスを持ち、それぞれ 6 台のデバイスを用意している場合、同じコマンドを 6 台のデバイスそれぞれに対して 1 分間に 5 回呼び出すことはできません。つまり、プロジェクトのユーザーの devices.executeCommand
API レベルのレート制限が 10 QPM であれば、ユーザーごとに 15 QPM になります。
デバイスのインスタンス レベル
また、デバイスのバッテリー保護のために、複数のプロジェクトとコマンド(devices.executeCommand
)にデバイス インスタンス レベルの上限が実装されています。これらの上限は QPM と 1 時間あたりのクエリ数(QPH)の両方のレベルで適用され、get
API メソッドと list
API メソッドには適用されません。
たとえば、プロジェクト A とプロジェクト B が両方とも同じデバイスであるデバイス A にアクセスできるとします(ユーザーが、同じデバイスを使用する 2 つの異なる商用統合を承認している場合があります)。プロジェクト A が 1 分以内にデバイス A に 4 つのコマンドを送信した場合、デバイス インスタンス レベルのレート制限に達する前の同じ 1 分間に、プロジェクト B からデバイス A に 1 つのコマンドしか送信できません。その時点で、両方のプロジェクトからデバイス A へのコマンドは、デバイス A への最初のコマンドで開始された 1 分が終了するまでスロットリングされます。
以下に記載されていないデバイスタイプには、デバイス インスタンス レベルのレート制限はありません。
デバイスの種類 | デバイス インスタンスのレート制限 |
---|---|
サーモスタット | 5 QPM または 100 QPH |
カメラ | 30 QPM または 100 QPH |
ドアホン | 30 QPM または 100 QPH |
エラー
このガイドに関連して、次のエラーコードが返されることがあります。
エラー メッセージ | RPC | トラブルシューティング |
---|---|---|
レート制限があります。 | RESOURCE_EXHAUSTED |
各デベロッパーには、実行できる呼び出し回数を制限する割り当てがあります。割り当てよりも多くの呼び出しを行うと、レート制限メッセージが表示されます。この問題を解決するには、割り当てが期限切れになったときに呼び出しを再送信してください。 |
API エラーコードの完全なリストについては、API エラーコード リファレンスをご覧ください。