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