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

इवेंट एसिंक्रोनस होते हैं और इन्हें 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 की सदस्यताएं सेक्शन में जाकर, मैन्युअल तरीके से मिटाया जा सकता है:

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

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

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

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

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

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

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

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