Device Access project bị giới hạn theo người dùng, cấu trúc và hạn mức, tuỳ thuộc vào môi trường và loại Sản phẩm thương mại.
Chúng tôi muốn nhà phát triển tạo ra trải nghiệm người dùng hấp dẫn, nhưng chúng tôi cũng muốn người dùng luôn có thể sử dụng dịch vụ và thiết bị Nest. Những hoạt động tích hợp tạo ra một số 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, SDM API áp dụng giới hạn về tốc độ. Tính năng 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 chặ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 được dùng để đánh giá SDM API và sử dụng cho mục đích cá nhân, đồng thời các giới hạn cũng được hạn chế cho phù hợp. 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 hạn mức khác nhau.
Giới hạn người dùng trong hộp cát
Một tài khoản nhà phát triển trong Hộp cát bị 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ó tối đa 5 người dùng, vì vậy, bạn chỉ đạt đến giới hạn người dùng khi 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 thuộc 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
Sandbox bị giới hạn tốc độ ở 3 cấp độ khác nhau. Giới hạn được đặt ở mức số lượng truy vấn mỗi phút (QPM), trừ phi có quy định khác.
Cấp độ API
Số lượng 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 về 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 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 |
Cấp lệnh
Mỗi lệnh đặc điểm (devices.executeCommand
) bị giới hạn ở 5 QPM cho mỗi dự án, mỗi người dùng, 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ức là tổng cộng 6 thiết bị, thì cùng một lệnh không thể được gọi 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, trong khi giới hạn tốc độ cấp API devices.executeCommand
cho người dùng của một 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 độ phiên bản thiết bị được triển khai trên các dự án và lệnh (devices.executeCommand
) để bảo vệ pin thiết bị. Những giới hạn này được áp dụng ở cả cấp độ QPM và số lượng truy vấn mỗi giờ (QPH) và không áp dụng cho các 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 đã uỷ quyền cho 2 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 phiên bản thiết bị. Tại thời điểm đó, các lệnh từ cả hai Dự án đến Thiết bị A đều bị điều tiết cho đến hết 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 về tốc độ ở cấp độ phiên bản thiết bị.
Loại thiết bị | Giới hạn tốc độ của phiên bản thiết bị |
---|---|
THERMOSTAT | 5 QPM hoặc 100 QPH |
CAMERA | 30 QPM hoặc 100 QPH |
CHUÔNG CỬA | 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ố |
---|---|---|
Bị giới hạn số lượng yêu cầu. | RESOURCE_EXHAUSTED |
Mỗi nhà phát triển đều 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 lệnh 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ạn. |
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.