
সমস্ত লিগ্যাসি নেস্ট ডোরবেল স্মার্ট ডিভাইস ম্যানেজমেন্ট (SDM) API-এ সমর্থিত। এই ডিভাইসটি একটি ডিভাইসের প্রকারের DOORBELL প্রদান করে:
sdm.devices.types.DOORBELL
গুগল নেস্ট ডোরবেল (উত্তরাধিকার) একটি ক্যামেরা বৈশিষ্ট্যযুক্ত, যেটি ক্যামেরার ধরনের ডিভাইসের মতোই কাজ করে।
বৈশিষ্ট্য
রেফারেন্স
নিম্নলিখিত বৈশিষ্ট্য, আদেশ বা ইভেন্টগুলি এই ডিভাইসের সাথে সম্পর্কিত:
বৈশিষ্ট্য | বর্ণনা | কমান্ড | ঘটনা |
---|---|---|---|
CameraEvent Image | এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ইভেন্ট থেকে ছবি তৈরি করতে সহায়তা করে। | ইমেজ তৈরি করুন | |
ক্যামেরা ইমেজ | এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ছবি তোলা সমর্থন করে। | ||
CameraLiveStream | এই বৈশিষ্ট্যটি লাইভ স্ট্রিমিং সমর্থন করে এমন যেকোনো ডিভাইসের অন্তর্গত। | জেনারেটআরটিএসপিস্ট্রিম এক্সটেনডআরটিএসপিস্ট্রিম স্টপআরটিএসপিস্ট্রিম | |
CameraMotion | এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা গতি সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ | গতি | |
CameraPerson | এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ব্যক্তি সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ | ব্যক্তি | |
ক্যামেরাসাউন্ড | এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা শব্দ সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ | শব্দ | |
DoorbellChime | এই বৈশিষ্ট্যটি যেকোনও ডিভাইসের অন্তর্গত যা ডোরবেল কাইম এবং সম্পর্কিত প্রেস ইভেন্ট সমর্থন করে। | চিম | |
তথ্য | ডিভাইস-সম্পর্কিত তথ্যের জন্য এই বৈশিষ্ট্যটি যেকোনো ডিভাইসের অন্তর্গত। |
JSON
একটি GET প্রতিক্রিয়াতে একটি বৈশিষ্ট্যের অনুপস্থিতি নির্দেশ করে যে বৈশিষ্ট্য বা বৈশিষ্ট্যটি বর্তমানে ডিভাইসের জন্য উপলব্ধ নয়৷ আরও তথ্যের জন্য ডিভাইসের ধরন দেখুন।
{ "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 ডিভাইসের প্রকার থেকে ট্রিগার হতে পারে:টাইপ | উপাদান | বর্ণনা |
---|---|---|
ঘটনা | ক্যামেরামোশন বৈশিষ্ট্যের মোশন ইভেন্ট | গতি ক্যামেরা দ্বারা সনাক্ত করা হয়েছে. |
ঘটনা | ক্যামেরাপারসন বৈশিষ্ট্যের ব্যক্তি ঘটনা | ক্যামেরায় একজনকে শনাক্ত করা হয়েছে। |
ঘটনা | ক্যামেরাসাউন্ড বৈশিষ্ট্যের শব্দ ইভেন্ট | ক্যামেরায় শব্দ শনাক্ত করা হয়েছে। |
ঘটনা | ডোরবেলচাইম বৈশিষ্ট্যের কাইম ইভেন্ট | ডোরবেল টিপানো হয়েছে। |
পেলোড
{ "eventId" : "5fc898da-a76d-4b58-9f9b-b5972414df6b",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "OuHubzETcaD91HaBAXySlFt1WR..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
রয়েছে যা GenerateImage কমান্ডের সাথে ব্যবহার করা যেতে পারে। এই কমান্ডটি ইভেন্টের সাথে সম্পর্কিত ক্যামেরা চিত্রের জন্য একটি ডাউনলোড URL প্রদান করে:অনুরোধ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "9_4-WM1YJvhJjipL_vb3HVkTEY..."
}
}
প্রতিক্রিয়া
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
একটি ক্যামেরা ছবি ডাউনলোড করুন
ক্যামেরা ইমেজ ডাউনলোড করতে, বেসিক অনুমোদন সহ HTTP অনুমোদন হেডারে token
ব্যবহার করে GenerateImage কমান্ডের প্রতিক্রিয়া থেকে url
এ একটি GET কল করুন:
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
ডাউনলোড URL-এ অন্যান্য বিধিনিষেধ প্রযোজ্য:
- যদি উভয় প্যারামিটার URL-এ প্রদান করা হয়,
width
ব্যবহার করা হয় এবংheight
উপেক্ষা করা হয়। - যদি URL-এ কোনো প্যারামিটার দেওয়া না থাকে, তাহলে
width
জন্য 480-এর একটি ডিফল্ট মান বেছে নেওয়া হয়।
ছবির বৈশিষ্ট্য সম্পর্কে তথ্যের জন্য CameraImage বৈশিষ্ট্য দেখুন।
একটি লাইভ স্ট্রিম অ্যাক্সেস করুন
একটি ক্যামেরা থেকে লাইভ স্ট্রিম অ্যাক্সেস করা যেতে পারে. এই ডিভাইসের জন্য নিম্নলিখিত স্ট্রিম ফর্ম্যাটগুলি সমর্থিত:
- আরটিএসপি
ক্যামেরা এবং সমর্থিত স্ট্রিম ফর্ম্যাটের সম্পূর্ণ তালিকার জন্য, সমর্থিত ডিভাইসগুলি দেখুন।
একটি লাইভ স্ট্রিম অ্যাক্সেস করতে,CameraLiveStreamবৈশিষ্ট্যের উপযুক্ত জেনারেট Format স্ট্রিম কমান্ড ব্যবহার করুন।
আরটিএসপি
একটি RTSP স্ট্রীমের জন্য, CameraLiveStream বৈশিষ্ট্য কমান্ডের GenerateRtspStream কমান্ড স্ট্রীম URL এবং সম্পর্কিত 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" } }
তারপর ক্যামেরা লাইভ স্ট্রিম অ্যাক্সেস করতে স্ট্রিম URL ব্যবহার করুন:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
RTSP লাইভ স্ট্রিম ইউআরএল ক্লায়েন্টদের মধ্যে শেয়ার করা যাবে না। একটি স্ট্রিম URL একবারে শুধুমাত্র একটি ক্লায়েন্ট ব্যবহার করতে পারে৷ যদি একাধিক ক্লায়েন্ট একই ক্যামেরা থেকে একই সময়ে স্ট্রিম করতে চায়, তাহলে প্রতিটি স্বতন্ত্র ক্লায়েন্টের জন্য RTSP কমান্ড পাঠাতে হবে এবং প্রতিটি ক্লায়েন্টকে অবশ্যই নিজস্ব স্ট্রিম URL ব্যবহার করতে হবে।
একটি লাইভ স্ট্রিম প্রসারিত করুন
ক্যামেরা লাইভ স্ট্রিম সেশন শুধুমাত্র 5 মিনিটের জন্য বৈধ। আপনার যদি লাইভ স্ট্রিমের জীবনকাল বাড়ানোর প্রয়োজন হয়, CameraLiveStream এর জন্য স্ট্রীমিত স্ট্রিমের জন্য উপযুক্ত Extend Format Stream কমান্ডটি ব্যবহার করুন৷
আরটিএসপি
একটি RTSP স্ট্রিম প্রসারিত করতে, CameraLiveStream বৈশিষ্ট্য কমান্ডের 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" } }
লাইভ স্ট্রিম দেখা চালিয়ে যেতে এই নতুন মানগুলির সাথে স্ট্রিম URL আপডেট করুন:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
একটি লাইভ স্ট্রিম বন্ধ করুন
যে কোনো সময় আপনি আর একটি ক্যামেরা লাইভ স্ট্রিম ব্যবহার করছেন না, আপনার এটি বন্ধ করা উচিত এবং স্ট্রিমটি অবৈধ করা উচিত। এটি করতে, আপনার তৈরি করা স্ট্রিম ফর্ম্যাটের জন্যCameraLiveStreamবৈশিষ্ট্যের উপযুক্ত স্টপ Format স্ট্রিম কমান্ডটি ব্যবহার করুন।
আরটিএসপি
একটি RTSP স্ট্রিম বন্ধ করতে, CameraLiveStream বৈশিষ্ট্য কমান্ডের StopRtspStream কমান্ডের সাথে অবৈধ করতে টোকেনটি ব্যবহার করুন:
অনুরোধ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
প্রতিক্রিয়া
{}
ত্রুটি
এই ডিভাইসের ক্ষেত্রে নিম্নলিখিত ত্রুটি কোড(গুলি) ফেরত দেওয়া হতে পারে:
ভুল বার্তা | আরপিসি | সমস্যা সমাধান |
---|---|---|
ক্যামেরা ছবি ডাউনলোডের জন্য আর উপলব্ধ নেই৷ | DEADLINE_EXCEEDED | ইভেন্ট প্রকাশিত হওয়ার 30 সেকেন্ড পরে ইভেন্ট চিত্রের মেয়াদ শেষ হয়ে যায়। মেয়াদ শেষ হওয়ার আগে ছবিটি ডাউনলোড করতে ভুলবেন না। |
ইভেন্ট আইডি ক্যামেরার অন্তর্গত নয়। | FAILED_PRECONDITION | ক্যামেরা ইভেন্ট দ্বারা ফেরত সঠিক eventID ব্যবহার করুন। |
API ত্রুটি কোডের সম্পূর্ণ তালিকার জন্য API ত্রুটি কোড রেফারেন্স দেখুন।