Device Access 프로젝트는 상용 제품의 환경과 유형에 따라 사용자, 구조, 비율 제한으로 제한됩니다.
Google은 개발자가 매력적인 사용자 환경을 만들 수 있도록 지원하고자 하지만, 동시에 사용자가 언제든지 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
)는 프로젝트당, 사용자당, 기기당 5QPM으로 제한됩니다.
즉, 프로젝트에 기기 2대씩을 사용하는 사용자 2명이 있다면 (총 4대의 기기) 동일한 명령어를 4대의 기기 각각에 대해 1분에 5번 호출할 수 있습니다.
하지만 프로젝트에 기기 3대씩을 보유한 사용자가 2명 있어 총 6대의 기기가 있는 경우, 동일한 명령어를 6대의 기기 각각에 대해 분당 5번 호출할 수는 없습니다. 이에 따라 프로젝트 사용자의 devices.executeCommand
API 수준 비율 한도가 10QPM인 경우 각 사용자의 QPM은 15QPM입니다.
기기 인스턴스 수준
또한 기기 배터리 보호를 위해 프로젝트와 명령어 (devices.executeCommand
) 전반에서 기기 인스턴스 수준 제한이 구현됩니다. 이 한도는 QPM 및 시간당 쿼리 (QPH) 수준 모두에 적용되며 get
및 list
API 메서드에는 적용되지 않습니다.
예를 들어 프로젝트 A와 프로젝트 B가 모두 동일한 기기인 기기 A에 액세스할 수 있다고 가정해 보겠습니다 (사용자가 동일한 기기를 사용하는 두 가지 상용 통합을 승인했을 수 있음). 프로젝트 A가 1분 내에 기기 A에 명령어 4개를 전송한 경우 프로젝트 B는 기기 인스턴스 수준 비율 제한에 도달하기 전까지 1분 이내에 기기 A에 명령어 1개만 전송할 수 있습니다. 이 시점에서 두 프로젝트에서 기기 A로 전송되는 명령어는 기기 A에 대한 첫 번째 명령어로 시작된 분의 끝까지 제한됩니다.
아래에 기기 유형이 표시되지 않으면 기기 인스턴스 수준 비율 제한이 없습니다.
기기 유형 | 기기 인스턴스 비율 제한 |
---|---|
온도 조절기 | 5 QPM 또는 100 QPH |
카메라 | 30 QPM 또는 100 QPH |
DOORBELL | 30QPM 또는 100QPH |
오류
이 가이드와 관련하여 다음과 같은 오류 코드가 반환될 수 있습니다.
오류 메시지 | RPC | 문제 해결 |
---|---|---|
비율 제한 | RESOURCE_EXHAUSTED |
각 개발자에게는 호출할 수 있는 횟수를 제한하는 할당량이 있습니다. 할당량보다 더 많이 호출하면 비율 제한 메시지가 표시됩니다. 이 문제를 해결하려면 할당량이 만료된 후 통화를 다시 제출하세요. |
API 오류 코드의 전체 목록은 API 오류 코드 참조를 확인하세요.