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

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

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

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

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

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

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

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

अगर आपने इवेंट की सुविधा चालू नहीं की है, तो:

  1. Pub/Sub विषय के लिए आइकॉन पर क्लिक करें और बदलाव करें को चुनें.
  2. इवेंट चालू करें को चुनें और सेव करें पर क्लिक करें.
  3. ऊपर दिखाए गए फ़ॉर्मैट में आपके लिए एक विषय आईडी जनरेट किया जाता है.

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

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

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

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

Google Cloud Shell पर जाएं

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

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-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की मदद से, सेवा खाते की पुष्टि करने के बारे में ज़्यादा जानने के लिए, इवेंट देखें.