
सभी पुरानी 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 इस्तेमाल करें. |
एपीआई के गड़बड़ी कोड की पूरी सूची देखने के लिए, एपीआई से जुड़ी गड़बड़ी के कोड का रेफ़रंस देखें.