نمایش دادن

-placeholder55 l10n- - l10n-placeholder67 -
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 این ویژگی متعلق به هر دستگاهی است که از رویدادهای شناسایی افراد پشتیبانی می کند. شخص
CameraSound این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص صدا پشتیبانی می کند. صدا
اطلاعات این ویژگی به هر وسیله ای برای اطلاعات مربوط به دستگاه تعلق دارد.

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" : "72a61185-b9eb-48a7-983f-b9ab73d9a828",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "hriaD9wCUzw4CCK3O3lkBK_5Df...", } } } "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" : "p4e-4iUFeRYZ_Mr_vmLaO9kmXx..."
  }
}

واکنش

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

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

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

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 برای فرمت استریم 289 استفاده کنید.

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 مراجعه کنید.