প্রদর্শন

নেস্ট হাব ম্যাক্স

Google Nest Hub Max ডিসপ্লে স্মার্ট ডিভাইস ম্যানেজমেন্ট (SDM) API-এ সমর্থিত। এই ডিভাইসটি একটি ডিভাইস প্রকারের DISPLAY প্রদান করে:

sdm.devices.types.DISPLAY

Google Nest Hub Max-এ একটি ক্যামেরা রয়েছে, যেটি CAMERA-এর ডিভাইসের মতোই কাজ করে।

বৈশিষ্ট্য

রেফারেন্স

নিম্নলিখিত বৈশিষ্ট্য, আদেশ বা ইভেন্টগুলি এই ডিভাইসের সাথে সম্পর্কিত:

বৈশিষ্ট্য বর্ণনা কমান্ড ঘটনা
ক্যামেরা ইভেন্ট ইমেজ এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ইভেন্ট থেকে ছবি তৈরি করতে সহায়তা করে। ইমেজ তৈরি করুন
ক্যামেরা ইমেজ এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ছবি তোলা সমর্থন করে।
ক্যামেরালাইভস্ট্রিম এই বৈশিষ্ট্যটি লাইভ স্ট্রিমিং সমর্থন করে এমন যেকোনো ডিভাইসের অন্তর্গত। জেনারেটআরটিএসপিস্ট্রিম
এক্সটেনডআরটিএসপিস্ট্রিম
স্টপআরটিএসপিস্ট্রিম
ক্যামেরা মোশন এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা গতি সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ গতি
ক্যামেরাপার্সন এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা ব্যক্তি সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ ব্যক্তি
ক্যামেরা সাউন্ড এই বৈশিষ্ট্যটি যে কোনও ডিভাইসের অন্তর্গত যা শব্দ সনাক্তকরণ ইভেন্টগুলিকে সমর্থন করে৷ শব্দ
তথ্য ডিভাইস-সম্পর্কিত তথ্যের জন্য এই বৈশিষ্ট্যটি যেকোনো ডিভাইসের অন্তর্গত।

JSON

একটি GET প্রতিক্রিয়াতে একটি বৈশিষ্ট্যের অনুপস্থিতি নির্দেশ করে যে বৈশিষ্ট্য বা বৈশিষ্ট্যটি বর্তমানে ডিভাইসের জন্য উপলব্ধ নয়৷ আরও তথ্যের জন্য ডিভাইসের ধরন দেখুন।

{
  "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 ডিভাইস প্রকার থেকে ট্রিগার হতে পারে:

টাইপ উপাদান বর্ণনা
ঘটনা ক্যামেরামোশন বৈশিষ্ট্যের মোশন ইভেন্ট গতি ক্যামেরা দ্বারা সনাক্ত করা হয়েছে.
ঘটনা ক্যামেরাপারসন বৈশিষ্ট্যের ব্যক্তি ঘটনা ক্যামেরায় একজনকে শনাক্ত করা হয়েছে।
ঘটনা ক্যামেরাসাউন্ড বৈশিষ্ট্যের শব্দ ইভেন্ট ক্যামেরায় শব্দ শনাক্ত করা হয়েছে।
উদাহরণস্বরূপ, এখানে ক্যামেরা গতি শনাক্ত করেছে:

পেলোড

{
  "eventId" : "aedf6813-6b9e-465a-a42a-4358b8b6161f",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "-o1dVlAEusEUetEQB5hzQTXSAr...", } } } "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" : "Wh6SNjOxmdq1RNCDrK_ANe2rd0..."
  }
}

প্রতিক্রিয়া

{
  "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-এর একটি ডিফল্ট মান বেছে নেওয়া হয়।

দেখুন ক্যামেরা ইমেজ চিত্র বৈশিষ্ট্য তথ্যের জন্য বৈশিষ্ট্য.

একটি লাইভ স্ট্রিম অ্যাক্সেস করুন

একটি ক্যামেরা থেকে লাইভ স্ট্রিম অ্যাক্সেস করা যেতে পারে. এই ডিভাইসের জন্য নিম্নলিখিত স্ট্রিম ফর্ম্যাটগুলি সমর্থিত:

  • আরটিএসপি

ক্যামেরা এবং সমর্থিত স্ট্রিম ফর্ম্যাটের সম্পূর্ণ তালিকার জন্য, সমর্থিত ডিভাইসগুলি দেখুন।

একটি লাইভ স্ট্রিম অ্যাক্সেস করতে, উপযুক্ত জেনারেট 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 মিনিটের জন্য বৈধ। আপনার যদি লাইভ স্ট্রিমের জীবনকাল বাড়ানোর প্রয়োজন হয়, তাহলে উপযুক্ত এক্সটেন্ড Format স্ট্রিম কমান্ড ব্যবহার করুন ক্যামেরালাইভস্ট্রিম আপনার তৈরি করা স্ট্রিম বিন্যাসের বৈশিষ্ট্য।

আরটিএসপি

একটি 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

একটি লাইভ স্ট্রিম বন্ধ করুন

যে কোনো সময় আপনি আর একটি ক্যামেরা লাইভ স্ট্রিম ব্যবহার করছেন না, আপনার এটি বন্ধ করা উচিত এবং স্ট্রিমটি অবৈধ করা উচিত। এটি করার জন্য, এর উপযুক্ত স্টপ 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 ত্রুটি কোড রেফারেন্স দেখুন।