
স্মার্ট ডিভাইস ম্যানেজমেন্ট (এসডিএম) এপিআই-তে সমস্ত পুরোনো নেস্ট ডোরবেল সমর্থিত। এই ডিভাইসটি ডোরবেল (DOORBELL) ডিভাইস টাইপ রিটার্ন করে:
sdm.devices.types.DOORBELL
গুগল নেস্ট ডোরবেল (লেগ্যাসি)-তে একটি ক্যামেরা রয়েছে, যা ক্যামেরা টাইপের ডিভাইস হিসেবেই কাজ করে।
বৈশিষ্ট্য
রেফারেন্স
নিম্নলিখিত বৈশিষ্ট্য, কমান্ড বা ইভেন্টগুলি এই ডিভাইসটির সাথে সম্পর্কিত:
| বৈশিষ্ট্য | বর্ণনা | কমান্ড | ইভেন্টগুলি |
|---|---|---|---|
| ক্যামেরা ইভেন্ট ইমেজ | এই বৈশিষ্ট্যটি এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত যা ইভেন্ট থেকে ইমেজ তৈরি করতে সমর্থন করে। | ছবি তৈরি করুন | |
| ক্যামেরার ছবি | এই বৈশিষ্ট্যটি ছবি তুলতে সক্ষম এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত। | ||
| ক্যামেরালাইভস্ট্রিম | এই বৈশিষ্ট্যটি লাইভ স্ট্রিমিং সমর্থনকারী যেকোনো ডিভাইসের অন্তর্ভুক্ত। | GenerateRtspStream ExtendRtspStream স্টপআরটিএসপিস্ট্রিম | |
| ক্যামেরামোশন | এই বৈশিষ্ট্যটি এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত যা গতি শনাক্তকরণ ইভেন্ট সমর্থন করে। | গতি | |
| ক্যামেরাপার্সন | এই বৈশিষ্ট্যটি এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত যা ব্যক্তি শনাক্তকরণ ইভেন্ট সমর্থন করে। | ব্যক্তি | |
| ক্যামেরাসাউন্ড | এই বৈশিষ্ট্যটি এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত যা শব্দ শনাক্তকরণ ইভেন্ট সমর্থন করে। | শব্দ | |
| ডোরবেলচিম | এই বৈশিষ্ট্যটি এমন যেকোনো ডিভাইসের অন্তর্ভুক্ত যা ডোরবেল চিম এবং সংশ্লিষ্ট প্রেস ইভেন্ট সমর্থন করে। | ঘণ্টা | |
| তথ্য | এই বৈশিষ্ট্যটি ডিভাইস-সম্পর্কিত তথ্যের জন্য যেকোনো ডিভাইসের অন্তর্ভুক্ত। |
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"
}
}
}ডোরবেল এবং ক্যামেরার ইভেন্টগুলি পরিচালনা করুন
একটি ডোরবেল ডিভাইস টাইপ থেকে নিম্নলিখিত ইভেন্টগুলি ট্রিগার হতে পারে:| প্রকার | উপাদান | বর্ণনা |
|---|---|---|
| অনুষ্ঠান | CameraMotion বৈশিষ্ট্যের মোশন ইভেন্ট | ক্যামেরায় গতি শনাক্ত করা হয়েছে। |
| অনুষ্ঠান | CameraPerson বৈশিষ্ট্যের ব্যক্তি ইভেন্ট | ক্যামেরায় একজন ব্যক্তিকে শনাক্ত করা হয়েছে। |
| অনুষ্ঠান | CameraSound বৈশিষ্ট্যের সাউন্ড ইভেন্ট | ক্যামেরায় শব্দ শনাক্ত করা হয়েছে। |
| অনুষ্ঠান | DoorbellChime বৈশিষ্ট্যের Chime ইভেন্ট | কলিং বেল টিপা হয়েছে। |
পেলোড
{
"eventId" : "3e7b7488-09ad-41f5-8381-165d5a589759",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"events" : {
"sdm.devices.events.DoorbellChime.Chime" : {
"eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"eventId" : "rjn57L02poi7gTFbOCYg0ocaKz..."
}
}
}
"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" : "nrbIeLo2lIzhuzLdJD7ARyfrsS..."
}
}
প্রতিক্রিয়া
{
"results" : {
"url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
"token" : "g.0.eventToken"
}
}
ক্যামেরার একটি ছবি ডাউনলোড করুন
ক্যামেরার ছবিটি ডাউনলোড করতে, HTTP Authorization হেডারে 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 নির্বাচন করা হয়।
দেখুন ক্যামেরার ছবি ছবির বৈশিষ্ট্য সম্পর্কিত তথ্যের জন্য ট্রেইট।
একটি লাইভ স্ট্রিম অ্যাক্সেস করুন
ক্যামেরা থেকে লাইভ স্ট্রিম অ্যাক্সেস করা যাবে। এই ডিভাইসের জন্য নিম্নলিখিত স্ট্রিম ফরম্যাটগুলো সমর্থিত:
- আরটিএসপি
ক্যামেরা এবং সমর্থিত স্ট্রিম ফরম্যাটের সম্পূর্ণ তালিকার জন্য, সমর্থিত ডিভাইসসমূহ দেখুন।
লাইভ স্ট্রিম অ্যাক্সেস করতে, উপযুক্ত Generate Format Stream কমান্ডটি ব্যবহার করুন।ক্যামেরালাইভস্ট্রিমবৈশিষ্ট্য।
আরটিএসপি
একটি 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"
}
}
তারপর ক্যামেরা লাইভ স্ট্রিম অ্যাক্সেস করতে স্ট্রিম ইউআরএলটি ব্যবহার করুন:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
RTSP লাইভ স্ট্রিম URL ক্লায়েন্টদের মধ্যে শেয়ার করা যায় না। একটি স্ট্রিম URL একবারে শুধুমাত্র একটি ক্লায়েন্ট ব্যবহার করতে পারে। যদি একাধিক ক্লায়েন্ট একই সময়ে একই ক্যামেরা থেকে স্ট্রিম করতে চায়, তবে প্রতিটি ক্লায়েন্টের জন্য আলাদাভাবে RTSP কমান্ড পাঠাতে হবে এবং প্রত্যেক ক্লায়েন্টকে তার নিজস্ব স্ট্রিম URL ব্যবহার করতে হবে।
একটি লাইভ স্ট্রিম প্রসারিত করুন
ক্যামেরা লাইভ স্ট্রিম সেশনগুলো শুধুমাত্র ৫ মিনিটের জন্য বৈধ থাকে। যদি আপনি কোনো লাইভ স্ট্রিমের মেয়াদ বাড়াতে চান, তাহলে উপযুক্ত Extend Format Stream কমান্ডটি ব্যবহার করুন। ক্যামেরালাইভস্ট্রিম আপনার তৈরি করা স্ট্রিম ফরম্যাটের জন্য বৈশিষ্ট্য।
আরটিএসপি
একটি RTSP স্ট্রিম প্রসারিত করতে, নতুন streamExtensionToken এবং streamToken মানগুলি পেতে CameraLiveStream ট্রেইট কমান্ডের ExtendRtspStream কমান্ডটি ব্যবহার করুন:
অনুরোধ
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
একটি লাইভ স্ট্রিম বন্ধ করুন
যখনই আপনি ক্যামেরা লাইভ স্ট্রিম ব্যবহার করা বন্ধ করবেন, তখন সেটি বন্ধ করে স্ট্রিমটি বাতিল করে দিন। এটি করার জন্য, উপযুক্ত Stop Format Stream কমান্ডটি ব্যবহার করুন।ক্যামেরালাইভস্ট্রিমআপনার তৈরি করা স্ট্রিম ফরম্যাটের জন্য বৈশিষ্ট্য।
আরটিএসপি
একটি RTSP স্ট্রিম বন্ধ করতে, CameraLiveStream ট্রেইট কমান্ডের StopRtspStream কমান্ড ব্যবহার করে টোকেনটি অবৈধ করুন:
অনুরোধ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
প্রতিক্রিয়া
{}
ত্রুটি
এই ডিভাইসটির ক্ষেত্রে নিম্নলিখিত ত্রুটি কোড(গুলি) প্রদর্শিত হতে পারে:
| ত্রুটি বার্তা | আরপিসি | সমস্যা সমাধান |
|---|---|---|
| ক্যামেরার ছবি এখন আর ডাউনলোড করা যাচ্ছে না। | DEADLINE_EXCEEDED | ইভেন্টটি প্রকাশিত হওয়ার ৩০ সেকেন্ড পর ইভেন্টের ছবিগুলোর মেয়াদ শেষ হয়ে যায়। মেয়াদ শেষ হওয়ার আগেই ছবিটি ডাউনলোড করে নিন। |
| ইভেন্ট আইডিটি ক্যামেরার নয়। | FAILED_PRECONDITION | ক্যামেরা ইভেন্ট থেকে প্রাপ্ত সঠিক eventID ব্যবহার করুন। |
এপিআই ত্রুটি কোডগুলির সম্পূর্ণ তালিকার জন্য এপিআই ত্রুটি কোড রেফারেন্স দেখুন।