Device Access Các dự án 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 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 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 có sẵn cho người dùng. Các 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 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 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 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 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 giới hạn khác nhau.
Giới hạn người dùng trong Hộp cá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ả dự án. Mỗi tài khoản chỉ được tạo tối đa 3 dự án.
Mỗi cấu trúc chỉ được 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 giới hạn 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 trên 5 cấu trúc, thì bạn chỉ có thể thêm người dùng 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 độ trong Hộp cát
Hộp cát bị giới hạn tốc độ ở 3 cấp độ. Các 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 theo dự án và theo 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 tốc độ |
|---|---|
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 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ì bạn có 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ố 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, 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 độ thực thể 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 thiết bị. Các giới hạn này được áp dụng ở cả cấp độ QPM và số 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 đã cho phép 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 độ thực thể thiết bị. Tại thời điểm đó, các lệnh từ cả Dự án A và Dự án B đến Thiết bị A đều 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 độ ở cấp độ thực thể thiết bị |
|---|---|
| MÁY ĐIỀU NHIỆT | 5 QPM hoặc 100 QPH |
| CAMERA | 30 QPM hoặc 100 QPH |
| DOORBELL | 30 QPM hoặc 100 QPH |
Lỗi
Bạn có thể nhận được(các) mã lỗi sau liên quan đến hướng dẫn này:
| Thông báo lỗi | RPC | Khắc phục sự cố |
|---|---|---|
| Mức giới hạn | 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 lệnh gọi hơn hạn mức, bạn sẽ nhận được thông báo Mức giới hạn. Để 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.