Device Access 프로젝트는 환경과 상업용 제품 유형에 따라 사용자, 구조, 비율 제한에 의해 제한됩니다.
개발자가 매력적인 사용자 환경을 만들 수 있도록 지원하는 동시에 Nest 서비스와 기기가 항상 사용자에게 제공되도록 하는 것이 목표입니다. 특정 기간에 많은 요청을 하는 통합은 서비스 및 기기 가용성에 영향을 줄 수 있으므로 SDM API는 비율 제한을 적용합니다. 요청 비율 제한은 특정 기간 동안의 API 호출 수를 제한하고 리소스의 과도한 사용을 방지합니다.
환경별 한도
모든 프로젝트는 샌드박스 환경에서 시작됩니다. 샌드박스는 SDM API 평가 및 개인용으로 설계되었으며 이에 따라 제한이 적용됩니다. 상업용 개발 과 같이 사용자 기반이 큰 환경에는 다른 한도가 적용됩니다.
샌드박스 사용자 한도
샌드박스의 개발자 계정은 모든 프로젝트의 5개 구조에 걸쳐 25명의 사용자로 제한됩니다. 계정당 프로젝트는 3개로 제한됩니다.
구조는 각각 5명의 사용자로 제한되므로 5개의 구조가 모두 각각 5명의 사용자로 채워져야 사용자 한도에 도달합니다. 프로젝트를 소유한 개발자 계정은 구조의 5명 사용자 한도에 포함되지 않습니다.
반대로 프로젝트에 5개 이상의 집에 15명의 사용자가 있는 경우 집 한도에 도달했으므로 기존 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
)는 프로젝트, 사용자, 기기당 QPM이 5개로 제한됩니다.
즉, 프로젝트에 기기가 2개씩 있는 사용자 2명 (총 기기 4개)이 있는 경우 해당 4개 기기 각각에 대해 동일한 명령어를 1분 동안 5번 호출할 수 있습니다.
하지만 프로젝트에 기기가 각각 3개인 사용자가 2명 있어 총 6개의 기기가 있는 경우, 해당 6개 기기 각각에 대해 동일한 명령어를 1분 동안 5번 호출할 수 없습니다. 프로젝트의 사용자 devices.executeCommand
API 수준 비율 제한이 10QPM인 경우 각 사용자의 QPM은 15가 됩니다.
기기 인스턴스 수준
또한 기기 배터리 보호를 위해 프로젝트와 명령어 (devices.executeCommand
) 전반에 기기 인스턴스 수준 제한이 구현됩니다. 이러한 한도는 QPM 및 시간당 쿼리 수 (QPH) 수준 모두에 적용되며 get
및 list
API 메서드에는 적용되지 않습니다.
예를 들어 프로젝트 A와 프로젝트 B가 모두 동일한 기기인 기기 A에 액세스할 수 있다고 가정해 보겠습니다 (사용자가 동일한 기기를 사용하는 두 개의 서로 다른 상업용 통합을 승인했을 수 있음). 프로젝트 A가 1분 이내에 기기 A에 4개의 명령어를 전송한 경우 기기 인스턴스 수준 비율 제한에 도달하기 전에 프로젝트 B는 동일한 1분 동안 기기 A에 1개의 명령어만 전송할 수 있습니다. 이 시점부터 프로젝트에서 기기 A로 전송되는 명령어가 기기 A로 전송된 첫 번째 명령어로 시작된 분이 끝날 때까지 제한됩니다.
아래에 나열되지 않은 기기 유형에는 기기 인스턴스 수준 비율 제한이 없습니다.
기기 유형 | 기기 인스턴스 비율 제한 |
---|---|
THERMOSTAT | 5 QPM 또는 100 QPH |
카메라 | 30QPM 또는 100QPH |
초인종 | 30QPM 또는 100QPH |
오류
이 가이드와 관련하여 다음 오류 코드가 반환될 수 있습니다.
오류 메시지 | RPC | 문제 해결 |
---|---|---|
한도에 도달했습니다. | RESOURCE_EXHAUSTED |
각 개발자에게는 호출할 수 있는 횟수를 제한하는 할당량이 있습니다. 할당량보다 많은 호출을 하면 비율 제한 메시지가 표시됩니다. 이 문제를 해결하려면 할당량이 만료된 후 호출을 다시 제출하세요. |
전체 API 오류 코드 목록은 API 오류 코드 참조를 확인하세요.