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

Nest Hello

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

sdm.devices.types.DOORBELL

Google Nest Doorbell (लेगसी) में एक कैमरे की सुविधा है, जो कैमरे का डिवाइस टाइप.

विशेषताएं

रेफ़रंस

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

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

JSON

GET जवाब में 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 डिवाइस टाइप से ट्रिगर हो सकते हैं :

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

पेलोड

{
  "eventId" : "8fcc5cf5-9785-4566-95b2-586f8e489b78",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "OpH_SleZID9LpDG8sEtIQHfMqY..." } } } "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" : "OjfCwyB5m6Ik0SF4P233YgzOrK..."
  }
}

जवाब

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

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

url पर इससे, GET कॉल करें GenerateImage कमांड का जवाब, मूल प्राधिकरण के साथ HTTP प्राधिकरण हेडर में token का उपयोग करके कैमरा इमेज डाउनलोड करें:

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 को अनदेखा कर दिया जाता है.
  • अगर यूआरएल में कोई भी पैरामीटर नहीं दिया गया है, तो 480 का डिफ़ॉल्ट मान चुना जाता है width.

इसके लिए CameraImage एट्रिब्यूट देखें देखें.

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

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

  • आरटीएसपी

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

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

आरटीएसपी

आरटीएसपी स्ट्रीम के लिए, 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

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

लाइव स्ट्रीम का समय बढ़ाएं

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

आरटीएसपी

RTSP स्ट्रीम को बढ़ाने के लिए, 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

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

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

आरटीएसपी

किसी आरटीएसपी स्ट्रीम को रोकने के लिए, टोकन का इस्तेमाल करके 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 का इस्तेमाल करें.

इसके लिए एपीआई गड़बड़ी कोड संदर्भ देखें में देखें.