Device Access प्रोजेक्ट पर उपयोगकर्ता, स्ट्रक्चर, और दर की सीमाएं लागू होती हैं. ये सीमाएं, एनवायरमेंट और कमर्शियल ऑफ़रिंग के टाइप के हिसाब से तय होती हैं.
हम चाहते हैं कि डेवलपर, लोगों को बेहतरीन अनुभव दें. हालांकि, हम यह भी चाहते हैं कि Nest की सेवा और डिवाइस हमेशा लोगों के लिए उपलब्ध रहें. किसी तय समयावधि में बड़ी संख्या में अनुरोध करने वाले इंटिग्रेशन से, सेवा और डिवाइस की उपलब्धता पर असर पड़ सकता है. इसलिए, SDM API, दर सीमाएं लागू करता है. अनुरोध संख्या सीमित करने की सुविधा, किसी समयावधि के लिए एपीआई कॉल की संख्या को सीमित करती है. साथ ही, संसाधनों का ज़्यादा इस्तेमाल होने से रोकती है.
हर एनवायरमेंट के लिए सीमाएं
सभी प्रोजेक्ट, सैंडबॉक्स एनवायरमेंट में शुरू होते हैं. सैंडबॉक्स का इस्तेमाल, एसडीएम एपीआई का आकलन करने और निजी इस्तेमाल के लिए किया जाता है. इसलिए, इसकी सीमाएं तय की गई हैं. ज़्यादा उपयोगकर्ताओं वाले एनवायरमेंट, जैसे कि कमर्शियल डेवलपमेंट के लिए, अलग-अलग सीमाएँ तय की गई हैं.
सैंडबॉक्स में उपयोगकर्ताओं की सीमाएं
सैंडबॉक्स में मौजूद डेवलपर खाते में, सभी प्रोजेक्ट के लिए पांच स्ट्रक्चर में 25 उपयोगकर्ता जोड़े जा सकते हैं. हर खाते में तीन प्रोजेक्ट जोड़े जा सकते हैं.
हर स्ट्रक्चर में सिर्फ़ पांच उपयोगकर्ताओं को जोड़ा जा सकता है. इसलिए, उपयोगकर्ताओं की सीमा तब तक नहीं पहुंचेगी, जब तक सभी पांच स्ट्रक्चर में पांच-पांच उपयोगकर्ता न जुड़ जाएं. डेवलपर खाते (जो प्रोजेक्ट का मालिक है) को किसी स्ट्रक्चर के लिए, पांच उपयोगकर्ताओं की सीमा में नहीं गिना जाता.
इसके उलट, अगर किसी प्रोजेक्ट में पांच से ज़्यादा स्ट्रक्चर में 15 उपयोगकर्ता हैं, तो अतिरिक्त उपयोगकर्ताओं को सिर्फ़ मौजूदा पांच स्ट्रक्चर में जोड़ा जा सकता है. ऐसा इसलिए, क्योंकि स्ट्रक्चर की सीमा पहले ही पूरी हो चुकी है.
सैंडबॉक्स की दर से जुड़ी सीमाएं
सैंडबॉक्स में, तीन अलग-अलग लेवल पर दर की सीमा तय की जाती है. अगर कोई और जानकारी नहीं दी गई है, तो सीमाएं क्वेरी प्रति मिनट (क्यूपीएम) के हिसाब से सेट की जाती हैं.
API स्तर
हर प्रोजेक्ट और हर उपयोगकर्ता के लिए, एपीआई कॉल की संख्या सीमित होती है. अलग-अलग तरीकों के बारे में ज़्यादा जानने के लिए, एपीआई के बारे में जानकारी देखें.
| एपीआई मेथड | तय सीमा |
|---|---|
devices.executeCommand |
10 क्यूपीएम |
devices.get |
10 क्यूपीएम |
devices.list |
5 QPM |
structures.get |
5 QPM |
structures.list |
5 QPM |
structures.rooms.get |
5 QPM |
structures.rooms.list |
5 QPM |
कमांड लेवल
हर प्रोजेक्ट, हर उपयोगकर्ता, और हर डिवाइस के लिए, हर ट्रेट कमांड (devices.executeCommand) को हर मिनट में पांच बार इस्तेमाल किया जा सकता है.
इसका मतलब है कि अगर किसी प्रोजेक्ट में दो उपयोगकर्ता हैं और उनके पास दो-दो डिवाइस हैं (कुल चार डिवाइस), तो उन चार डिवाइसों में से हर एक के लिए, एक मिनट में एक ही कमांड को पांच बार कॉल किया जा सकता है.
हालांकि, अगर किसी प्रोजेक्ट में दो उपयोगकर्ता हैं और हर उपयोगकर्ता के पास तीन डिवाइस हैं, तो कुल छह डिवाइसों के लिए, एक ही कमांड को एक मिनट में पांच बार कॉल नहीं किया जा सकता. इससे हर उपयोगकर्ता के लिए 15 QPM हो जाएंगे, जबकि किसी प्रोजेक्ट के उपयोगकर्ता के लिए devices.executeCommand एपीआई लेवल की दर सीमा 10 QPM है.
डिवाइस इंस्टेंस लेवल
इसके अलावा, डिवाइस की बैटरी को सुरक्षित रखने के लिए, डिवाइस इंस्टेंस लेवल की सीमाएं सभी प्रोजेक्ट और डिवाइसों (devices.executeCommand) पर लागू की जाती हैं. ये सीमाएं, क्वेरी प्रति मिनट (क्यूपीएम) और क्वेरी प्रति घंटे (क्यूपीएच) के लेवल पर लागू होती हैं. साथ ही, ये get और list एपीआई के तरीकों पर लागू नहीं होती हैं.
उदाहरण के लिए, मान लें कि प्रोजेक्ट A और प्रोजेक्ट B, दोनों के पास एक ही डिवाइस, डिवाइस A का ऐक्सेस है. ऐसा हो सकता है कि उपयोगकर्ता ने दो अलग-अलग कमर्शियल इंटिग्रेशन को अनुमति दी हो, जो एक ही डिवाइस का इस्तेमाल करते हैं. अगर प्रोजेक्ट A ने एक मिनट में डिवाइस A को चार कमांड भेजी हैं, तो प्रोजेक्ट B उस एक मिनट में डिवाइस A को सिर्फ़ एक कमांड भेज सकता है. ऐसा तब तक किया जा सकता है, जब तक डिवाइस इंस्टेंस लेवल की दर सीमा पूरी नहीं हो जाती. इस समय, डिवाइस A को दोनों प्रोजेक्ट से मिलने वाले निर्देशों को तब तक थ्रॉटल किया जाता है, जब तक कि डिवाइस A को पहला निर्देश मिलने के बाद शुरू हुआ मिनट खत्म नहीं हो जाता.
अगर डिवाइस का कोई टाइप यहां नहीं दिया गया है, तो इसका मतलब है कि डिवाइस इंस्टेंस लेवल पर दर की सीमाएं लागू नहीं होती हैं.
| डिवाइस का टाइप | डिवाइस इंस्टेंस की दर की सीमा |
|---|---|
| थर्मोस्टैट | 5 QPM या 100 QPH |
| CAMERA | 30 QPM या 100 QPH |
| DOORBELL | 30 QPM या 100 QPH |
गड़बड़ियां
इस गाइड से जुड़ी गड़बड़ियों के लिए, ये कोड दिख सकते हैं:
| गड़बड़ी का मैसेज | RPC | समस्या का हल |
|---|---|---|
| तय सीमा पूरी हो चुकी है. | RESOURCE_EXHAUSTED |
हर डेवलपर के लिए एक कोटा होता है. इससे यह तय होता है कि वह कितने कॉल कर सकता है. अगर आपने कोटे से ज़्यादा कॉल किए हैं, तो आपको 'दर सीमित है' मैसेज मिलेगा. इस समस्या को ठीक करने के लिए, कोटा खत्म होने के बाद कॉल फिर से सबमिट करें. |
एपीआई के गड़बड़ी कोड की पूरी सूची देखने के लिए, एपीआई के गड़बड़ी कोड का रेफ़रंस देखें.