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