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

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

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

Ограничения по окружающей среде

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

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

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

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

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

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

В «песочнице» установлено три уровня ограничений по скорости. Ограничения устанавливаются на основе количества запросов в минуту (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 устройств.

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

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

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

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

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

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

Ошибки

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

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

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