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