نمایش دادن

Nest Hub Max

نمایشگر Google Nest Hub Max در API مدیریت دستگاه هوشمند (SDM) پشتیبانی می‌شود. این دستگاه نوع دستگاه DISPLAY را برمی گرداند:

sdm.devices.types.DISPLAY

Google Nest Hub Max دارای یک دوربین است که عملکردی مشابه نوع دوربین دوربین دارد.

صفات

مرجع

صفات، دستورات یا رویدادهای زیر مربوط به این دستگاه است:

صفت توضیحات دستورات رویدادها
CameraEventImage این ویژگی متعلق به هر دستگاهی است که از تولید تصاویر از رویدادها پشتیبانی می کند. GenerateImage
CameraImage این ویژگی متعلق به هر دستگاهی است که از گرفتن عکس پشتیبانی می کند.
CameraLiveStream این ویژگی متعلق به هر دستگاهی است که از پخش زنده پشتیبانی می کند. GenerateRtspStream
ExtendRtspStream
StopRtspStream
CameraMotion این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص حرکت پشتیبانی می کند. حرکت
CameraPerson این ویژگی متعلق به هر دستگاهی است که از رویدادهای شناسایی افراد پشتیبانی می کند. شخص
صدای دوربین این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص صدا پشتیبانی می کند. صدا
اطلاعات این ویژگی به هر وسیله ای برای اطلاعات مربوط به دستگاه تعلق دارد.

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 فعال شوند:

تایپ کنید عنصر توضیحات
رویداد رویداد حرکتی از ویژگی CameraMotion حرکت توسط دوربین تشخیص داده شده است.
رویداد رویداد شخص از ویژگی CameraPerson یک نفر توسط دوربین شناسایی شده است.
رویداد رویداد صوتی ویژگی CameraSound صدا توسط دوربین شناسایی شده است.
به عنوان مثال، در اینجا دوربین حرکت را تشخیص داده است:

بار

{
  "eventId" : "93779326-2fd6-4623-9e73-7ef91fd85b2c",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "jwatvkU6ucTeRHrDJ0FZP32eTF...", } } } "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" : "jYhiD3u7JPZGER8u9B4KfuEUYm..."
  }
}

پاسخ

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

دانلود تصویر دوربین

برای بارگیری تصویر دوربین، با استفاده از token در سربرگ مجوز HTTP با مجوز اولیه، از یک پاسخ فرمان GenerateImage با url تماس بگیرید:

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...

از پارامترهای width یا height برای سفارشی کردن وضوح تصویر دانلود شده استفاده کنید. فقط یکی از این پارامترها باید مشخص شود. پارامتر دیگر به طور خودکار با توجه به نسبت تصویر دوربین مقیاس بندی می شود.

به عنوان مثال، اگر نسبت تصویر دوربین 4:3 است، برای دانلود تصویر دوربین با وضوح 480 در 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 ارائه نشده باشد، مقدار پیش فرض 480 برای width انتخاب می شود.

را ببینید CameraImage ویژگی برای اطلاعات در مورد ویژگی های تصویر.

به یک جریان زنده دسترسی داشته باشید

پخش زنده از یک دوربین قابل دسترسی است. فرمت‌های جریان زیر برای این دستگاه پشتیبانی می‌شوند:

  • RTSP

برای فهرست کامل دوربین‌ها و قالب‌های پخش جریانی پشتیبانی‌شده، به دستگاه‌های پشتیبانی‌شده مراجعه کنید.

برای دسترسی به یک جریان زنده، از دستور مناسب Generate Format Stream استفاده کنیدCameraLiveStreamصفت

RTSP

برای یک جریان RTSP، دستور GenerateRtspStream از فرمان ویژگی CameraLiveStream 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

URL های پخش زنده RTSP را نمی توان بین مشتریان به اشتراک گذاشت. URL استریم فقط می تواند توسط یک مشتری در یک زمان استفاده شود. اگر چندین مشتری بخواهند همزمان از یک دوربین استریم کنند، دستورات RTSP باید برای هر کلاینت جداگانه ارسال شود و هر کلاینت جداگانه باید از URL استریم خود استفاده کند.

پخش جریانی زنده را گسترش دهید

جلسات پخش زنده دوربین فقط 5 دقیقه معتبر است. اگر می‌خواهید طول عمر پخش زنده را افزایش دهید، از دستور مناسب Extend Format Stream استفاده کنید. CameraLiveStream ویژگی برای قالب جریانی که ایجاد کردید.

RTSP

برای گسترش یک جریان RTSP، از دستور ExtendRtspStream از فرمان ویژگی CameraLiveStream استفاده کنید تا مقادیر جدید 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

پخش زنده را متوقف کنید

هر زمانی که دیگر از پخش زنده دوربین استفاده نمی‌کنید، باید آن را متوقف کرده و جریان را باطل کنید. برای انجام این کار، از دستور Stop Format Stream مناسب استفاده کنیدCameraLiveStreamویژگی برای قالب جریانی که ایجاد کردید.

RTSP

برای متوقف کردن یک جریان RTSP، از نشانه استفاده کنید تا با دستور StopRtspStream فرمان ویژگی CameraLiveStream را باطل کنید:

درخواست کنید

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
  "params" : {
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
  }
}

پاسخ

{}

خطاها

ممکن است کد(های) خطای زیر در رابطه با این دستگاه برگردانده شود:

پیغام خطا RPC عیب یابی
تصویر دوربین دیگر برای دانلود در دسترس نیست. DEADLINE_EXCEEDED تصاویر رویداد 30 ثانیه پس از انتشار رویداد منقضی می شوند. حتما قبل از انقضا تصویر را دانلود کنید.
شناسه رویداد به دوربین تعلق ندارد. FAILED_PRECONDITION از eventID صحیحی که توسط رویداد دوربین برگردانده شده است استفاده کنید.

برای لیست کامل کدهای خطای API به مرجع کد خطای API مراجعه کنید.