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