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