حدود المستخدم والمعدل

Device Access يتم تقييد المشاريع وفقًا للمستخدم والبنية ومعدّل السعر، وذلك حسب البيئة ونوع العرض التجاري.

نريد من المطوّرين توفير تجارب مميّزة للمستخدمين، ولكننا نريد أيضًا أن تكون خدمة Nest وأجهزة Nest متاحة للمستخدمين في جميع الأوقات. يمكن أن تؤثر عمليات الدمج التي تُجري عددًا كبيرًا من الطلبات خلال فترة زمنية معيّنة على مدى توفّر الخدمة والأجهزة، لذلك تطبّق واجهة برمجة تطبيقات SDM حدود المعدل. يحدّ تحديد المعدل من عدد طلبات البيانات من واجهة برمجة التطبيقات لفترة زمنية معيّنة ويمنع الاستخدام الزائد للموارد.

الحدود حسب البيئة

تبدأ جميع المشاريع في بيئة   Sandbox  . يهدف وضع الحماية إلى تقييم واجهة برمجة التطبيقات SDM API والاستخدام الشخصي، ويتم تحديد الحدود وفقًا لذلك. أما البيئات التي تضم قواعد مستخدمين أكبر، مثل   التطوير التجاري  ، فتفرض حدودًا مختلفة.

حدود المستخدمين في وضع الحماية

يقتصر حساب المطوّر في Sandbox على 25 مستخدمًا في 5 بُنى على مستوى جميع المشاريع. يمكن إنشاء 3 مشاريع كحدّ أقصى لكلّ حساب.

تقتصر البنى على 5 مستخدمين لكلّ منها، لذا لن يتمّ بلوغ الحدّ الأقصى للمستخدمين إلا بعد ملء كلّ البنى الخمس بـ 5 مستخدمين لكلّ منها. لا يتم احتساب حساب المطوّر (الذي يملك المشروع) ضمن الحدّ الأقصى المسموح به وهو 5 مستخدمين في البنية.

وبالعكس، إذا كان المشروع يضم 15 مستخدمًا على 5 بُنى، فلا يمكن إضافة مستخدمين إضافيين إلا إلى الهياكل الخمسة الحالية، إذ تم الوصول إلى الحد الأقصى للبنية.

حدود معدّل وضع الحماية

يكون معدل وضع الحماية محدودًا على 3 مستويات مختلفة. يتم ضبط الحدود على طلبات البحث في الدقيقة (QPM) ما لم يُذكر خلاف ذلك.

مستوى واجهة برمجة التطبيقات

يتمّ الحدّ من عدد طلبات البيانات من واجهة برمجة التطبيقات لكلّ مشروع ولكلّ مستخدم. اطّلِع على مرجع واجهة برمجة التطبيقات للحصول على مزيد من المعلومات عن methods الفردية.

طريقة واجهة برمجة التطبيقات الحدّ الأقصى للمعدل
devices.executeCommand 10 QPM
devices.get ‫10 طلبات في الدقيقة
devices.list ‫5 كيلو بايت في الثانية
structures.get ‫5 كيلو بايت في الثانية
structures.list ‫5 كيلو بايت في الثانية
structures.rooms.get ‫5 كيلو بايت في الثانية
structures.rooms.list ‫5 كيلو بايت في الثانية

مستوى الطلب

تقتصر كلّ سمة من سمات الأمر (devices.executeCommand) على 5 عمليات معالجة طلبات في الدقيقة لكل مشروع، لكلّ مستخدم، لكلّ جهاز.

وهذا يعني أنّه إذا كان المشروع يتضمّن مستخدمَين يمتلكان جهازَين لكل منهما (4 أجهزة إجمالاً)، يمكن تنفيذ العبارة نفسها 5 مرات في الدقيقة لكل جهاز من هذه الأجهزة الأربعة.

ومع ذلك، إذا كان المشروع يتضمّن مستخدمَين لديهما 3 أجهزة لكل منهما، أي 6 أجهزة في المجمل، لا يمكن استدعاء الأمر نفسه 5 مرات في الدقيقة لكل من هذه الأجهزة الستة. سيؤدي ذلك إلى الحصول على 15 طلب في الدقيقة لكل مستخدم، عندما يكون الحدّ الأقصى للمعدل على مستوى devices.executeCommand API لمستخدم المشروع هو 10 طلبات في الدقيقة.

مستوى مثيل الجهاز

بالإضافة إلى ذلك، يتم تطبيق الحدود على مستوى مثيل الجهاز في جميع المشاريع والسمَات (devices.executeCommand) لحماية بطارية الجهاز. يتم تطبيق هذه الحدود على مستوى كل من QPM وطلبات البحث في الساعة (QPH)، ولا تنطبق على طريقتَي واجهة برمجة التطبيقات get وlist.

على سبيل المثال، لنفترض أنّ المشروع "أ" والمشروع "ب" يمكنهما الوصول إلى الجهاز "أ" نفسه (ربما فوّض المستخدم دمجَين تجاريَّين مختلفَين يستخدِمان الجهاز نفسه). إذا أرسل المشروع "أ" 4 أوامر إلى الجهاز "أ" في غضون دقيقة، يمكن للمشروع "ب" إرسال أمر واحد فقط إلى الجهاز "أ" في تلك الدقيقة نفسها قبل الوصول إلى الحد الأقصى لمعدل مستوى مثيل الجهاز. في هذه النقطة، يتمّ الحدّ من الطلبات الواردة من كلا المشروعَين إلى "الجهاز أ" إلى نهاية الدقيقة التي بدأت بالطلب الأول إلى "الجهاز أ".

إذا لم يكن نوع الجهاز مدرجًا أدناه، يعني هذا أنه لا توجد قيود على معدّل الزحف إليه على مستوى النسخة الافتراضية للجهاز.

نوع الجهاز الحد الأقصى لعدد أجهزة الإصدار
الترموستات ‫5 صور في الثانية أو 100 صورة في الساعة
الكاميرا 30 QPM أو 100 QPH
DOORBELL ‫30 ملف في الدقيقة أو 100 ملف في الساعة

الأخطاء

قد يتم عرض رموز الخطأ التالية في ما يتعلّق بهذا الدليل:

رسالة الخطأ متوسط عائد النقرة تحديد المشاكل وحلّها
معدّل الاستخدام محدود RESOURCE_EXHAUSTED يحصل كل مطوِّر على حصة تحدّ من عدد المكالمات التي يمكنه إجراؤها. إذا أجريت مكالمات أكثر من حصتك، ستتلقّى رسالة "تمّ الحد من معدّل المكالمات". لحلّ هذه المشكلة، يُرجى إعادة إرسال المكالمة بعد انتهاء صلاحية الحصة.

اطّلِع على مرجع رموز الخطأ في واجهة برمجة التطبيقات للحصول على القائمة الكاملة لرموز الخطأ في واجهة برمجة التطبيقات.