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.