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