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