Device Access sono limitati dai limiti relativi a utente, struttura e frequenza, a seconda dell'ambiente e del tipo di offerta commerciale.
Vogliamo che gli sviluppatori creino esperienze utente convincenti, ma vogliamo anche che il servizio e i dispositivi Nest siano sempre disponibili per l'utente. Le integrazioni che effettuano un numero elevato di richieste in un determinato periodo di tempo possono influire sulla disponibilità del servizio e del dispositivo, pertanto l'API SDM applica dei limiti di frequenza. La limitazione di frequenza limita il numero di chiamate API per un determinato periodo di tempo e impedisce il sovrautilizzo delle risorse.
Limiti per ambiente
Tutti i progetti iniziano nell'ambiente Sandbox . La sandbox è destinata alla valutazione dell'API SDM e all'uso personale e i limiti sono limitati di conseguenza. Gli ambienti con basi utenti più ampie, ad esempio lo sviluppo commerciale , hanno limiti diversi.
Limiti utente della sandbox
Un account sviluppatore nella sandbox è limitato a 25 utenti in 5 strutture tra tutti i progetti. Esiste un limite di 3 progetti per account.
Le strutture sono limitate a 5 utenti ciascuna, quindi il limite di utenti verrà raggiunto solo una volta che verrà raggiunto il limite massimo di tutte e 5 le strutture con 5 utenti ciascuna. L'account sviluppatore (a cui appartiene il progetto) non viene conteggiato ai fini del limite di 5 utenti per una struttura.
Al contrario, se un progetto ha 15 utenti su 5 strutture, è possibile aggiungere ulteriori utenti solo alle 5 strutture esistenti, poiché il limite della struttura è già stato raggiunto.
Limiti di frequenza della sandbox
La sandbox è soggetta a un limite di frequenza a 3 diversi livelli. Se non diversamente specificato, i limiti sono impostati per le query al minuto (QPM).
Livello API
Le chiamate API sono limitate per progetto e per utente. Consulta il riferimento API per ulteriori informazioni sui singoli metodi.
Metodo API | Limite di frequenza |
---|---|
devices.executeCommand |
10 q/m |
devices.get |
10 q/m |
devices.list |
5 q/m |
structures.get |
5 q/m |
structures.list |
5 q/m |
structures.rooms.get |
5 q/m |
structures.rooms.list |
5 q/m |
Livello di comando
Ogni comando dei trait (devices.executeCommand
) è limitato a 5 QPM per progetto, per utente e per dispositivo.
Ciò significa che se un progetto ha 2 utenti con 2 dispositivi ciascuno (4 dispositivi in totale), lo stesso comando può essere chiamato 5 volte al minuto per ciascuno di questi 4 dispositivi.
Tuttavia, se un progetto ha 2 utenti con 3 dispositivi ciascuno per 6 dispositivi in totale, lo stesso comando non può essere chiamato 5 volte al minuto per ciascuno di quei sei dispositivi. Ciò si traduce in 15 QPM per ogni utente, quando il limite di frequenza del livello API devices.executeCommand
per l'utente di un progetto è 10 QPM.
Livello istanza dispositivo
Inoltre, i limiti del livello di istanza del dispositivo sono implementati nei progetti e nei comandi (devices.executeCommand
) per proteggere la batteria del dispositivo. Questi limiti vengono applicati sia a livello di QPM sia a livello di query all'ora (QPH) e non si applicano ai metodi API get
e list
.
Ad esempio, supponiamo che il progetto A e il progetto B abbiano entrambi accesso allo stesso dispositivo, il dispositivo A (forse l'utente ha autorizzato due diverse integrazioni commerciali che utilizzano lo stesso dispositivo). Se il progetto A ha inviato quattro comandi al dispositivo A entro un minuto, il progetto B può inviare un solo comando al dispositivo A nello stesso minuto prima che venga raggiunto il limite di frequenza del livello di istanza del dispositivo. A quel punto, i comandi di entrambi i progetti per il Dispositivo A vengono limitati fino alla fine del minuto iniziato con il primo comando al Dispositivo A.
Se un tipo di dispositivo non è elencato di seguito, non ha limiti di frequenza a livello di istanza dispositivo.
Tipo di dispositivo | Limite di frequenza istanze dispositivo |
---|---|
TERMOSTATO | 5 QPM o 100 QPH |
FOTOCAMERA | 30 q/m o 100 q/h |
CAMPANELLO | 30 q/m o 100 q/h |
Errori
In relazione a questa guida, è possibile che vengano restituiti i seguenti codici di errore:
Messaggio di errore | RPC | Risolvere i problemi |
---|---|---|
Tariffa limitata. | RESOURCE_EXHAUSTED |
Ogni sviluppatore ha una quota che limita il numero di chiamate che può effettuare. Se effettui più chiamate rispetto alla tua quota, riceverai il messaggio Limitazione di frequenza. Per risolvere il problema, invia nuovamente la chiamata una volta scaduta la quota. |
Consulta la pagina Riferimento sui codici di errore delle API per l'elenco completo dei codici di errore delle API.