
نمایشگر Google Nest Hub Max در رابط برنامهنویسی کاربردی (API) مدیریت دستگاه هوشمند (SDM) پشتیبانی میشود. این دستگاه نوع نمایشگر (DISPLAY) دستگاه را برمیگرداند:
sdm.devices.types.DISPLAY
گوگل نست هاب مکس دارای یک دوربین است که عملکردی مشابه دوربینهای معمولی دارد.
صفات
مرجع
ویژگیها، دستورات یا رویدادهای زیر مربوط به این دستگاه هستند:
| صفت | توضیحات | دستورات | رویدادها |
|---|---|---|---|
| تصویر رویداد دوربین | این ویژگی متعلق به هر دستگاهی است که از تولید تصاویر از رویدادها پشتیبانی میکند. | تولید تصویر | |
| دوربین ایمیج | این ویژگی متعلق به هر دستگاهی است که از گرفتن عکس پشتیبانی میکند. | ||
| پخش زنده دوربین | این ویژگی متعلق به هر دستگاهی است که از پخش زنده پشتیبانی میکند. | تولیدRtspStream گسترش RtspStream استریم متوقف شود | |
| دوربین موشن | این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص حرکت پشتیبانی میکند. | حرکت | |
| دوربین | این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص شخص پشتیبانی میکند. | شخص | |
| دوربینصدا | این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص صدا پشتیبانی میکند. | صدا | |
| اطلاعات | این ویژگی به هر دستگاهی برای اطلاعات مربوط به دستگاه تعلق دارد. |
جیسون
عدم وجود یک ویژگی (trait) در پاسخ GET نشان میدهد که آن ویژگی یا قابلیت در حال حاضر برای دستگاه در دسترس نیست. برای اطلاعات بیشتر به بخش انواع دستگاه (Device types) مراجعه کنید.
{
"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 | حرکت توسط دوربین تشخیص داده شده است. |
| رویداد | رویداد Person از ویژگی CameraPerson | یک نفر توسط دوربین شناسایی شده است. |
| رویداد | رویداد صدا از ویژگی CameraSound | صدا توسط دوربین شناسایی شده است. |
بار مفید
{
"eventId" : "e78aba4f-b8d3-4df6-b224-066c6ea345b2",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"events" : {
"sdm.devices.events.CameraMotion.Motion" : {
"eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"eventId" : "4d026q2_N_TkClOUn3Myd9yjNu...",
}
}
}
"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" : "xj_A0qp0TlpfQsIVYdzeeb0kzb..."
}
}
پاسخ
{
"results" : {
"url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
"token" : "g.0.eventToken"
}
}
دانلود تصویر دوربین
با استفاده از token موجود در هدر HTTP Authorization با مجوز Basic، از پاسخ دستور GenerateImage یک فراخوانی GET به url انجام دهید تا تصویر دوربین دانلود شود:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1... از پارامترهای کوئری width یا height برای سفارشیسازی وضوح تصویر دانلود شده استفاده کنید. فقط یکی از این پارامترها باید مشخص شود. پارامتر دیگر به طور خودکار با توجه به نسبت ابعاد دوربین مقیاسبندی میشود.
برای مثال، اگر نسبت تصویر دوربین ۴:۳ باشد، برای دانلود تصویر دوربین با وضوح ۴۸۰ در ۳۶۰، عرض یا ارتفاع را مشخص کنید:
عرض
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انتخاب میشود.
ببینید دوربین ایمیج ویژگی برای اطلاعات در مورد ویژگیهای تصویر.
دسترسی به پخش زنده
پخش زنده از دوربین قابل دسترسی است. فرمتهای پخش زیر برای این دستگاه پشتیبانی میشوند:
- آر تی اس پی
برای مشاهده لیست کامل دوربینها و فرمتهای استریم پشتیبانیشده، به دستگاههای پشتیبانیشده مراجعه کنید.
برای دسترسی به یک پخش زنده، از دستور Generate Format Stream مربوط بهپخش زنده دوربینصفت.
آر تی اس پی
برای یک جریان RTSP، دستور GenerateRtspStream از دستور CameraLiveStream trait، آدرس اینترنتی جریان و 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
URL های پخش زنده RTSP را نمیتوان بین کلاینتها به اشتراک گذاشت. یک URL پخش زنده فقط میتواند توسط یک کلاینت در یک زمان استفاده شود. اگر چندین کلاینت بخواهند همزمان از یک دوربین پخش زنده داشته باشند، دستورات RTSP باید برای هر کلاینت جداگانه ارسال شود و هر کلاینت جداگانه باید از URL پخش جریانی خود استفاده کند.
پخش زنده را گسترش دهید
جلسات پخش زنده دوربین فقط به مدت ۵ دقیقه معتبر هستند. اگر نیاز به تمدید طول عمر یک پخش زنده دارید، از دستور Extend Format Stream مناسب استفاده کنید. پخش زنده دوربین ویژگی مربوط به قالب جریانی که ایجاد کردهاید.
آر تی اس پی
برای گسترش یک جریان RTSP، از دستور ExtendRtspStream از دستور CameraLiveStream trait برای دریافت مقادیر جدید 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"
}
}
برای ادامه مشاهده پخش زنده، آدرس اینترنتی پخش زنده را با این مقادیر جدید بهروزرسانی کنید:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
توقف پخش زنده
هر زمان که دیگر از پخش زنده دوربین استفاده نمیکنید، باید آن را متوقف کرده و پخش را لغو کنید. برای انجام این کار، از دستور مناسب Stop Format Stream درپخش زنده دوربینویژگی مربوط به قالب جریانی که ایجاد کردهاید.
آر تی اس پی
برای متوقف کردن یک جریان RTSP، از توکن برای نامعتبر کردن با دستور StopRtspStream از دستور trait CameraLiveStream استفاده کنید:
درخواست
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
پاسخ
{}
خطاها
کد(های) خطای زیر ممکن است در رابطه با این دستگاه نمایش داده شوند:
| پیام خطا | آر پی سی | عیبیابی |
|---|---|---|
| تصویر دوربین دیگر برای دانلود در دسترس نیست. | DEADLINE_EXCEEDED | تصاویر رویداد ۳۰ ثانیه پس از انتشار رویداد منقضی میشوند. حتماً قبل از انقضا، تصویر را دانلود کنید. |
| شناسه رویداد متعلق به دوربین نیست. | FAILED_PRECONDITION | از eventID صحیح برگردانده شده توسط رویداد دوربین استفاده کنید. |
برای مشاهده لیست کامل کدهای خطای API به مرجع کدهای خطای API مراجعه کنید.