Các dự ánDevice Access bị hạn chế theo người dùng, cấu trúc và giới hạn tốc độ, tuỳ thuộc vào môi trường và loại dịch vụ Thương mại.
Chúng tôi muốn nhà phát triển tạo ra trải nghiệm hấp dẫn cho người dùng, nhưng chúng tôi cũng muốn dịch vụ và thiết bị Nest luôn sẵn sàng phục vụ người dùng. Các hoạt động tích hợp thực hiện một lượng lớn yêu cầu trong một khoảng thời gian nhất định có thể ảnh hưởng đến khả năng cung cấp dịch vụ và thiết bị, vì vậy, API SDM áp dụng giới hạn tốc độ. Giới hạn tốc độ hạn chế số lượng lệnh gọi API trong một khoảng thời gian nhất định và ngăn việc sử dụng quá mức tài nguyên.
Giới hạn theo môi trường
Tất cả dự án đều bắt đầu trong môi trường Hộp cát . Hộp cát này dành cho việc đánh giá API SDM và sử dụng cá nhân, đồng thời các giới hạn cũng được hạn chế tương ứng. Các môi trường có cơ sở người dùng lớn hơn, chẳng hạn như Phát triển thương mại , có các giới hạn khác.
Giới hạn về người dùng hộp cát
Một tài khoản nhà phát triển trong Hộp cát được giới hạn ở 25 người dùng trên 5 cấu trúc trên tất cả các dự án. Mỗi tài khoản chỉ được có tối đa 3 dự án.
Mỗi cấu trúc chỉ được giới hạn ở 5 người dùng, vì vậy, bạn sẽ chỉ đạt đến giới hạn người dùng khi tất cả 5 cấu trúc đều có tối đa 5 người dùng. Tài khoản nhà phát triển (sở hữu dự án) không được tính vào hạn mức 5 người dùng cho một cấu trúc.
Ngược lại, nếu một dự án có 15 người dùng trong 5 cấu trúc, thì bạn chỉ có thể thêm người dùng bổ sung vào 5 cấu trúc hiện có, vì đã đạt đến giới hạn cấu trúc.
Giới hạn tốc độ của hộp cát
Hộp cát bị giới hạn tốc độ ở 3 cấp độ. Giới hạn được đặt ở số truy vấn mỗi phút (QPM) trừ phi có ghi chú khác.
Cấp độ API
Số lệnh gọi API bị giới hạn cho mỗi dự án, mỗi người dùng. Hãy xem Tài liệu tham khảo API để biết thêm thông tin về từng phương thức.
Phương thức API | Giới hạn số lần yêu cầu |
---|---|
devices.executeCommand |
10 triệu yêu cầu mỗi phút |
devices.get |
10 triệu yêu cầu mỗi phút |
devices.list |
5 QPM |
structures.get |
5 QPM |
structures.list |
5 QPM |
structures.rooms.get |
5 QPM |
structures.rooms.list |
5 QPM |
Cấp lệnh
Mỗi lệnh đặc điểm (devices.executeCommand
) được giới hạn ở mức 5 QPM cho mỗi dự án, mỗi người dùng và mỗi thiết bị.
Điều đó có nghĩa là nếu một dự án có 2 người dùng, mỗi người dùng có 2 thiết bị (tổng cộng 4 thiết bị), thì cùng một lệnh có thể được gọi 5 lần trong một phút cho mỗi thiết bị trong số 4 thiết bị đó.
Tuy nhiên, nếu một dự án có 2 người dùng, mỗi người dùng có 3 thiết bị, tổng cộng 6 thiết bị, thì bạn không thể gọi cùng một lệnh 5 lần trong một phút cho mỗi thiết bị trong số 6 thiết bị đó. Điều này sẽ dẫn đến 15 QPM cho mỗi người dùng, khi giới hạn tốc độ cấp độ API devices.executeCommand
cho người dùng của dự án là 10 QPM.
Cấp phiên bản thiết bị
Ngoài ra, các giới hạn ở cấp thực thể thiết bị được triển khai trên các dự án và lệnh (devices.executeCommand
) để bảo vệ pin của thiết bị. Các giới hạn này được áp dụng ở cả cấp độ QPM và truy vấn mỗi giờ (QPH), đồng thời không áp dụng cho phương thức API get
và list
.
Ví dụ: giả sử Dự án A và Dự án B đều có quyền truy cập vào cùng một thiết bị, Thiết bị A (có thể người dùng đã cho phép hai hoạt động tích hợp thương mại khác nhau sử dụng cùng một thiết bị). Nếu Dự án A đã gửi 4 lệnh đến Thiết bị A trong vòng một phút, thì Dự án B chỉ có thể gửi 1 lệnh đến Thiết bị A trong cùng một phút đó trước khi đạt đến giới hạn tốc độ cấp thực thể thiết bị. Tại thời điểm đó, các lệnh từ cả hai Dự án đến Thiết bị A sẽ bị điều tiết cho đến khi kết thúc phút bắt đầu bằng lệnh đầu tiên đến Thiết bị A.
Nếu một loại thiết bị không có trong danh sách bên dưới, thì loại thiết bị đó không có giới hạn tốc độ cấp thực thể thiết bị.
Loại thiết bị | Giới hạn tốc độ thực thể thiết bị |
---|---|
MÁY ĐIỀU NHIỆT | 5 QPM hoặc 100 QPH |
MÁY ẢNH | 30 QPM hoặc 100 QPH |
DOORBELL | 30 QPM hoặc 100 QPH |
Lỗi
(Các) mã lỗi sau đây có thể được trả về liên quan đến hướng dẫn này:
Thông báo Lỗi | RPC | Khắc phục sự cố |
---|---|---|
Giới hạn tốc độ. | RESOURCE_EXHAUSTED |
Mỗi nhà phát triển có một hạn mức giới hạn số lượng lệnh gọi mà họ có thể thực hiện. Nếu thực hiện nhiều cuộc gọi hơn hạn mức, bạn sẽ nhận được thông báo Bị giới hạn tốc độ. Để khắc phục vấn đề này, hãy gửi lại lệnh gọi sau khi hạn mức đã hết. |
Hãy xem Tài liệu tham khảo về mã lỗi API để biết danh sách đầy đủ các mã lỗi API.