Device Access بسته به محیط و نوع پیشنهاد تجاری، پروژه ها توسط محدودیت های کاربر، ساختار و نرخ محدود می شوند.
ما از توسعهدهندگان میخواهیم که تجربههای کاربری قانعکنندهای ایجاد کنند، اما همچنین میخواهیم سرویس و دستگاههای Nest همیشه برای کاربر در دسترس باشند. یکپارچهسازیهایی که تعداد زیادی درخواست در یک دوره زمانی معین ایجاد میکنند، میتوانند روی سرویس و در دسترس بودن دستگاه تأثیر بگذارند، بنابراین SDM API محدودیتهای نرخ را اعمال میکند. محدود کردن نرخ، تعداد تماسهای API را برای یک دوره زمانی معین محدود میکند و از استفاده بیش از حد از منابع جلوگیری میکند.
محدودیت های محیطی
همه پروژه ها در محیط Sandbox شروع می شوند. Sandbox برای ارزیابی SDM API و استفاده شخصی در نظر گرفته شده است و محدودیتها بر این اساس محدود شدهاند. محیطهایی با پایگاههای کاربری بزرگتر، مانند توسعه تجاری ، محدودیتهای متفاوتی دارند.
محدودیت های کاربر سندباکس
یک حساب توسعه دهنده در Sandbox به 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 بار در دقیقه برای هر یک از آن 4 دستگاه فراخوانی کرد.
با این حال، اگر یک پروژه دارای 2 کاربر با هر 3 دستگاه برای 6 دستگاه باشد، نمی توان همان فرمان را 5 بار در دقیقه برای هر یک از آن 6 دستگاه فراخوانی کرد. این منجر به 15 QPM برای هر کاربر می شود، در صورتی که محدودیت نرخ سطح API devices.executeCommand
برای کاربر پروژه 10 QPM باشد.
سطح نمونه دستگاه
علاوه بر این، محدودیتهای سطح نمونه دستگاه در سراسر پروژهها و دستورات ( devices.executeCommand
) برای محافظت از باتری دستگاه اعمال میشوند. این محدودیت ها در هر دو سطح QPM و پرس و جو در ساعت (QPH) اعمال می شوند و برای روش های get
و list
API اعمال نمی شوند.
به عنوان مثال، فرض کنید پروژه A و پروژه B هر دو به یک دستگاه دسترسی دارند، دستگاه A (شاید کاربر مجوز دو ادغام تجاری متفاوت را صادر کرده باشد که از یک دستگاه استفاده می کنند). اگر پروژه A در عرض یک دقیقه 4 فرمان را به دستگاه A ارسال کرده باشد، پروژه B فقط می تواند 1 فرمان را در همان دقیقه قبل از رسیدن به محدودیت نرخ سطح نمونه دستگاه به دستگاه A ارسال کند. در آن نقطه، دستورات هر دو پروژه به دستگاه A تا پایان دقیقه ای که با اولین فرمان به دستگاه A شروع می شود، متوقف می شوند.
اگر نوع دستگاهی در زیر فهرست نشده باشد، محدودیت نرخ سطح نمونه دستگاه را ندارد.
نوع دستگاه | محدودیت نرخ نمونه دستگاه |
---|---|
ترموستات | 5 QPM یا 100 QPH |
دوربین | 30 QPM یا 100 QPM |
زنگ در | 30 QPM یا 100 QPM |
خطاها
کد(های) خطای زیر ممکن است در رابطه با این راهنما بازگردانده شوند:
پیغام خطا | RPC | عیب یابی |
---|---|---|
نرخ محدود | RESOURCE_EXHAUSTED | هر توسعهدهندهای یک سهمیه دارد که تعداد تماسهایی که میتوانند برقرار کنند محدود میکند. اگر بیش از سهمیه خود تماس بگیرید، پیام Rate limited را دریافت خواهید کرد. برای رفع این مشکل، پس از اتمام سهمیه، تماس را دوباره ارسال کنید. |
برای لیست کامل کدهای خطای API به مرجع کد خطای API مراجعه کنید.