Ограничения пользователя и скорости

Device Access проекты ограничены пользователями, структурой и тарифами в зависимости от среды и типа коммерческого предложения.

Мы хотим, чтобы разработчики создавали привлекательный пользовательский опыт, но мы также хотим, чтобы сервис и устройства Nest всегда были доступны пользователю. Интеграции, которые отправляют большое количество запросов за определенный период времени, могут повлиять на доступность услуг и устройств, поэтому API SDM применяет ограничения скорости. Ограничение скорости ограничивает количество вызовов API за определенный период времени и предотвращает чрезмерное использование ресурсов.

Ограничения по среде

Все проекты начинаются в среде «песочницы» . Песочница предназначена для оценки API SDM и личного использования, поэтому ограничения соответственно ограничены. Среды с большей базой пользователей, такие как коммерческая разработка , имеют другие ограничения.

Ограничения пользователей песочницы

Учетная запись разработчика в «Песочнице» ограничена 25 пользователями в 5 структурах всех проектов. На один аккаунт установлено ограничение — 3 проекта.

Структуры ограничены 5 пользователями каждая, поэтому лимит пользователей будет достигнут только после того, как все 5 структур будут заполнены до максимума по 5 пользователей в каждой. Учетная запись разработчика (которому принадлежит проект) не учитывается при расчете лимита в 5 пользователей для структуры.

И наоборот, если в проекте 15 пользователей в 5 структурах, дополнительных пользователей можно добавить только к существующим 5 структурам, поскольку предел структуры уже достигнут.

Ограничения скорости песочницы

Песочница имеет ограничение по скорости на 3 разных уровнях. Ограничения устанавливаются в количестве запросов в минуту (QPM), если не указано иное.

уровень API

Вызовы API ограничены для каждого проекта и для каждого пользователя. Дополнительную информацию об отдельных методах см . в справочнике по API .

API-метод Ограничение скорости
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

Командный уровень

Каждая команда типажа ( devices.executeCommand ) ограничена 5 QPM на проект, на пользователя и на устройство.

Это означает, что если в проекте есть 2 пользователя с 2 устройствами у каждого (всего 4 устройства), одну и ту же команду можно вызывать 5 раз в минуту для каждого из этих 4 устройств.

Однако если в проекте есть 2 пользователя с 3 устройствами каждый (всего 6 устройств), одну и ту же команду нельзя вызывать 5 раз в минуту для каждого из этих 6 устройств. Это приведет к 15 QPM для каждого пользователя, если ограничение скорости уровня API devices.executeCommand для пользователя проекта составляет 10 QPM.

Уровень экземпляра устройства

Кроме того, ограничения уровня экземпляра устройства реализованы в проектах и ​​командах ( devices.executeCommand ) для защиты батареи устройства. Эти ограничения применяются как на уровне QPM, так и на уровне запросов в час (QPH) и не применяются к методам API get и list .

Например, предположим, что проект A и проект B имеют доступ к одному и тому же устройству, устройству A (возможно, пользователь разрешил две разные коммерческие интеграции, которые используют одно и то же устройство). Если проект A отправил 4 команды на устройство A в течение минуты, то проект B может отправить только 1 команду на устройство A за ту же минуту, прежде чем будет достигнут предел скорости на уровне экземпляра устройства. В этот момент команды из обоих проектов на устройство A ограничиваются до конца минуты, которая началась с первой команды на устройство A.

Если тип устройства не указан ниже, у него нет ограничений скорости на уровне экземпляра устройства.

Тип устройства Ограничение скорости экземпляра устройства
ТЕРМОСТАТ 5 QPM или 100 QPM
КАМЕРА 30 QPM или 100 QPM
ДВЕРНОЙ ЗВОНОК 30 QPM или 100 QPM

Ошибки

В связи с данным руководством могут быть возвращены следующие коды ошибок:

Сообщение об ошибке ПКП Поиск неисправностей
Ставка ограничена. RESOURCE_EXHAUSTED У каждого разработчика есть квота, ограничивающая количество вызовов, которые он может сделать. Если вы совершите больше вызовов, чем ваша квота, вы получите сообщение «Тариф ограничен». Чтобы это исправить, повторите вызов после истечения квоты.

Полный список кодов ошибок API см. в Справочнике кодов ошибок API.