Google Nest Hub Max डिसप्ले यह सुविधा, Smart Device Management (SDM) API के साथ काम करती है. यह डिवाइस, डिवाइस टाइप दिखाता है का DISPLAY:
sdm.devices.types.DISPLAY
Google Nest Hub Max में कैमरा है. यह कैमरे की तरह ही काम करता है कैमरे का डिवाइस टाइप.
विशेषताएं
रेफ़रंस
यहां दिए गए लक्षण, निर्देश या इवेंट इस डिवाइस से जुड़े हैं:
विशेषता | ब्यौरा | निर्देश | इवेंट |
---|---|---|---|
CameraEventImage | यह विशेषता ऐसे किसी भी डिवाइस से जुड़ी है जो इवेंट से इमेज जनरेट करने की सुविधा देता है. | GenerateImage | |
CameraImage | यह विशेषता ऐसे किसी भी डिवाइस से संबंधित है जो चित्र लेने का समर्थन करता है. | ||
CameraLiveStream | यह Trait ऐसे किसी भी डिवाइस से जुड़ा है जिसमें लाइव स्ट्रीमिंग की सुविधा काम करती है. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | यह विशेषता ऐसे किसी भी डिवाइस से जुड़ी है जो गति का पता लगाने वाले इवेंट की सुविधा देता है. | मोशन | |
CameraPerson | यह विशेषता ऐसे किसी भी डिवाइस से जुड़ी है जो किसी व्यक्ति की पहचान करने वाली गतिविधियों की सुविधा देता है. | व्यक्ति | |
CameraSound | यह Trait ऐसे किसी भी डिवाइस से जुड़ा है जो आवाज़ का पता लगाने वाले इवेंट की सुविधा देता है. | साउंड | |
जानकारी | यह Trait, डिवाइस से जुड़ी जानकारी के लिए इस्तेमाल किए जा रहे किसी भी डिवाइस से जुड़ा है. |
JSON
GET जवाब में Trait न होने का मतलब है कि Trait या फ़िलहाल, डिवाइस के लिए यह सुविधा उपलब्ध नहीं है. यहां जाएं: डिवाइस के टाइप में अन्य सुविधाओं का इस्तेमाल करें जानकारी.
{ "type" : "sdm.devices.types.DISPLAY", "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.Info" : { "customName" : "My device" } } }
कैमरे की गतिविधियों को मैनेज करना
नीचे दिए गए इवेंट किसी DISPLAY डिवाइस प्रकार से ट्रिगर हो सकते हैं:टाइप | एलिमेंट | ब्यौरा |
---|---|---|
इवेंट | CameraMotion की विशेषता का मोशन इवेंट | कैमरे ने हलचल की पहचान की. |
इवेंट | CameraPerson Trait का व्यक्ति इवेंट | कैमरे ने एक व्यक्ति की पहचान की है. |
इवेंट | CameraSound Trait का साउंड इवेंट | कैमरे ने आवाज़ की पहचान कर ली है. |
पेलोड
{ "eventId" : "6d12911e-0181-495c-97b5-b6e8884c50ae",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "FJ-QMyhCTKninhnimPOwVDjELx...", } } } "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" : "1GfoI8sZUnc79jrq7YfVodeqtf..."
}
}
जवाब
{ "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 का इस्तेमाल करें. |
इसके लिए एपीआई गड़बड़ी कोड संदर्भ देखें में देखें.