Device Access Les projets sont limités par utilisateur, par structure et par débit, 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 également que le service et les appareils Nest soient toujours disponibles pour l'utilisateur. Les intégrations qui effectuent un grand nombre de requêtes sur une période donnée peuvent avoir un impact sur la disponibilité du service et des appareils. C'est pourquoi l'API SDM applique des limites de débit. La limitation du débit restreint le nombre d'appels d'API sur une période donnée et empêche la surutilisation des ressources.
Limites par environnement
Tous les projets commencent dans l'environnement bac à sable . Le bac à sable est destiné à l'évaluation de l'API SDM et à un usage personnel. Les limites sont donc restreintes. Les environnements avec une base d'utilisateurs plus importante, tels que Développement commercial , ont des limites différentes.
Limites d'utilisateurs du bac à sable
Un compte de développeur dans le bac à sable est limité à 25 utilisateurs répartis sur cinq structures dans tous les projets. Un compte ne peut pas contenir plus de trois projets.
Les structures sont limitées à cinq utilisateurs chacune. La limite d'utilisateurs ne sera donc atteinte que lorsque les cinq structures seront complètes avec cinq utilisateurs chacune. Le compte de développeur (propriétaire du projet) n'est pas pris en compte dans la limite de cinq utilisateurs pour une structure.
À l'inverse, si un projet compte 15 utilisateurs répartis sur cinq structures, vous ne pouvez ajouter des utilisateurs 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 méthodes individuelles, consultez la documentation de référence de l'API Reference.
| 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 la 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 entraînerait 15 RPM pour chaque utilisateur, alors que la limite de débit au niveau de l'API devices.executeCommand pour un utilisateur d'un projet est de 10 RPM.
Niveau de l'instance d'appareil
De plus, des limites au niveau de l'instance d'appareil sont mises en œuvre pour les projets et les commandes (devices.executeCommand) afin de protéger la batterie de l'appareil. Ces limites s'appliquent aux niveaux RPM et requêtes par heure (RPH) et ne s'appliquent pas aux méthodes d'API get et list.
Supposons, par exemple, que les projets A et 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 d'atteindre la limite de débit au niveau de l'instance d'appareil. À ce stade, les commandes des deux projets vers l'appareil A sont limitées jusqu'à la fin de la minute qui a commencé par la première commande vers l'appareil A.
Si un type d'appareil ne figure pas dans la liste ci-dessous, il n'est pas soumis à des limites de débit au niveau de l'instance d'appareil.
| Type d'appareil | Limite de débit de l'instance d'appareil |
|---|---|
| THERMOSTAT | 5 RPM ou 100 RPH |
| CAMÉRA | 30 RPM ou 100 RPH |
| DOORBELL | 30 RPM ou 100 RPH |
Erreurs
Le ou les codes d'erreur suivants peuvent être renvoyés en relation avec ce guide :
| Message d'erreur | RPC | Dépannage |
|---|---|---|
| Nombre limité | RESOURCE_EXHAUSTED |
Chaque développeur dispose d'un quota limitant le nombre d'appels qu'il peut effectuer. Si vous effectuez plus d'appels que votre quota, le message "Nombre limité" s'affiche. Pour résoudre ce problème, renvoyez l'appel une fois le quota expiré. |
Pour obtenir la liste complète des codes d'erreur de l'API, consultez la documentation de référence sur les codes d'erreur de l'API.