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.