Google Nest Hub Max डिसप्ले स्मार्ट डिवाइस मैनेजमेंट (एसडीएम) एपीआई पर काम करता है. यह डिवाइस DISPLAY का डिवाइस प्रकार लौटाता है:
sdm.devices.types.DISPLAY
Google Nest Hub Max में कैमरा है. यह कैमरा CAMERA के डिवाइस की तरह काम करता है.
विशेषताएं
रेफ़रंस
ये विशेषताएं, निर्देश या इवेंट इस डिवाइस से जुड़े हैं:
Trait | ब्यौरा | निर्देश | इवेंट |
---|---|---|---|
CameraEventImage | यह trait ऐसे किसी भी डिवाइस का है जो इवेंट से इमेज जनरेट करने की सुविधा देता है. | GenerateImage | |
CameraImage | यह सुविधा ऐसे किसी भी डिवाइस में इस्तेमाल की जाती है जिस पर इमेज खींची जा सकती हैं. | ||
CameraLiveStream | यह सुविधा उन सभी डिवाइसों पर लागू होती है जिन पर लाइव स्ट्रीमिंग की सुविधा काम करती है. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | यह trait हर उस डिवाइस का है जिस पर हलचल का पता लगाने वाली इवेंट की सुविधा काम करती है. | मोशन | |
CameraPerson | यह trait ऐसे किसी भी डिवाइस का है जो व्यक्ति की पहचान इवेंट की सुविधा देता है. | व्यक्ति | |
CameraSound | यह trait हर उस डिवाइस का है जिस पर आवाज़ का पता लगाने वाले इवेंट काम करते हैं. | साउंड | |
जानकारी | डिवाइस से जुड़ी जानकारी देने के लिए, यह trait किसी भी डिवाइस का होता है. |
JSON
जीईटी रिस्पॉन्स में 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 डिवाइस के प्रकार से नीचे दिए गए इवेंट ट्रिगर हो सकते हैं:Type | एलिमेंट | ब्यौरा |
---|---|---|
इवेंट | CameraMotion की सुविधा के मोशन इवेंट | कैमरे ने हलचल की पहचान कर ली है. |
इवेंट | CameraPerson trait का Person इवेंट | कैमरे ने किसी व्यक्ति की पहचान की है. |
इवेंट | CameraSound trait का साउंड इवेंट | कैमरे ने आवाज़ की पहचान कर ली है. |
पेलोड
{ "eventId" : "0334f8ca-3c01-42ec-82d4-c6232f436879",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "xuXvMMR68-rWLA4Yb3k8NiVveX...", } } } "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" : "baEUplCXqgF0UbGyThFhPi3SA-..."
}
}
जवाब
{ "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 का इस्तेमाल करें. |
एपीआई के गड़बड़ी कोड की पूरी सूची देखने के लिए, एपीआई के गड़बड़ी कोड का रेफ़रंस देखें.