Nutzer- und Ratenlimits

Device Access Projekte unterliegen je nach Umgebung und Art des kommerziellen Angebots durch Nutzer, Strukturen und Ratenlimits.

Wir möchten, dass Entwickler überzeugende Nutzererfahrungen bieten. Gleichzeitig möchten wir aber auch, dass der Nest-Dienst und die Nest-Geräte für die Nutzer immer verfügbar sind. Integrationen, die in einem bestimmten Zeitraum eine große Anzahl von Anfragen stellen, können sich auf die Dienst- und Geräteverfügbarkeit auswirken. Daher wendet die SDM API Ratenbegrenzungen an. Die Ratenbegrenzung schränkt die Anzahl der API-Aufrufe für einen bestimmten Zeitraum ein und verhindert eine übermäßige Auslastung von Ressourcen.

Limits nach Umgebung

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

Sandbox-Nutzerlimits

Ein Entwicklerkonto in der Sandbox ist auf 25 Nutzer in 5 Strukturen in allen Projekten beschränkt. Pro Konto sind maximal drei Projekte zulässig.

Gebäude sind auf jeweils fünf Nutzer beschränkt. Die Nutzerbeschränkung wird also erst erreicht, wenn alle fünf Gebäude maximal fünf Nutzer enthalten. Das Entwicklerkonto, das Inhaber des Projekts ist, wird nicht auf das Limit von 5 Nutzern für eine Struktur angerechnet.

Wenn dagegen ein Projekt 15 Nutzer über 5 Strukturen hat, können zusätzliche Nutzer nur zu den vorhandenen 5 Strukturen hinzugefügt werden, da das Strukturlimit bereits erreicht wurde.

Sandbox-Ratenlimits

Für die Sandbox gilt ein Ratenlimit für 3 verschiedene Stufen. Limits werden bei Abfragen pro Minute (QPM) festgelegt, sofern nicht anders angegeben.

API-Ebene

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

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, Nutzer und Gerät beschränkt.

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

Wenn ein Projekt jedoch 2 Nutzer mit jeweils 3 Geräten für insgesamt 6 Geräte hat, kann derselbe Befehl für jedes dieser sechs Geräte nicht pro Minute fünfmal pro Minute aufgerufen werden. Dies würde zu 15 Abfragen pro Minute für jeden Nutzer führen, wenn das API-Level-Ratenlimit von devices.executeCommand für den Nutzer eines Projekts 10 Abfragen pro Minute beträgt.

Geräteinstanzebene

Außerdem werden zum Schutz des Geräteakkus projektübergreifend und in Befehlen (devices.executeCommand) Limits auf Geräteinstanzebene implementiert. Diese Limits gelten sowohl für die Abfragen pro Stunde als auch für die Abfragen pro Stunde und nicht für die API-Methoden get und list.

Angenommen, Projekt A und Projekt B haben beide Zugriff auf dasselbe Gerät, Gerät A. Möglicherweise hat der Nutzer zwei verschiedene kommerzielle Integrationen autorisiert, die dasselbe Gerät verwenden. Wenn Projekt A innerhalb einer Minute vier Befehle an Gerät A gesendet hat, kann Projekt B in derselben Minute nur einen Befehl an Gerät A senden, bevor die Ratenbegrenzung auf Geräteinstanzebene erreicht ist. Dann werden Befehle von beiden Projekten an Gerät A bis zum Ende der Minute gedrosselt, die mit dem ersten Befehl an Gerät A begonnen hat.

Wenn ein Gerätetyp unten nicht aufgeführt ist, gibt es keine Ratenbegrenzungen auf Geräteinstanzebene.

Gerätetyp Ratenlimit für Geräteinstanzen
Thermostat 5 QPM oder 100 QPH
KAMERA 30 QPM oder 100 QPH
TÜRKLINGEL 30 QPM oder 100 QPH

Fehler

Die folgenden Fehlercodes können im Zusammenhang mit diesem Leitfaden zurückgegeben werden:

Fehlermeldung RPC Fehlerbehebung
Beschränkung erreicht. RESOURCE_EXHAUSTED Jeder Entwickler hat ein Kontingent, das die Anzahl der Aufrufe begrenzt. Wenn Sie mehr Anrufe tätigen, als Ihr Kontingent überschreitet, erhalten Sie die Nachricht „Rate limitiert“. Um dieses Problem zu beheben, reichen Sie den Aufruf noch einmal ein, sobald das Kontingent abgelaufen ist.

Eine vollständige Liste der API-Fehlercodes finden Sie in der API-Fehlercode-Referenz.