इवेंट के लिए सदस्यता लें

इवेंट एसिंक्रोनस होते हैं और इन्हें Google Cloud Pub/Sub मैनेज करता है. हर Projectके लिए एक विषय होता है. इवेंट, सभी डिवाइसों और स्ट्रक्चर के लिए अपडेट देते हैं. साथ ही, इवेंट के मैसेज तब तक मिलते रहते हैं, जब तक उपयोगकर्ता ऐक्सेस टोकन को रद्द नहीं करता और इवेंट के मैसेज की समयसीमा खत्म नहीं हो जाती.

इवेंट, SDM API की एक ऐसी सुविधा है जिसका इस्तेमाल करना ज़रूरी नहीं है. इन्हें आसानी से लागू किया जा सकता है. साथ ही, इनकी पुष्टि आपके Google Cloud प्रोजेक्ट का इस्तेमाल करके की जा सकती है.

इवेंट सक्षम करें

इवेंट, Device Access कंसोल में चालू किए जा सकते हैं. अगर आपने पहले से ही कोई प्रोजेक्ट नहीं चुना है, तो कंसोल में जाकर अपना प्रोजेक्ट चुनें.

Device Access Console पर जाएं

अगर आपने इवेंट पहले ही चालू कर दिए हैं (उदाहरण के लिए, प्रोजेक्ट बनाते समय), तो इवेंट के लिए Pub/Sub विषय चालू करें सेक्शन में मौजूद Pub/Sub विषय फ़ील्ड में पहले से ही कोई वैल्यू होनी चाहिए. इसे विषय आईडी कहा जाता है. यह इस पुराने फ़ॉर्मैट में होता है:

projects/sdm-prod/topics/enterprise-project-id

यह विषय फ़ॉर्मैट, Google होस्ट करता है. यह आपके प्रोजेक्ट के लिए तब तक उपलब्ध रहेगा, जब तक Google होस्ट किए गए Pub/Sub विषय को बंद नहीं किया जाता. अगर इसे बाद में फिर से चालू किया जाता है, तो आपको सेल्फ़-होस्ट किए गए Pub/Sub विषय पर स्विच कर दिया जाएगा.

सेल्फ़-होस्ट किए गए Pub/Sub विषयों को डेवलपर के अपने Google Cloud प्रोजेक्ट में बनाया या बदला जा सकता है. Pub/Sub का इस्तेमाल करने से जुड़े सभी शुल्कों के लिए भी डेवलपर ज़िम्मेदार होता है. ज़्यादा जानकारी के लिए, Pub/Sub की कीमत देखें.

Pub/Sub विषय बनाएं:

gcloud pubsub topics create {topic} --message-retention-duration=0s

अपने प्रोजेक्ट के विषय के आईडी के लिए, इवेंट डेटा को ऐक्सेस और पब्लिश करने के लिए, SDM API की ज़रूरी अनुमतियां दें:

gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"

आपके नए बनाए गए विषय के आईडी का फ़ॉर्मैट इस तरह दिखेगा:

projects/gcp-project-name/subscriptions/topic-id

अपने विषय का आईडी नोट कर लें. इवेंट चालू करने के लिए, आपको इसकी ज़रूरत होगी. ज़्यादा जानकारी के लिए, कोई विषय बनाना लेख पढ़ें.

इवेंट चालू करने के लिए:

  1. इवेंट चालू करें को चुनें. इसके बाद, प्रोजेक्ट बनाएं पर क्लिक करें.
  2. Pub/Sub विषय के लिए, आइकॉन पर क्लिक करें. इसके बाद, PubSub विषय के साथ इवेंट चालू करें को चुनें.
  3. Pub/Sub का वह विषय आईडी डालें जो आपको पहले दिया गया था या आपने बनाया था.

अपने विषय का आईडी कॉपी करें. आपको विषय की सदस्यता बनाने के लिए इसकी ज़रूरत होगी, ताकि इवेंट के मैसेज वापस पाए जा सकें.

पुल सदस्यता बनाना

पुल सदस्यता में, सदस्य Pub/Sub सर्वर को इवेंट के मैसेज पाने के लिए अनुरोध भेजता है. यह पुष्टि करने का तेज़ और आसान तरीका है कि आपके अनुमति वाले डिवाइसों के लिए इवेंट जनरेट किए जा रहे हैं.

अपने Google Cloud प्रोजेक्ट के लिए Cloud Shell खोलें:

Google Cloud Shell पर जाएं

Cloud Shell प्रॉम्प्ट पर, अपने विषय के लिए पुल सदस्यता बनाने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें. इसके लिए, अपनी पसंद का कोई भी subscription-id और अपना यूनीक विषय आईडी इस्तेमाल करें:

gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

इवेंट शुरू करना

Pub/Sub सदस्यता बन जाने के बाद, पहली बार इवेंट शुरू करने के लिए, अपने डिवाइसों को एक बार ट्रिगर करने के तौर पर लिस्ट करने के लिए कॉल करें:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

इस एपीआई कॉल के बाद, सभी स्ट्रक्चर और डिवाइसों के लिए इवेंट पब्लिश किए जाएंगे.

इवेंट जनरेट करना

