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.