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

Nest Hello

सभी पुरानी Nest Doorbell, स्मार्ट डिवाइस मैनेजमेंट (SDM) एपीआई में काम करती हैं. यह डिवाइस, DOORBELL का एक डिवाइस टाइप दिखाता है:

sdm.devices.types.DOORBELL

Google Nest Doorbell (लेगसी) में कैमरा होता है. यह कैमरे के अलग-अलग तरह के काम करता है.

विशेषताएं

रेफ़रंस

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

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

JSON

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

{
  "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 की खासियत का Motion इवेंट कैमरे ने हलचल का पता लगाया है.
इवेंट CameraPerson विशेषता का व्यक्ति इवेंट कैमरे ने एक व्यक्ति की मौजूदगी का पता लगाया है.
इवेंट Camera Sound से जुड़े एट्रिब्यूट के लिए, Sound इवेंट कैमरे ने आवाज़ का पता लगाया है.
इवेंट DoorbellChime में बनी विशेषता का चाइम इवेंट दरवाज़े की घंटी दबाई गई है.
उदाहरण के लिए, दरवाज़े की घंटी को यहां से दबाया गया है:

पेलोड

{
  "eventId" : "24d1e961-8109-4e6c-b53f-21b4fb4a9c54",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "GHXz72FHCwLcJhNv9UVckSCWbA..." } } } "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" : "arVU49YC_juupiOJm8KJRZdLpe..."
  }
}

जवाब

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

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

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

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

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

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

  • आरटीएसपी

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

लाइव स्ट्रीम ऐक्सेस करने के लिए,CameraLiveStream सुविधा से सही जनरेटFormatस्ट्रीम कमांड का इस्तेमाल करें.

आरटीएसपी

RTSP स्ट्रीम के लिए, CameraLiveStream ट्रेल कमांड का 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 एट्रिब्यूट के एक्सटेंडेडFormatस्ट्रीम कमांड का इस्तेमाल करें.

आरटीएसपी

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

आरटीएसपी

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

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