
همه «زنگهای در Nest» قدیمی در Smart Device Management (SDM) API پشتیبانی میشوند. این دستگاه نوع دستگاه «زنگ در» را برمیگرداند:
sdm.devices.types.DOORBELL
Google Nest Doorbell (قدیمی) دارای دوربینی است که عملکرد آن مشابه نوع دستگاه CAMERA است.
ویژگیها
Reference
ویژگیها، فرمانها، یا رویدادهای زیر با این دستگاه مرتبط است:
| ویژگی | شرح | فرمان | رویدادها |
|---|---|---|---|
| CameraEventImage | این مشخصه به هر دستگاهی که از تولید تصویر از رویدادها پشتیبانی میکند تعلق دارد. | GenerateImage | |
| CameraImage | این مشخصه به هر دستگاهی که از گرفتن تصویر پشتیبانی میکند تعلق دارد. | ||
| CameraLiveStream | این مشخصه به هر دستگاهی که از جاریسازی زنده پشتیبانی میکند تعلق دارد. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
| CameraMotion | این مشخصه به هر دستگاهی که از رویدادهای تشخیص حرکت پشتیبانی میکند تعلق دارد. | حرکت | |
| CameraPerson | این مشخصه به هر دستگاهی که از رویدادهای تشخیص افراد پشتیبانی میکند تعلق دارد. | شخص | |
| CameraSound | این مشخصه به هر دستگاهی که از رویدادهای تشخیص صدا پشتیبانی میکند تعلق دارد. | صدا | |
| DoorbellChime | این مشخصه به هر دستگاهی که از صدای زنگ در و رویدادهای فشار مربوطه پشتیبانی میکند تعلق دارد. | Chime | |
| اطلاعات | این مشخصه به هر دستگاهی برای اطلاعات مربوط به دستگاه تعلق دارد. |
(قالب) 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" : ["OPUS"],
"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 | زنگ در فشرده شد. |
پایهبار
{
"eventId" : "48731645-50e1-4255-9a1e-d940fe73c0f4",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"events" : {
"sdm.devices.events.DoorbellChime.Chime" : {
"eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"eventId" : "2DjjIPmupNAnMx1uLSXHtf-BV-..."
}
}
}
"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" : "CrPM4BNK0wdPpoSAsI_VyBJ0Pq..."
}
}
پاسخ
{
"results" : {
"url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
"token" : "g.0.eventToken"
}
}
بارگیری تصویر دوربین
بااستفاده از token در سرایند «مجوز HTTP» با مجوز «پایه»،
تماس GET با url از پاسخ فرمان
GenerateImage برقرار کنید تا
تصویر دوربین را بارگیری کنید:
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محدودیتهای دیگر برای نشانی وب بارگیری اعمال میشود:
- اگر هر دو پارامتر در نشانی وب ارائه شده باشند، از
widthاستفاده میشود وheightنادیده گرفته میشود. - اگر هیچکدام از پارامترها در نشانی وب ارائه نشده باشد، مقدار پیشفرض ۴۸۰ برای
widthانتخاب میشود.
برای کسب اطلاعات درباره ویژگیهای تصویر، ویژگی CameraImage را ببینید.
دسترسی به جاریسازی زنده
میتوان به جاریسازی زنده از دوربین دسترسی داشت. قالبهای جاریسازی زیر برای این دستگاه پشتیبانی میشوند:
- RTSP
برای فهرست کامل دوربینها و قالبهای جاریسازی پشتیبانیشده، به دستگاههای پشتیبانیشده مراجعه کنید.
برای دسترسی به جاریسازی زنده، از فرمان GenerateFormatStream مربوط به CameraLiveStream استفاده کنید.
RTSP
برای جاریسازی RTSP، فرمان
GenerateRtspStream از فرمان ویژگی CameraLiveStream
نشانی وب جاریسازی و 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 نمیتوانند بین مشتریان همرسانی شوند. نشانی وب جاریسازی را فقط یک مشتری میتواند در هر زمان استفاده کند. اگر چند کارخواه بخواهند همزمان از یک دوربین جاریسازی کنند، باید دستورات RTSP برای هر کارخواه جداگانه ارسال شود و هر کارخواه جداگانه باید از نشانی وب جاریسازی خود استفاده کند.
تمدید کردن جاریسازی زنده
جلسات جاریسازی زنده دوربین فقط ۵ دقیقه معتبر هستند. اگر نیاز دارید طول عمر یک جاریسازی زنده را افزایش دهید، از فرمان مناسب «افزایشFormatجاریسازی» در CameraLiveStream trait برای قالب جاریسازی که تولید کردهاید استفاده کنید.
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"
}
}
نشانی وب جاریسازی را با این مقادیر جدید بهروز کنید تا به تماشای جاریسازی زنده ادامه دهید:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
توقف جاریسازی زنده
هر زمان که دیگر از جاریسازی زنده دوربین استفاده نمیکنید، باید آن را متوقف کنید و جاریسازی را نامعتبر کنید. برای انجام این کار، از فرمان مناسب StopFormatStream از 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 |
تصاویر رویداد ۳۰ ثانیه پساز انتشار رویداد منقضی میشوند. حتماً تصویر را قبلاز منقضی شدن بارگیری کنید. |
| شناسه رویداد متعلق به دوربین نیست. | FAILED_PRECONDITION |
از eventID صحیح برگشتدادهشده توسط رویداد دوربین استفاده کنید. |
برای فهرست کامل کدهای خطای میانای برنامهسازی کاربردی، مرجع کد خطای میانای برنامهسازی کاربردی را ببینید.