Device Access projekty są ograniczone przez limity dotyczące użytkowników, struktury i częstotliwości w zależności od środowiska oraz typu oferty handlowej.
Chcemy, by deweloperzy mogli zadbać o wygodę użytkowników, ale jednocześnie dbamy o to, by usługa i urządzenia Nest były zawsze dostępne dla użytkowników. Integracje, które wykonują dużą liczbę żądań w danym okresie, mogą wpływać na dostępność usług i urządzeń, dlatego interfejs SDM API stosuje limity liczby żądań. Ograniczenie liczby żądań ogranicza liczbę wywołań interfejsu API w danym okresie i zapobiega nadmiernemu wykorzystywaniu zasobów.
Limity według środowiska
Wszystkie projekty rozpoczynają się w środowisku Piaskownica . Piaskownica służy do oceny interfejsu SDM API i użytkowania osobistego, a limity są odpowiednio ograniczone. W przypadku środowisk o większej liczbie użytkowników, np. komercyjnego rozwoju , obowiązują inne limity.
Limity użytkownikó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.
Każdy z nich może mieć maksymalnie 5 użytkowników, więc limit użytkowników zostanie osiągnięty dopiero wtedy, gdy zostanie osiągnięty limit 5 użytkowników we wszystkich 5 strukturach. Konto dewelopera (do którego należy projekt) nie wliczają się do limitu 5 użytkowników struktury.
Jeśli natomiast projekt obejmuje 15 użytkowników w 5 strukturach, kolejnych użytkowników można dodawać tylko do istniejących 5 struktur, ponieważ limit tych struktur został już osiągnięty.
Limity liczby żądań w trybie piaskownicy
Liczba wyświetleń w piaskownicy jest ograniczona na 3 różnych poziomach. O ile nie zaznaczono inaczej, limity są ustawiane na liczbę zapytań na minutę (QPM).
Poziom API
Wywołania interfejsu API przez użytkownika są ograniczone w ramach projektu. Więcej informacji o poszczególnych metodach znajdziesz w dokumentacji 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 cechy (devices.executeCommand
) jest ograniczone do 5 QPM na projekt na użytkownika na urządzenie.
Oznacza to, że jeśli w projekcie jest 2 użytkowników mających 2 urządzenia (każdy z nich jest łącznie 4 urządzeniami), to samo polecenie można wywołać 5 razy w ciągu minuty dla każdego z tych 4 urządzeń.
Jeśli jednak w projekcie jest 2 użytkowników, na których każde jest 3 urządzenia, to samo polecenie nie może zostać wywołane 5 razy w ciągu minuty na każdym z tych 6 urządzeń. Efektem jest 15 QPM na każdego użytkownika, gdy limit częstotliwości żądań na poziomie interfejsu API devices.executeCommand
w przypadku użytkownika projektu wynosi 10 QPM.
Poziom instancji urządzenia
Dodatkowo limity na poziomie instancji urządzenia są wdrażane w różnych projektach i poleceniach (devices.executeCommand
), aby zapewnić ochronę baterii urządzenia. Te limity obowiązują zarówno na poziomie QPM, jak i na poziomie zapytań na godzinę (QPH) i nie mają zastosowania do metod interfejsu API get
ani list
.
Załóżmy na przykład, że Projekt A i Projekt B mają dostęp do tego samego urządzenia – urządzenia A (być może użytkownik autoryzował 2 różne integracje komercyjne, które korzystają z tego samego urządzenia). Jeśli w ciągu minuty do urządzenia A zostały wysłane 4 polecenia z projektu A, wtedy 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. Od tego momentu polecenia z obu projektów do urządzenia A są ograniczane do końca minuty, która rozpoczęła się od pierwszego polecenia dla urządzenia A.
Jeśli typu urządzenia nie ma na liście poniżej, oznacza to, że nie ma ograniczeń szybkości na poziomie instancji urządzenia.
Typ urządzenia | Limit liczby 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ą wyświetlić się takie kody błędów:
Komunikat o błędzie | RPC | Rozwiązywanie problemów |
---|---|---|
Cena jest ograniczona. | RESOURCE_EXHAUSTED |
Każdy deweloper ma ustalony limit wywołań, które może wykonać. Jeśli wykonasz więcej połączeń niż wynosi limit, otrzymasz komunikat o ograniczonej liczbie połączeń. Aby rozwiązać ten problem, prześlij wywołanie ponownie po wygaśnięciu limitu. |
Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji błędów interfejsu API.