सभी ट्रेट फ़ील्ड में हुए बदलावों के लिए इवेंट जनरेट होते हैं. इनमें से कुछ इवेंट अपने-आप जनरेट होते हैं, जबकि कुछ को मैन्युअल तरीके से जनरेट करना पड़ता है.

उदाहरण के लिए, अगर आपके Nest Thermostat के आस-पास के तापमान में बदलाव होता है, तोTemperature trait के लिए एक इवेंट अपने-आप नई ambientTemperatureCelsius वैल्यू के साथ भेजा जाएगा.

इसे मैन्युअल तरीके से जनरेट करने के लिए, इनमें से कोई एक तरीका अपनाएं:

  1. अपने डिवाइस की स्थिति में बदलाव करना. जैसे, Nest थर्मोस्टैट का मोड बदलना.
  2. Google Nest Cam Indoor पर किसी इवेंट को ट्रिगर करना. जैसे, हलचल, व्यक्ति या आवाज़.
  3. SDM API का इस्तेमाल करके, डिवाइस को निर्देश दें.

मैसेज देखें

इवेंट मैसेज को अपने Google Cloud प्रोजेक्ट में देखा जा सकता है. इसके लिए, Pub/Sub Subscriptions सेक्शन में जाएं:

Google Cloud Pub/Sub की सदस्यताएं पर जाएं

  1. आपने पहले जो सदस्यता आईडी बनाया था उस पर क्लिक करें.
  2. सदस्यता की जानकारी स्क्रीन पर, आपको पुष्टि न किए गए मैसेज की संख्या चार्ट में गतिविधि दिखेगी. इससे पता चलता है कि आपकी सदस्यता के लिए, इवेंट मैसेज मिल गए हैं. अगर आपको कोई गतिविधि नहीं दिखती है, तो थोड़ी देर इंतज़ार करें या कुछ और इवेंट जनरेट करें.
  3. मैसेज पैनल खोलने के लिए, मैसेज देखें पर क्लिक करें.
  4. मैसेज देखने के लिए, PULL पर क्लिक करें. ये उन कार्रवाइयों से मेल खाने चाहिए जिनका इस्तेमाल आपने इवेंट जनरेट करने के लिए किया था.

मैसेज को Cloud Shell में भी देखा जा सकता है. इसके लिए, pull कमांड का इस्तेमाल करें:

gcloud pubsub subscriptions pull subscription-id

सदस्यता के टाइप और SDM API से भेजे गए इवेंट के टाइप के बारे में ज़्यादा जानने के लिए, इवेंट लेख पढ़ें. साथ ही, यह भी जानें कि इनका इस्तेमाल कैसे किया जाता है.

मैसेज मैनेज करें

सदस्यता को साफ़-सुथरा रखने के लिए, मैसेज को नियमित तौर पर स्वीकार किया जाना चाहिए और मिटाया जाना चाहिए. इससे, अन्य सदस्यों को डुप्लीकेट मैसेज नहीं भेजे जाएंगे. सदस्यता वाले सभी मैसेज को Pub/Sub Subscriptions सेक्शन में जाकर, मैन्युअल तरीके से मिटाया जा सकता है:

Google Cloud Pub/Sub की सदस्यताएं पर जाएं

  1. सदस्यता आईडी पर क्लिक करें.
  2. डेटा को स्वीकार करने और मिटाने के कुछ तरीके यहां दिए गए हैं:
    1. मैसेज देखें पर क्लिक करके, मैसेज पैनल खोलें. पुष्टि करने वाले मैसेज चालू करें चेकबॉक्स पर सही का निशान लगाएं. इसके बाद, सभी मैसेज देखने और उनकी पुष्टि करने के लिए, पुल करें पर क्लिक करें.
    2. सभी मौजूदा मैसेज को बिना देखे मिटाने के लिए, मैसेज मिटाएं पर क्लिक करें. पुष्टि करने के लिए, PURGE पर क्लिक करें.

Cloud Shell में भी मैसेज मिटाए जा सकते हैं. इसके लिए, --auto-ack फ़्लैग के साथ pull कमांड का इस्तेमाल करें:

gcloud pubsub subscriptions pull subscription-id --auto-ack

सदस्यताएं प्रबंधित करें

सदस्यताओं को कई तरीकों से कॉन्फ़िगर किया जा सकता है. इसके बारे में सदस्यता प्रॉपर्टी इस्तेमाल करना लेख में बताया गया है.

हालांकि, आपको सदस्यताएं और मैसेज कैसे मैनेज करने हैं, यह आप पर निर्भर करता है. हमारा सुझाव है कि प्रोडक्शन ऐप्लिकेशन के लिए, पुष्टि करने के लिए सेवा खातों का इस्तेमाल करें. इसके बजाय, इस क्विक स्टार्ट गाइड में अब तक आपने जिस उपयोगकर्ता खाते का इस्तेमाल किया है उसका इस्तेमाल न करें. सेवा खाते का इस्तेमाल किसी ऐप्लिकेशन या वर्चुअल मशीन के लिए किया जाता है, न कि किसी व्यक्ति के लिए. साथ ही, इसकी अपनी यूनीक खाता कुंजी होती है.

Device Accessके साथ सेवा खाते की पुष्टि करने के बारे में ज़्यादा जानकारी के लिए, इवेंट देखें.