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

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

इवेंट, एसडीएम एपीआई की एक वैकल्पिक सुविधा है. इन्हें आसानी से लागू किया जा सकता है और इनकी पुष्टि की जा सकती है. इसके लिए, आपको अपने Google Cloud प्रोजेक्ट का इस्तेमाल करना होगा.

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

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

Device Access कंसोल पर जाएं

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

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

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

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

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

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

अपने प्रोजेक्ट के Topic आईडी के लिए इवेंट डेटा को ऐक्सेस और पब्लिश करने के लिए, 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

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

इवेंट की सुविधा चालू करने के लिए:

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

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

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

पुल टाइप की सदस्यता में, सदस्य, सूची में मौजूद इवेंट मैसेज के लिए 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 के आस-पास के वातावरण का तापमान बदलता है, तोतापमान ट्रैट के लिए एक इवेंट, नई ambientTemperatureCelsius वैल्यू के साथ अपने-आप भेजा जाएगा.

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

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

मैसेज देखें

इवेंट मैसेज, आपके Google Cloud प्रोजेक्ट में, Pub/Sub सदस्यताओं वाले सेक्शन में देखे जा सकते हैं:

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. मैसेज पैनल को देखने के लिए, मैसेज देखें पर क्लिक करें. सभी मैसेज देखने और उनकी पुष्टि करने के लिए, मैसेज पाने की पुष्टि करने की सुविधा चालू करें चेकबॉक्स को चुनें. इसके बाद, खींचें पर क्लिक करें.
    2. सभी मौजूदा मैसेज को मिटाने के लिए, मैसेज मिटाएं पर क्लिक करें. इसके बाद, मैसेज देखने के बजाय, उन्हें मिटाने की पुष्टि करें. पुष्टि करने के लिए, मिटाएं पर क्लिक करें.

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

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

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

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

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

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