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