दरवाज़े की घंटी (लेगसी)

Nest Hello

सभी लेगसी Nest Doorbells, Smart Device Management (SDM) API के साथ काम करती हैं. यह डिवाइस, DOORBELL को दिखाता है:

sdm.devices.types.DOORBELL

Google Nest Doorbell (लेगसी) में कैमरा होता है. यह CAMERA के डिवाइस की तरह ही काम करता है.

विशेषताएं

रेफ़रंस

ये विशेषताएं, निर्देश या इवेंट इस डिवाइस से जुड़े हैं:

Traitब्यौरानिर्देशइवेंट
CameraEventImageयह trait ऐसे किसी भी डिवाइस का है जो इवेंट से इमेज जनरेट करने की सुविधा देता है.GenerateImage
CameraImageयह सुविधा ऐसे किसी भी डिवाइस में इस्तेमाल की जाती है जिस पर इमेज खींची जा सकती हैं.
CameraLiveStreamयह सुविधा उन सभी डिवाइसों पर लागू होती है जिन पर लाइव स्ट्रीमिंग की सुविधा काम करती है.GenerateRtspStream
ExtendRtspStream
StopRtspStream
CameraMotionयह trait हर उस डिवाइस का है जिस पर हलचल का पता लगाने वाली इवेंट की सुविधा काम करती है.मोशन
CameraPersonयह trait ऐसे किसी भी डिवाइस का है जो व्यक्ति की पहचान इवेंट की सुविधा देता है.व्यक्ति
CameraSoundयह trait हर उस डिवाइस का है जिस पर आवाज़ का पता लगाने वाले इवेंट काम करते हैं.साउंड
DoorbellChimeयह Trait उन सभी डिवाइसों का होता है जिन पर दरवाज़े की घंटी बजने और इससे जुड़े इवेंट को चलाने की सुविधा मिलती है.चाइम
जानकारीडिवाइस से जुड़ी जानकारी देने के लिए, यह trait किसी भी डिवाइस का होता है.

JSON

जीईटी रिस्पॉन्स में Trait न होने का मतलब है कि फ़िलहाल इस डिवाइस के लिए, Trait या सुविधा उपलब्ध नहीं है. ज़्यादा जानकारी के लिए, डिवाइस के टाइप देखें.

{
  "type" : "sdm.devices.types.DOORBELL",
  "traits" : {
    "sdm.devices.traits.CameraEventImage" : {},
    "sdm.devices.traits.CameraImage" : {
      "maxImageResolution" : {
        "width" : 1280,
        "height" : 960
      }
    },
    "sdm.devices.traits.CameraLiveStream" : {
      "maxVideoResolution" : {
        "width" : 640,
        "height" : 480
      },
      "videoCodecs" : ["H264"],
      "audioCodecs" : ["AAC"],
      "supportedProtocols" : ["WEB_RTC"]
    },
    "sdm.devices.traits.CameraMotion" : {},
    "sdm.devices.traits.CameraPerson" : {},
    "sdm.devices.traits.CameraSound" : {},
    "sdm.devices.traits.DoorbellChime" : {},
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    }
  }
}

दरवाज़े की घंटी और कैमरे की गतिविधियों को मैनेज करना

ये इवेंट, DOORBELL डिवाइस से ट्रिगर हो सकते हैं :

Type एलिमेंट ब्यौरा
इवेंट CameraMotion की सुविधा के मोशन इवेंट कैमरे ने हलचल की पहचान कर ली है.
इवेंट CameraPerson trait का Person इवेंट कैमरे ने किसी व्यक्ति की पहचान की है.
इवेंट CameraSound trait का साउंड इवेंट कैमरे ने आवाज़ की पहचान कर ली है.
इवेंट DoorbellChime trait का चाइम इवेंट दरवाज़े की घंटी को दबा दिया गया है.
उदाहरण के लिए, यहां दरवाज़े की घंटी का बटन दबाया गया था:

पेलोड

{
  "eventId" : "07065411-c660-4413-b455-f7e2b1d2b92a",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "ytisl8dCfk0lEIan6aR1i2OLAn..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
इस इवेंट के पेलोड में एक eventId है, जिसका इस्तेमाल GenerateImage कमांड के साथ किया जा सकता है. यह निर्देश, इवेंट से जुड़ी कैमरे की इमेज को डाउनलोड करने के लिए यूआरएल दिखाता है:

अनुरोध

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
  "params" : {
    "eventId" : "bKzeS8i6F4CD4qLdvDV-egRW9t..."
  }
}

जवाब

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

कैमरे से ली गई इमेज डाउनलोड करें

कैमरे की इमेज डाउनलोड करने के लिए, बेसिक ऑथराइज़ेशन वाले एचटीटीपी ऑथराइज़ेशन हेडर में token का इस्तेमाल करके, GenerateImage कमांड रिस्पॉन्स से url को एक जीईटी कॉल करें:

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...

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

उदाहरण के लिए, अगर कैमरे का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 4:3 है, तो 480 x 360 के रिज़ॉल्यूशन वाली कैमरा इमेज डाउनलोड करने के लिए, चौड़ाई या ऊंचाई तय करें:

चौड़ाई

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480

ऊंचाई

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360

