Nutzer- und Ratenlimits

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

Wir möchten, dass Entwickler überzeugende Nutzererlebnisse schaffen, aber auch, dass der Nest-Dienst und die Nest-Geräte für den Nutzer immer verfügbar sind. Integrationen, die in einem bestimmten Zeitraum eine große Anzahl von Anfragen stellen, können sich auf die Verfügbarkeit von Diensten und Geräten auswirken. Daher gelten für die SDM API Ratenbegrenzungen. Durch die Ratenbegrenzung wird die Anzahl der API-Aufrufe für einen bestimmten Zeitraum eingeschränkt und eine Überbeanspruchung von Ressourcen verhindert.

Limits nach Umgebung

Alle Projekte beginnen in der   Sandbox  -Umgebung. Die Sandbox ist für die Evaluierung der SDM API und für die private Nutzung vorgesehen. Die Limits sind entsprechend eingeschränkt. Umgebungen mit einer größeren Nutzerbasis, z. B.   Commercial Development  , haben andere Limits.

Sandbox-Nutzerlimits

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

Strukturen sind auf jeweils 5 Nutzer beschränkt. Das Nutzerlimit wird also erst erreicht, wenn alle 5 Strukturen mit jeweils 5 Nutzern belegt sind. Das Entwicklerkonto (dem das Projekt gehört) wird nicht auf das Limit von fünf Nutzern für ein Gebäude angerechnet.

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

Ratenlimits für die Sandbox

Für die Sandbox gelten Ratenbegrenzungen auf drei verschiedenen Ebenen. Sofern nicht anders angegeben, werden Limits in Abfragen pro Minute (Queries per minute, QPM) festgelegt.

API-Ebene

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

API-Methode Ratenlimit
devices.executeCommand 10 QPM
devices.get 10 QPM
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 QPM pro Projekt, pro Nutzer und pro Gerät begrenzt.

Wenn ein Projekt also zwei Nutzer mit jeweils zwei Geräten (insgesamt vier Geräte) hat, kann derselbe Befehl für jedes dieser vier Geräte fünfmal pro Minute aufgerufen werden.

Wenn ein Projekt jedoch zwei Nutzer mit jeweils drei Geräten hat, also insgesamt sechs Geräte, kann derselbe Befehl nicht fünfmal pro Minute für jedes dieser sechs Geräte aufgerufen werden. Das würde zu 15 QPM für jeden Nutzer führen, wenn das devices.executeCommand-Ratenlimit auf API-Ebene für einen Nutzer des Projekts 10 QPM beträgt.

Geräteinstanzebene

Außerdem werden geräteinstanzbezogene Limits für Projekte und Befehle (devices.executeCommand) zum Schutz des Geräteakkus implementiert. Diese Limits gelten sowohl für QPM als auch für QPH und nicht für die API-Methoden get und list.

Angenommen, sowohl Projekt A als auch Projekt B haben Zugriff auf dasselbe Gerät, Gerät A (vielleicht 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 das Ratenlimit auf Geräteinstanzebene erreicht wird. Ab diesem Zeitpunkt werden Befehle von beiden Projekten an Gerät A bis zum Ende der Minute, die mit dem ersten Befehl an Gerät A begann, gedrosselt.

Wenn ein Gerätetyp unten nicht aufgeführt ist, gelten für ihn keine Ratenbegrenzungen auf Geräteinstanzebene.

Gerätetyp Ratenbegrenzung für Geräteinstanzen
THERMOSTAT 5 Abfragen pro Minute oder 100 Abfragen pro Stunde
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
Limit erreicht. RESOURCE_EXHAUSTED Für jeden Entwickler gilt ein Kontingent, das die Anzahl der Aufrufe begrenzt, die er ausführen kann. Wenn Sie mehr Anrufe tätigen, als in Ihrem Kontingent enthalten sind, erhalten Sie die Meldung „Ratenbegrenzung“. Um dieses Problem zu beheben, senden Sie den Aufruf noch einmal, wenn das Kontingent abgelaufen ist.

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