Nutzer- und Ratenlimits

Device Access Projekte sind durch Nutzer-, Struktur- und Ratenbegrenzungen eingeschränkt. je nach Umgebung und Art des kommerziellen Angebots.

Wir möchten, dass Entwickler überzeugende Nutzererfahrungen bieten. Nest-Dienste und -Geräte müssen für den Nutzer immer verfügbar sein. Integrationen, die kann das Senden einer großen Anzahl von Anfragen in einem bestimmten Zeitraum den Dienst beeinträchtigen Geräteverfügbarkeit, sodass die SDM API Ratenbegrenzungen anwendet. Mit der Ratenbegrenzung wird die Anzahl der API-Aufrufe für einen bestimmten Zeitraum eingeschränkt und um eine Überlastung von Ressourcen zu verhindern.

Limits nach Umgebung

Alle Projekte beginnen in der   Sandbox  -Umgebung. Die Sandbox ist die für die Bewertung der SDM API und den persönlichen Gebrauch bestimmt sind und Limits entsprechend eingeschränkt. Umgebungen mit einer größeren Nutzerbasis, z. B.   Kommerzielle Entwicklung  , haben unterschiedliche Beschränkungen.

Sandbox-Nutzerlimits

Ein Entwicklerkonto in der Sandbox ist auf 25 Nutzer in fünf projektübergreifend zu strukturieren. Pro Konto sind maximal 3 Projekte möglich.

Strukturen sind auf jeweils 5 Nutzer beschränkt, sodass die Nutzerbeschränkung nur erreicht wird sobald alle 5 Strukturen jeweils 5 Nutzer haben. Entwicklerkonto dem Projekt gehört, wird nicht auf das Limit von 5 Nutzern für eine Struktur.

Wenn ein Projekt dagegen 15 Nutzende in 5 Strukturen hat, können weitere Nutzende nur zu den bestehenden 5 Gebäuden hinzugefügt werden, bereits erreicht wurden.

Sandbox-Ratenlimits

Die Ratenbegrenzung für die Sandbox wird auf drei verschiedenen Stufen festgelegt. Limits sind festgelegt auf Abfragen pro Minute (Queries per minute, QPM), sofern nicht anders angegeben.

API-Ebene

API-Aufrufe sind pro Projekt und Nutzer begrenzt. Weitere Informationen finden Sie in der API weitere Informationen zu einzelnen .

API-Methode Ratenbegrenzung
devices.executeCommand 10 Abfragen pro Minute
devices.get 10 Abfragen pro Minute
devices.list 5 Abfragen pro Minute
structures.get 5 Abfragen pro Minute
structures.list 5 Abfragen pro Minute
structures.rooms.get 5 Abfragen pro Minute
structures.rooms.list 5 Abfragen pro Minute

Befehlsebene

Jeder Trait-Befehl (devices.executeCommand) ist auf 5 Abfragen pro Minute pro Projekt beschränkt. pro Nutzer und Gerät.

Das heißt, wenn ein Projekt 2 Nutzer mit jeweils 2 Geräten (insgesamt 4 Geräte) hat, kann derselbe Befehl fünfmal pro Minute für jedes dieser vier Geräte aufgerufen werden.

Wenn ein Projekt jedoch 2 Nutzer mit jeweils 3 Geräten für 6 Geräte insgesamt hat, Derselbe Befehl kann nicht fünfmal pro Minute für jede dieser sechs Geräte. Dies würde zu 15 Abfragen pro Minute für jeden Nutzer führen, wenn der devices.executeCommand Die Ratenbegrenzung für das API-Level für einen Projektnutzer liegt bei 10 Abfragen pro Minute.

Geräteinstanzebene

Darüber hinaus werden Limits auf Geräteinstanzebene projekt- und (devices.executeCommand) für den Akkuschutz des Geräts. Diese Limits werden sowohl auf QPM als auch auf QPH-Ebene (Abfragen pro Stunde) angewendet und gelten nicht den API-Methoden get und list hinzu.

Angenommen, Projekt A und Projekt B haben Zugriff auf dieselben Gerät A (möglicherweise hat der Nutzer zwei verschiedene kommerzielle Integrationen, die dasselbe Gerät verwenden). Wenn Projekt A vier Befehle an Gerät A kann dann innerhalb einer Minute nur einen Befehl an Gerät A senden. Minute, bevor die Ratenbegrenzung auf Geräteinstanzebene erreicht wird. Dabei werden Befehle von beiden Projekten an Gerät A bis zum Ende des die mit dem ersten Befehl an Gerät A begonnen hat.

Gerätetyp, der unten nicht aufgeführt ist, hat keine Geräteinstanzebene Ratenbegrenzungen.

Gerätetyp Ratenlimit für Geräteinstanzen
Thermostat 5 Abfragen pro Minute oder 100 Abfragen pro Stunde
KAMERA 30 Abfragen pro Minute oder 100 Abfragen pro Stunde
DOORBELL 30 Abfragen pro Minute oder 100 Abfragen pro Stunde

Fehler

In Bezug auf diese Anleitung können folgende Fehlercodes zurückgegeben werden:

Fehlermeldung RPC Fehlerbehebung
Ratenbegrenzung. RESOURCE_EXHAUSTED Jeder Entwickler hat ein Kontingent für die Anzahl der Aufrufe, die er tätigen kann. Wenn mehr Anrufe Ihr Kontingent überschreiten, erhalten Sie die Nachricht „Ratenbegrenzung“. Um dieses Problem zu beheben, reichen Sie den Aufruf noch einmal ein, sobald das Kontingent abgelaufen ist.

Siehe API-Fehlercode-Referenz für die vollständige Liste der API-Fehlercodes.