डाउनलोड यूआरएल पर अन्य पाबंदियां भी लागू होती हैं:

  • अगर यूआरएल में दोनों पैरामीटर दिए गए हैं, तो width का इस्तेमाल किया जाता है और height को अनदेखा किया जाता है.
  • अगर यूआरएल में कोई भी पैरामीटर नहीं दिया गया है, तो width के लिए 480 की डिफ़ॉल्ट वैल्यू चुनी जाती है.

इमेज की प्रॉपर्टी के बारे में जानकारी पाने के लिए, CameraImage एट्रिब्यूट देखें.

लाइव स्ट्रीम को ऐक्सेस करना

कैमरे से लाइव स्ट्रीम को ऐक्सेस किया जा सकता है. इस डिवाइस पर ये स्ट्रीम फ़ॉर्मैट काम करते हैं:

  • आरटीएसपी

कैमरों और इस्तेमाल किए जा सकने वाले स्ट्रीम फ़ॉर्मैट की पूरी सूची देखने के लिए, साथ काम करने वाले डिवाइस पर जाएं.

लाइव स्ट्रीम को ऐक्सेस करने के लिए,CameraLiveStream एट्रिब्यूट के सही जनरेट करेंFormatस्ट्रीम निर्देश का इस्तेमाल करें.

आरटीएसपी

किसी आरटीएसपी स्ट्रीम के लिए, CameraLiveStream trait कमांड का GenerateRtspStream कमांड, स्ट्रीम का यूआरएल और उससे जुड़ी streamToken दिखाता है:

अनुरोध

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream",
  "params" : {}
}

जवाब

{
  "results" : {
    "streamUrls" : {
      "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
    },
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
    "streamToken" : "g.0.streamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

इसके बाद, कैमरे की लाइव स्ट्रीम ऐक्सेस करने के लिए, स्ट्रीम के यूआरएल का इस्तेमाल करें:

rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken

RTSP लाइव स्ट्रीम के यूआरएल, क्लाइंट के बीच शेयर नहीं किए जा सकते. किसी स्ट्रीम यूआरएल को एक समय पर सिर्फ़ एक क्लाइंट इस्तेमाल कर सकता है. अगर एक से ज़्यादा क्लाइंट एक ही कैमरे से एक ही समय में स्ट्रीम करना चाहते हैं, तो हर क्लाइंट के लिए RTSP निर्देश भेजे जाने चाहिए. साथ ही, हर क्लाइंट को अपने स्ट्रीम यूआरएल का इस्तेमाल करना होगा.

लाइव स्ट्रीम को ज़्यादा दर्शकों तक पहुंचाना

कैमरा लाइव स्ट्रीम सेशन, सिर्फ़ पांच मिनट के लिए मान्य हैं. अगर आपको अपनी लाइव स्ट्रीम की अवधि बढ़ानी है, तो उस स्ट्रीम फ़ॉर्मैट के लिए CameraLiveStream एट्रिब्यूट के ExtendFormatStream निर्देश का इस्तेमाल करें जो आपने जनरेट किया है.

आरटीएसपी

किसी आरटीएसपी स्ट्रीम को बढ़ाने के लिए, CameraLiveStream trait कमांड के ExtendRtspStream कमांड का इस्तेमाल करें, ताकि streamExtensionToken और streamToken की नई वैल्यू मिल सकें:

अनुरोध

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream",
  "params" : {
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
  }
}

जवाब

{
  "results" : {
    "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "streamToken" : "g.0.newStreamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

लाइव स्ट्रीम देखना जारी रखने के लिए, स्ट्रीम के यूआरएल को इन नई वैल्यू से अपडेट करें:

rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken

लाइव स्ट्रीम बंद करना

अगर आप कैमरा लाइव स्ट्रीम का इस्तेमाल बंद करना चाहते हैं, तो आपको इसे बंद कर देना चाहिए और इसे अमान्य कर देना चाहिए. ऐसा करने के लिए, स्ट्रीम फ़ॉर्मैट के लिए CameraLiveStream एट्रिब्यूट के सही स्टॉपFormatस्ट्रीम निर्देश का इस्तेमाल करें.

आरटीएसपी

किसी आरटीएसपी स्ट्रीम को बंद करने के लिए, टोकन का इस्तेमाल करके CameraLiveStream trait कमांड के StopRtspStream कमांड की पुष्टि करें:

अनुरोध

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
  "params" : {
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
  }
}

जवाब

{}

गड़बड़ियां

इस डिवाइस के मामले में, ये गड़बड़ी कोड दिख सकते हैं:

गड़बड़ी संदेश RPC समस्या हल करना
कैमरे की इमेज अब डाउनलोड नहीं की जा सकती. DEADLINE_EXCEEDED इवेंट की इमेज, इवेंट पब्लिश होने के 30 सेकंड बाद दिखना बंद हो जाती हैं. पक्का करें कि फ़ोटो अपलोड करने की समयसीमा खत्म होने से पहले, उसे डाउनलोड कर लिया जाए.
इवेंट आईडी कैमरे से जुड़ा हुआ नहीं है. FAILED_PRECONDITION इसके लिए, कैमरा इवेंट के सही eventID का इस्तेमाल करें.

एपीआई के गड़बड़ी कोड की पूरी सूची देखने के लिए, एपीआई के गड़बड़ी कोड का रेफ़रंस देखें.