การจํากัดผู้ใช้และอัตรา

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