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