Device Access Os projetos são restritos por usuário, estrutura e limites de taxa, dependendo do ambiente e do tipo de oferta comercial.
Queremos que os desenvolvedores criem experiências de usuário atraentes, mas também queremos que o serviço e os dispositivos Nest estejam sempre disponíveis para o usuário. As integrações que fazem um grande número de solicitações em um determinado período podem afetar a disponibilidade do serviço e do dispositivo. Por isso, a API SDM aplica limites de taxa. A limitação de taxa restringe o número de chamadas de API para um determinado período e evita o uso excessivo de recursos.
Limites por ambiente
Todos os projetos começam no ambiente do sandbox . O sandbox é destinado à avaliação da API SDM e ao uso pessoal, e os limites são restritos de acordo com isso. Os ambientes com bases de usuários maiores, como desenvolvimento comercial , têm limites diferentes.
Limites de usuários do sandbox
Uma conta de desenvolvedor no sandbox é limitada a 25 usuários em 5 estruturas em todos os projetos. Há um limite de 3 projetos por conta.
As estruturas são limitadas a 5 usuários cada. Portanto, o limite de usuários só será atingido quando todas as 5 estruturas estiverem no máximo com 5 usuários cada. A conta de desenvolvedor (proprietária do projeto) não é contabilizada no limite de 5 usuários para uma estrutura.
Por outro lado, se um projeto tiver 15 usuários em 5 estruturas, outros usuários só poderão ser adicionados às 5 estruturas atuais, já que o limite de estrutura já foi atingido.
Limites de taxa do sandbox
O sandbox tem limite de taxa em 3 níveis diferentes. Os limites são definidos em consultas por minuto (QPM), a menos que indicado de outra forma.
Nível da API
As chamadas de API são limitadas por projeto e por usuário. Consulte a Referência da API para mais informações sobre métodos individuais.
| Método de API | Limite de taxa |
|---|---|
devices.executeCommand |
10 QPM |
devices.get |
10 QPM |
devices.list |
5 QPM |
structures.get |
5 QPM |
structures.list |
5 QPM |
structures.rooms.get |
5 QPM |
structures.rooms.list |
5 QPM |
Nível de comando
Cada comando de trait (devices.executeCommand) é limitado a 5 QPM por projeto, por usuário e por dispositivo.
Isso significa que, se um projeto tiver 2 usuários com 2 dispositivos cada (4 dispositivos no total), o mesmo comando poderá ser chamado 5 vezes em um minuto para cada um desses 4 dispositivos.
No entanto, se um projeto tiver 2 usuários com 3 dispositivos cada para 6 dispositivos no total, o mesmo comando não poderá ser chamado 5 vezes em um minuto para cada um desses 6 dispositivos. Isso resultaria em 15 QPM para cada usuário, quando o limite de taxa de nível da API devices.executeCommand para um usuário de um projeto é de 10 QPM.
Nível da instância do dispositivo
Além disso, os limites de nível da instância do dispositivo são implementados em projetos e comandos (devices.executeCommand) para proteção da bateria do dispositivo. Esses limites são aplicados nos níveis de QPM e consultas por hora (QPH) e não se aplicam aos métodos de API get e list.
Por exemplo, suponha que o Projeto A e o Projeto B tenham acesso ao mesmo dispositivo, o Dispositivo A (talvez o usuário tenha autorizado duas integrações comerciais diferentes que usam o mesmo dispositivo). Se o Projeto A tiver enviado 4 comandos para o Dispositivo A em um minuto, o Projeto B só poderá enviar 1 comando para o Dispositivo A no mesmo minuto antes que o limite de taxa de nível da instância do dispositivo seja atingido. Nesse ponto, os comandos de ambos os projetos para o Dispositivo A são limitados até o final do minuto que começou com o primeiro comando para o Dispositivo A.
Se um tipo de dispositivo não estiver listado abaixo, ele não terá limites de taxa de nível de instância do dispositivo.
| Tipo de dispositivo | Limite de taxa da instância do dispositivo |
|---|---|
| TERMOSTATO | 5 QPM ou 100 QPH |
| CÂMERA | 30 QPM ou 100 QPH |
| DOORBELL | 30 QPM ou 100 QPH |
Erros
Os seguintes códigos de erro podem ser retornados em relação a este guia:
| Mensagem de erro | RPC | Solução de problemas |
|---|---|---|
| Taxa limitada. | RESOURCE_EXHAUSTED |
Cada desenvolvedor tem uma cota que limita o número de chamadas que podem ser feitas. Se você fizer mais chamadas do que a cota, vai receber a mensagem "Taxa limitada". Para corrigir isso, reenvie a chamada quando a cota expirar. |
Consulte a Referência de códigos de erro da API para conferir a lista completa de códigos de erro da API.