פרויקטים שלDevice Access מוגבלים לפי משתמש, מבנה ומגבלות קצב, בהתאם לסביבה ולסוג של מוצר מסחרי.
אנחנו רוצים שהמפתחים ייצרו חוויות משתמש מושכות, אבל אנחנו גם רוצים שהשירות והמכשירים של Nest יהיו זמינים למשתמשים תמיד. שילובים ששולחים מספר גדול של בקשות בפרק זמן נתון עלולים להשפיע על הזמינות של השירות והמכשיר, ולכן ה-SDM API כולל מגבלות קצב. הגבלת קצב שליחת הבקשות מגבילה את מספר הקריאות ל-API לפרק זמן מסוים ומונעת שימוש יתר במשאבים.
הגבלות לפי סביבה
כל הפרויקטים מתחילים בסביבת Sandbox . ארגז החול מיועד להערכה של SDM API ולשימוש אישי, והמגבלות מוגבלות בהתאם. בסביבות עם בסיס משתמשים גדול יותר, כמו פיתוח מסחרי , יש מגבלות שונות.
מגבלות משתמשים בארגז חול
בחשבון פיתוח בסביבת Sandbox יש מגבלה של 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 שאילתות לדקה לכל פרויקט, לכל משתמש ולכל מכשיר.
המשמעות היא שאם בפרויקט יש 2 משתמשים עם 2 מכשירים כל אחד (4 מכשירים בסך הכול), אפשר להפעיל את אותה פקודה 5 פעמים בדקה לכל אחד מ-4 המכשירים האלה.
עם זאת, אם בפרויקט יש 2 משתמשים עם 3 מכשירים כל אחד, כלומר 6 מכשירים בסך הכול, אי אפשר להפעיל את אותה פקודה 5 פעמים בדקה לכל אחד מ-6 המכשירים האלה. במקרה כזה, כל משתמש יקבל 15 QPM, כשמגבלת הקצב ברמת ה-API של devices.executeCommand
בפרויקט היא 10 QPM.
רמת מופע המכשיר
בנוסף, הוטמעו הגבלות ברמת מופע המכשיר בפרויקטים ובפקודות (devices.executeCommand
) להגנה על הסוללה של המכשיר. המגבלות האלה חלות ברמות QPM ו-QPH, ולא חלות על שיטות ה-API get
ו-list
.
לדוגמה, נניח שלפרויקט א' ולפרויקט ב' יש גישה לאותו מכשיר, מכשיר א' (יכול להיות שהמשתמש אישר שני שילובים מסחריים שונים שמשתמשים באותו מכשיר). אם פרויקט א' שלח 4 פקודות למכשיר א' בתוך דקה, פרויקט ב' יכול לשלוח רק פקודה אחת למכשיר א' באותה דקה לפני שמגיעים למגבלת הקצב ברמת מופע המכשיר. בשלב הזה, הפקודות משני הפרויקטים למכשיר א' מוגבלות עד לסוף הדקה שהתחילה עם הפקודה הראשונה למכשיר א'.
אם סוג מכשיר לא מופיע ברשימה שלמטה, לא חלות עליו הגבלות על קצב בקשות ברמת מופע המכשיר.
סוג מכשיר | מגבלת קצב ליצירת בקשות ממופע מכשיר |
---|---|
THERMOSTAT | 5 QPM או 100 QPH |
מצלמה | 30 QPM או 100 QPH |
פעמון דלת | 30 QPM או 100 QPH |
שגיאות
יכול להיות שיוחזרו קודי השגיאה הבאים בהקשר של המדריך הזה:
הודעת השגיאה | הכנסה לקליק | פתרון בעיות |
---|---|---|
קצב יצירת הבקשות מוגבל. | RESOURCE_EXHAUSTED |
לכל מפתח יש מכסת שיחות שמוגבלת למספר מסוים. אם תבצעו יותר שיחות מהמכסה, תוצג לכם ההודעה Rate limited. כדי לפתור את הבעיה, צריך לשלוח מחדש את הקריאה אחרי שהמכסה פגה. |
רשימה מלאה של קודי שגיאה של API זמינה במאמר API Error Code Reference.