用户和速率限制

Device Access 项目受用户、结构和速率限制的限制, 具体取决于其环境和商业产品/服务的类型。

我们希望开发者打造引人入胜的用户体验,但我们也希望 始终向用户提供 Nest 服务和设备。集成 在给定的时间段内发出大量请求可能会影响服务和 设备可用性,因此 SDM API 会应用速率限制。 速率限制会限制给定时间段内的 API 调用次数, 防止资源过度利用

各种环境的限制

所有项目都是在  沙盒  环境中开始的。沙盒是 旨在评估 SDM API 和个人使用,以及 因此会受到相应限制具有较大用户群的环境,例如   商业开发应用  具有不同的限制。

沙盒用户限制

在沙盒中,每个开发者账号在 5 个开发者账号中的用户上限为 25 位 跨所有项目。每个账号最多只能有 3 个项目。

每个结构最多只能有 5 名用户,因此将仅达到用户数上限 5 个结构全部达到满级(每个 5 位用户)后。开发者账号 (拥有该项目)不计入 结构。

反过来,如果项目有 15 位用户和 5 个结构,则额外的用户可以 只会添加到现有的 5 个结构中 。

沙盒速率限制

测试区有 3 个不同的等级。上限设置为 (除非另有说明)。

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 台设备),那么 可以在一分钟内针对这 4 台设备分别调用同一命令 5 次。

不过,如果项目有 2 位用户,每人分别对应 6 台设备,则 对于这 6 个命令,在一分钟内不得调用同一个命令 5 次。 设备。当 devices.executeCommand 项目用户的 API 级别速率限制为 10 QPM。

设备实例级别

此外,设备实例级限制是跨项目实施的, 命令 (devices.executeCommand)。这些限制 同时在 QPM 和每小时查询次数 (QPH)级别应用, getlist API 方法。

例如,假设项目 A 和项目 B 都有权访问 设备,即设备 A(也许用户授权了两个不同的商业广告 使用同一台设备的集成)。如果项目 A 向同一用户发送了 4 条命令 那么项目 B 在一分钟内只能向设备 A 发送 1 个命令 设备实例级速率限制的同一分钟。那时 从两个项目发送到设备 A 的命令都会受到限制,直到 从第一条命令开始的那一刻开始发送到设备 A。

如果下方未列出某个设备类型,则表明该设备不具有设备实例级别 速率限制

设备类型 设备实例速率限制
温控器 5 QPM 或 100 QPH
摄像头 30 QPM 或 100 QPH
DOORBELL 30 QPM 或 100 QPH

错误

系统可能会返回与本指南相关的以下错误代码:

错误消息 RPC 问题排查
速率限制。 RESOURCE_EXHAUSTED 每个开发者都有一个配额,限制了他们可以进行的调用次数。如果您进行的调用次数超过配额,则会收到“频率受限”消息。如需解决此问题,请在配额过期后重新提交该调用。

请参阅 API 错误代码参考,了解 API 错误代码的完整列表。