Limity liczby kont użytkowników i częstotliwości

ProjektyDevice Access są ograniczone przez limity dotyczące użytkowników, struktury i szybkości, w zależności od środowiska i typu oferty komercyjnej.

Chcemy, aby deweloperzy tworzyli atrakcyjne aplikacje, ale zależy nam też na tym, aby usługa i urządzenia Nest były zawsze dostępne dla użytkownika. Integracje, które wysyłają dużą liczbę żądań w danym przedziale czasu, mogą wpływać na dostępność usługi i urządzenia, dlatego interfejs SDM API stosuje limity szybkości. Ograniczenie szybkości ogranicza liczbę wywołań interfejsu API w danym okresie i zapobiega nadużywaniu zasobów.

Limity według środowiska

Wszystkie projekty zaczynają się w środowisku   sandbox  . Piaskownica jest przeznaczona do oceny interfejsu SDM API i do użytku osobistego, dlatego limity są odpowiednio ograniczone. Środowiska z większą liczbą użytkowników, np.   rozwój komercyjny  , mają inne limity.

Limity użytkowników w piaskownicy

Konto dewelopera w piaskownicy jest ograniczone do 25 użytkowników w 5 strukturach we wszystkich projektach. Obowiązuje limit 3 projektów na konto.

Struktury są ograniczone do 5 użytkowników każda, więc limit użytkowników zostanie osiągnięty dopiero wtedy, gdy wszystkie 5 struktur będzie maksymalnie wykorzystanych (po 5 użytkowników każda). Konto dewelopera (które jest właścicielem projektu) nie wlicza się do limitu 5 użytkowników w ramach danej struktury.

Jeśli natomiast projekt ma 15 użytkowników w 5 strukturach, dodatkowych użytkowników można dodać tylko do tych 5 struktur, ponieważ limit struktur został już osiągnięty.

Ograniczenia szybkości w piaskownicy

Sandbox ma ograniczenie częstotliwości na 3 poziomach. O ile nie wskazano inaczej, limity są wyrażone w zapytaniach na minutę (QPM).

Poziom API

Wywołania interfejsu API są ograniczone na projekt i użytkownika. Więcej informacji o poszczególnych metodach znajdziesz w dokumentacji interfejsu API.

Metoda interfejsu API Ograniczenie liczby żądań
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

Poziom polecenia

Każde polecenie dotyczące cech (devices.executeCommand) jest ograniczone do 5 QPM na projekt, użytkownika i urządzenie.

Oznacza to, że jeśli projekt ma 2 użytkowników z 2 urządzeniami (łącznie 4 urządzenia), to samo polecenie może zostać wywołane 5 razy na minutę na każdym z tych 4 urządzeń.

Jeśli jednak projekt ma 2 użytkowników z 3 urządzeniami na osobę, czyli łącznie 6 urządzeń, tego samego polecenia nie można wywoływać 5 razy na minutę na każdym z tych 6 urządzeń. Oznacza to, że każdy użytkownik będzie mógł wysyłać 15 tys. zapytań na minutę, jeśli devices.executeCommandlimit szybkości na poziomie interfejsu API dla użytkownika projektu wynosi 10 tys. zapytań na minutę.

Poziom instancji urządzenia

Dodatkowo w ramach projektów i komend (devices.executeCommand) wdrożono limity na poziomie instancji urządzenia w celu ochrony baterii urządzenia. Te limity są stosowane zarówno w przypadku zapytań na minutę, jak i zapytań na godzinę, ale nie dotyczą metod API getlist.

Załóżmy na przykład, że projekt A i projekt B mają dostęp do tego samego urządzenia, czyli urządzenia A (być może użytkownik autoryzował 2 różne integracje komercyjne, które korzystają z tego samego urządzenia). Jeśli projekt A wysłał 4 polecenia do urządzenia A w ciągu minuty, projekt B może wysłać tylko 1 polecenie do urządzenia A w tej samej minucie, zanim zostanie osiągnięty limit szybkości na poziomie instancji urządzenia. W tym momencie polecenia z obu projektów wysyłane do urządzenia A są ograniczane do końca minuty, która rozpoczęła się od pierwszego polecenia wysłanego do urządzenia A.

Jeśli dany typ urządzenia nie jest wymieniony poniżej, oznacza to, że nie ma on limitów szybkości na poziomie instancji urządzenia.

Typ urządzenia Limit szybkości instancji urządzenia
TERMOSTAT 5 QPM lub 100 QPH
APARAT 30 QPM lub 100 QPH
DZWONEK 30 QPM lub 100 QPH

Błędy

W związku z tym przewodnikiem mogą zostać zwrócone te kody błędów:

Komunikat o błędzie RPC Rozwiązywanie problemów
Ograniczenie liczby żądań. RESOURCE_EXHAUSTED Każdy deweloper ma limit określający, ile wywołań może wykonać. Jeśli wykonasz więcej połączeń niż pozwala na to limit, otrzymasz komunikat o ograniczeniu stawki. Aby to naprawić, prześlij ponownie połączenie, gdy upłynie limit.

Pełną listę kodów błędów interfejsu API znajdziesz w przewodniku po kodach błędów interfejsu API.