Os projetos doDevice Access 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 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 de serviços e dispositivos. Por isso, a API SDM aplica limites de taxa. A limitação de taxa restringe o número de chamadas de API em um determinado período e evita o uso excessivo de recursos.
Limites por ambiente
Todos os projetos começam no ambiente de sandbox . O Sandbox é destinado à avaliação da API SDM e ao uso pessoal, e os limites são restritos de acordo. 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 cinco estruturas em todos os projetos. Há um limite de três projetos por conta.
As estruturas são limitadas a cinco usuários cada. Portanto, o limite de usuários só será atingido quando todas as cinco estruturas estiverem com cinco usuários cada. A conta de desenvolvedor (proprietária do projeto) não conta para o limite de cinco usuários de uma estrutura.
Por outro lado, se um projeto tiver 15 usuários em cinco estruturas, só será possível adicionar usuários às cinco estruturas atuais, já que o limite de estruturas foi atingido.
Limites de taxa do sandbox
A caixa de simulação tem limite de taxa em três 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 traço (devices.executeCommand
) é limitado a 5 QPM por projeto, por usuário e por dispositivo.
Isso significa que, se um projeto tiver dois usuários com dois dispositivos cada (total de quatro dispositivos), o mesmo comando poderá ser chamado cinco vezes por minuto para cada um desses quatro dispositivos.
No entanto, se um projeto tiver dois usuários com três dispositivos cada um, totalizando seis dispositivos, o mesmo comando não poderá ser chamado cinco vezes por minuto para cada um desses seis 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 projeto é de 10 QPM.
Nível da instância do dispositivo
Além disso, os limites no 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 quatro comandos para o Dispositivo A em um minuto, o Projeto B só poderá enviar um comando para o Dispositivo A no mesmo minuto antes que o limite de taxa no nível da instância do dispositivo seja atingido. Nesse momento, os comandos dos dois 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 no nível da instância.
Tipo de dispositivo | Limite de taxa de instância do dispositivo |
---|---|
THERMOSTAT | 5 QPM ou 100 QPH |
CÂMERA | 30 QPM ou 100 QPH |
CAMPAINHA | 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 sua cota, vai receber a mensagem "Limite de taxa atingido". 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.