Device Access โปรเจ็กต์ถูกจำกัดโดยผู้ใช้ โครงสร้าง และขีดจำกัดอัตราคำขอ ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมและประเภทข้อเสนอเชิงพาณิชย์
เราต้องการให้นักพัฒนาแอปสร้างประสบการณ์การใช้งานที่น่าสนใจสำหรับผู้ใช้ แต่เราก็ต้องการให้บริการและอุปกรณ์ Nest พร้อมให้บริการแก่ผู้ใช้เสมอ การผสานรวมที่ส่งคำขอจำนวนมากในช่วงเวลาหนึ่งๆ อาจส่งผลต่อความพร้อมให้บริการของบริการและอุปกรณ์ ดังนั้น SDM API จึงใช้ขีดจำกัดอัตราคำขอ การจำกัดอัตราคำขอจะจำกัดจำนวนการเรียก API ในระยะเวลาหนึ่งๆ และป้องกันการใช้ทรัพยากรมากเกินไป
ขีดจำกัดตามสภาพแวดล้อม
โปรเจ็กต์ทั้งหมดเริ่มต้นในสภาพแวดล้อม Sandbox Sandbox มีไว้สำหรับการประเมิน SDM API และการใช้งานส่วนตัว และมีการจำกัดตามนั้น สภาพแวดล้อมที่มีฐานผู้ใช้ขนาดใหญ่กว่า เช่น การพัฒนาเชิงพาณิชย์ จะมีขีดจำกัดที่แตกต่างกัน
ขีดจำกัดผู้ใช้ Sandbox
บัญชีนักพัฒนาแอปใน Sandbox จำกัดไว้ที่ 25 ผู้ใช้ใน 5 โครงสร้างในทุกโปรเจ็กต์ และจำกัดไว้ที่ 3 โปรเจ็กต์ต่อบัญชี
โครงสร้างจำกัดไว้ที่ 5 ผู้ใช้ต่อโครงสร้าง ดังนั้นขีดจำกัดผู้ใช้จะถึงก็ต่อเมื่อโครงสร้างทั้ง 5 มีผู้ใช้ครบ 5 คน บัญชีนักพัฒนาแอป (ซึ่งเป็นเจ้าของโปรเจ็กต์) จะไม่นับรวมในขีดจำกัดผู้ใช้ 5 คนต่อโครงสร้าง
ในทางกลับกัน หากโปรเจ็กต์มีผู้ใช้ 15 คนใน 5 โครงสร้าง คุณจะเพิ่มผู้ใช้เพิ่มเติมได้เฉพาะใน 5 โครงสร้างที่มีอยู่เท่านั้น เนื่องจากขีดจำกัดโครงสร้างถึงแล้ว
ขีดจำกัดอัตราคำขอ Sandbox
Sandbox มีการจำกัดอัตราคำขอ 3 ระดับที่แตกต่างกัน ระบบจะกำหนดขีดจำกัดเป็นคำค้นหาต่อนาที (QPM) เว้นแต่จะระบุไว้เป็นอย่างอื่น
ระดับ API
การเรียก API จะจำกัดต่อโปรเจ็กต์และต่อผู้ใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับเมธอดแต่ละรายการได้ที่เอกสารอ้างอิง API Reference
| เมธอดของ 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) จำกัดไว้ที่ 5 QPM ต่อโปรเจ็กต์ ต่อผู้ใช้ ต่ออุปกรณ์
ซึ่งหมายความว่าหากโปรเจ็กต์มีผู้ใช้ 2 คนที่มีอุปกรณ์ 2 เครื่อง (รวม 4 เครื่อง) คำสั่งเดียวกันจะเรียกใช้ได้ 5 ครั้งต่อนาทีสำหรับอุปกรณ์ทั้ง 4 เครื่อง
อย่างไรก็ตาม หากโปรเจ็กต์มีผู้ใช้ 2 คนที่มีอุปกรณ์ 3 เครื่อง (รวม 6 เครื่อง) คำสั่งเดียวกันจะเรียกใช้ไม่ได้ 5 ครั้งต่อนาทีสำหรับอุปกรณ์ทั้ง 6 เครื่อง เนื่องจากจะทำให้เกิด 15 QPM ต่อผู้ใช้ ในขณะที่ขีดจำกัดอัตราคำขอระดับ API ของ devices.executeCommand สำหรับผู้ใช้ของโปรเจ็กต์คือ 10 QPM
ระดับอินสแตนซ์ของอุปกรณ์
นอกจากนี้ เรายังใช้ขีดจำกัดระดับอินสแตนซ์ของอุปกรณ์ในโปรเจ็กต์และคำสั่ง (devices.executeCommand) เพื่อป้องกันแบตเตอรี่ของอุปกรณ์ โดยขีดจำกัดเหล่านี้จะใช้ทั้งในระดับ QPM และคำค้นหาต่อชั่วโมง (QPH) และไม่มีผลกับเมธอด API get และ list
เช่น สมมติว่าโปรเจ็กต์ A และโปรเจ็กต์ B มีสิทธิ์เข้าถึงอุปกรณ์เครื่องเดียวกัน ซึ่งก็คืออุปกรณ์ A (อาจเป็นเพราะผู้ใช้ให้สิทธิ์การผสานรวมเชิงพาณิชย์ 2 รายการที่แตกต่างกันซึ่งใช้อุปกรณ์เครื่องเดียวกัน) หากโปรเจ็กต์ A ส่งคำสั่ง 4 รายการไปยังอุปกรณ์ A ภายใน 1 นาที โปรเจ็กต์ B จะส่งคำสั่งไปยังอุปกรณ์ A ได้เพียง 1 รายการใน 1 นาทีนั้นก่อนที่จะถึงขีดจำกัดอัตราคำขอระดับอินสแตนซ์ของอุปกรณ์ เมื่อถึงจุดนั้น ระบบจะควบคุมคำสั่งจากทั้ง 2 โปรเจ็กต์ไปยังอุปกรณ์ A จนกว่าจะสิ้นสุดนาทีที่เริ่มด้วยคำสั่งแรกไปยังอุปกรณ์ A
หากประเภทอุปกรณ์ไม่อยู่ในรายการด้านล่าง แสดงว่าอุปกรณ์ประเภทนั้นไม่มีขีดจำกัดอัตราคำขอระดับอินสแตนซ์ของอุปกรณ์
| ประเภทอุปกรณ์ | ขีดจำกัดอัตราคำขออินสแตนซ์ของอุปกรณ์ |
|---|---|
| ตัวควบคุมอุณหภูมิ | 5 QPM หรือ 100 QPH |
| กล้อง | 30 QPM หรือ 100 QPH |
| DOORBELL | 30 QPM หรือ 100 QPH |
ข้อผิดพลาด
ระบบอาจแสดงรหัสข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับคู่มือนี้
| ข้อความแสดงข้อผิดพลาด | RPC | การแก้ปัญหา |
|---|---|---|
| ถูกจำกัดอัตราคำขอ | RESOURCE_EXHAUSTED |
นักพัฒนาแอปแต่ละรายมีโควต้าที่จำกัดจำนวนการเรียกที่ทำได้ หากคุณเรียกใช้มากกว่าโควต้า คุณจะได้รับข้อความ "ถูกจำกัดอัตราคำขอ" หากต้องการแก้ไขปัญหานี้ ให้ส่งการเรียกอีกครั้งเมื่อโควต้าหมดอายุ |
ดูรายการรหัสข้อผิดพลาดทั้งหมดของ API ได้ที่ข้อมูลอ้างอิงรหัสข้อผิดพลาดของ API สำหรับ