Limites de usuários e taxas

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.