Device Access В зависимости от условий и типа коммерческого предложения, проекты ограничены количеством пользователей, структурой и тарифными лимитами.
Мы хотим, чтобы разработчики создавали привлекательный пользовательский интерфейс, но также хотим, чтобы сервис и устройства Nest всегда были доступны пользователю. Интеграции, выполняющие большое количество запросов за определенный период времени, могут повлиять на доступность сервиса и устройств, поэтому API SDM применяет ограничения скорости запросов. Ограничение скорости запросов ограничивает количество вызовов API за определенный период времени и предотвращает чрезмерное использование ресурсов.
Ограничения, обусловленные окружающей средой.
Все проекты начинаются в тестовой среде (Sandbox ). Тестовая среда предназначена для оценки API SDM и личного использования, поэтому ограничения в ней соответственно скорректированы. В средах с большим количеством пользователей, таких как коммерческая разработка , действуют другие ограничения.
Ограничения на количество пользователей в песочнице
В тестовой среде (Sandbox) учетная запись разработчика ограничена 25 пользователями в 5 структурах для всех проектов. На одну учетную запись можно создать не более 3 проектов.
Каждая структура ограничена 5 пользователями, поэтому лимит будет достигнут только тогда, когда все 5 структур будут заполнены максимум 5 пользователями каждая. Учетная запись разработчика (владельца проекта) не учитывается в лимите 5 пользователей для структуры.
И наоборот, если в проекте 15 пользователей в 5 структурах, то дополнительных пользователей можно добавить только к существующим 5 структурам, поскольку лимит структур уже достигнут.
Ограничения скорости в песочнице
В песочнице действуют ограничения по количеству запросов на 3 разных уровнях. Лимиты установлены в запросах в минуту (QPM), если не указано иное.
Уровень API
Количество вызовов API ограничено для каждого проекта и каждого пользователя. Дополнительную информацию об отдельных методах см. в справочнике API .
| Метод API | Лимит скорости |
|---|---|
devices.executeCommand | 10 чеков в минуту |
devices.get | 10 чеков в минуту |
devices.list | 5 ц/мин |
structures.get | 5 ц/мин |
structures.list | 5 ц/мин |
structures.rooms.get | 5 ц/мин |
structures.rooms.list | 5 ц/мин |
Уровень командования
Каждая команда проверки характеристик ( devices.executeCommand ) ограничена 5 QPM на проект, на пользователя, на устройство.
Это значит, что если в проекте участвуют 2 пользователя, у каждого из которых по 2 устройства (всего 4 устройства), то одну и ту же команду можно вызвать 5 раз в минуту для каждого из этих 4 устройств.
Однако, если в проекте 2 пользователя, у каждого по 3 устройства, всего 6 устройств, то одна и та же команда не может быть вызвана 5 раз в минуту для каждого из этих 6 устройств. Это приведет к 15 запросам в минуту для каждого пользователя, тогда как ограничение скорости запросов на уровне API devices.executeCommand для пользователя проекта составляет 10 запросов в минуту.
уровень экземпляра устройства
Кроме того, для защиты батареи устройства в рамках проектов и команд ( devices.executeCommand ) применяются ограничения на уровне экземпляров устройств. Эти ограничения действуют как на уровне QPM (количество запросов в минуту), так и на уровне запросов в час (QPH) и не распространяются на методы API get и list .
Например, предположим, что проект A и проект B имеют доступ к одному и тому же устройству, устройству A (возможно, пользователь авторизовал две разные коммерческие интеграции, использующие одно и то же устройство). Если проект A отправил 4 команды на устройство A в течение минуты, то проект B может отправить только 1 команду на устройство A в течение той же минуты, прежде чем будет достигнут лимит скорости на уровне экземпляра устройства. В этот момент команды от обоих проектов на устройство A будут ограничены до конца минуты, начавшейся с отправки первой команды на устройство A.
Если тип устройства не указан ниже, значит, для него не установлены ограничения скорости на уровне экземпляра устройства.
| Тип устройства | Ограничение скорости экземпляров устройств |
|---|---|
| ТЕРМОСТАТ | 5 унций в минуту или 100 унций в час |
| КАМЕРА | 30 унций в минуту или 100 унций в час |
| ДВЕРНОЙ ЗВОНОК | 30 унций в минуту или 100 унций в час |
Ошибки
В связи с данным руководством могут быть возвращены следующие коды ошибок:
| Сообщение об ошибке | РПК | Поиск неисправностей |
|---|---|---|
| Ограничение по количеству запросов. | RESOURCE_EXHAUSTED | У каждого разработчика есть квота, ограничивающая количество вызовов. Если вы совершите больше вызовов, чем позволяет ваша квота, вы получите сообщение «Квота ограничена». Чтобы исправить это, повторно отправьте вызов после истечения срока действия квоты. |
Полный список кодов ошибок API см. в Справочнике кодов ошибок API.