Les projetsDevice Access sont limités par l'utilisateur, la structure et les tarifs, en fonction de l'environnement et du type d'offre commerciale.
Nous souhaitons que les développeurs créent des expériences utilisateur attrayantes, mais nous voulons aussi que le service et les appareils Nest soient toujours disponibles pour l'utilisateur. Les intégrations qui envoient un grand nombre de requêtes sur une période donnée peuvent avoir un impact sur la disponibilité du service et des appareils. L'API SDM applique donc des limites de débit. La limitation du débit limite le nombre d'appels d'API pour une période donnée et empêche la surutilisation des ressources.
Limites par environnement
Tous les projets démarrent dans l'environnement Bac à sable . Le bac à sable est destiné à l'évaluation de l'API SDM et à un usage personnel. Les limites sont donc limitées en conséquence. Les environnements avec des bases d'utilisateurs plus importantes, comme le développement commercial , ont des limites différentes.
Limites des utilisateurs du bac à sable
Un compte de développeur dans le bac à sable est limité à 25 utilisateurs dans cinq structures pour tous les projets. Le nombre de projets par compte est limité à trois.
Chaque structure est limitée à cinq utilisateurs. La limite d'utilisateurs ne sera donc atteinte que lorsque les cinq structures seront remplies avec cinq utilisateurs chacune. Le compte du développeur (qui est propriétaire du projet) n'est pas comptabilisé dans la limite de cinq utilisateurs par structure.
À l'inverse, si un projet compte 15 utilisateurs répartis sur cinq structures, vous ne pouvez ajouter d'utilisateurs supplémentaires qu'aux cinq structures existantes, car la limite de structures a déjà été atteinte.
Limites de débit du bac à sable
Le bac à sable est limité à trois niveaux différents. Sauf indication contraire, les limites sont définies en requêtes par minute (RPM).
Niveau d'API
Les appels d'API sont limités par projet et par utilisateur. Pour en savoir plus sur les différentes méthodes, consultez la documentation de référence de l'API.
Méthode API | Limite de débit |
---|---|
devices.executeCommand |
10 RPM |
devices.get |
10 RPM |
devices.list |
5 RPM |
structures.get |
5 RPM |
structures.list |
5 RPM |
structures.rooms.get |
5 RPM |
structures.rooms.list |
5 RPM |
Niveau de commande
Chaque commande de caractéristique (devices.executeCommand
) est limitée à 5 RPM par projet, par utilisateur et par appareil.
Cela signifie que si un projet compte deux utilisateurs avec deux appareils chacun (quatre appareils au total), la même commande peut être appelée cinq fois par minute pour chacun de ces quatre appareils.
Toutefois, si un projet compte deux utilisateurs avec trois appareils chacun, soit six appareils au total, la même commande ne peut pas être appelée cinq fois par minute pour chacun de ces six appareils. Cela correspond à 15 QPS par utilisateur, alors que la limite de débit au niveau de l'API devices.executeCommand
pour l'utilisateur d'un projet est de 10 QPS.
Au niveau de l'instance de l'appareil
De plus, des limites au niveau de l'instance de l'appareil sont implémentées dans les projets et les commandes (devices.executeCommand
) pour protéger la batterie de l'appareil. Ces limites s'appliquent au niveau des requêtes par minute (QPM) et des requêtes par heure (QPH), et ne s'appliquent pas aux méthodes d'API get
et list
.
Par exemple, supposons que le projet A et le projet B aient tous deux accès au même appareil, l'appareil A (l'utilisateur a peut-être autorisé deux intégrations commerciales différentes qui utilisent le même appareil). Si le projet A a envoyé quatre commandes à l'appareil A en une minute, le projet B ne peut envoyer qu'une seule commande à l'appareil A au cours de cette même minute avant que la limite de débit au niveau de l'instance de l'appareil ne soit atteinte. À ce stade, les commandes des deux projets à l'appareil A sont limitées jusqu'à la fin de la minute qui a commencé avec la première commande envoyée à l'appareil A.
Si un type d'appareil n'est pas listé ci-dessous, il n'a pas de limite de débit au niveau de l'instance de l'appareil.
Type d'appareil | Limite de débit des instances d'appareils |
---|---|
THERMOSTAT | 5 QPM ou 100 QPH |
CAMÉRA | 30 RPM ou 100 RPJ |
DOORBELL | 30 RPM ou 100 RPJ |
Erreurs
Le ou les codes d'erreur suivants peuvent être renvoyés en rapport avec ce guide:
Message d'erreur | RPC | Dépannage |
---|---|---|
Taux limité. | RESOURCE_EXHAUSTED |
Chaque développeur dispose d'un quota limitant le nombre d'appels qu'il peut effectuer. Si vous dépassez votre quota d'appels, vous recevrez un message de débit limité. Pour résoudre ce problème, renvoyez l'appel une fois le quota expiré. |
Consultez la documentation de référence sur les codes d'erreur de l'API pour obtenir la liste complète des codes d'erreur de l'API.