همه Nest Doorbells های قدیمی در API مدیریت دستگاه هوشمند (SDM) پشتیبانی می شوند. این دستگاه یک نوع دستگاه زنگ در را برمی گرداند:
sdm.devices.types.DOORBELL
Google Nest Doorbell (میراث) دارای یک دوربین است که عملکردی مشابه یک نوع دستگاه دوربین دارد.
صفات
مرجع
صفات، دستورات یا رویدادهای زیر مربوط به این دستگاه است:
صفت | توضیحات | دستورات | رویدادها |
---|---|---|---|
CameraEventImage | این ویژگی متعلق به هر دستگاهی است که از تولید تصاویر از رویدادها پشتیبانی می کند. | GenerateImage | |
CameraImage | این ویژگی متعلق به هر دستگاهی است که از گرفتن عکس پشتیبانی می کند. | ||
CameraLiveStream | این ویژگی متعلق به هر دستگاهی است که از پخش زنده پشتیبانی می کند. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص حرکت پشتیبانی می کند. | حرکت | |
CameraPerson | این ویژگی متعلق به هر دستگاهی است که از رویدادهای شناسایی افراد پشتیبانی می کند. | شخص | |
صدای دوربین | این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص صدا پشتیبانی می کند. | صدا | |
زنگ در | این ویژگی متعلق به هر دستگاهی است که از صدای زنگ در و رویدادهای مطبوعاتی مرتبط پشتیبانی می کند. | صدای زنگ | |
اطلاعات | این ویژگی به هر وسیله ای برای اطلاعات مربوط به دستگاه تعلق دارد. |
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" : ["AAC"], "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" } } }
رویدادهای زنگ در و دوربین را مدیریت کنید
رویدادهای زیر ممکن است از نوع دستگاه DOORBELL ایجاد شوند:تایپ کنید | عنصر | توضیحات |
---|---|---|
رویداد | رویداد حرکتی از ویژگی CameraMotion | حرکت توسط دوربین تشخیص داده شده است. |
رویداد | رویداد شخص از ویژگی CameraPerson | یک نفر توسط دوربین شناسایی شده است. |
رویداد | رویداد صوتی ویژگی CameraSound | صدا توسط دوربین شناسایی شده است. |
رویداد | رویداد زنگ از ویژگی DoorbellChime | زنگ در زده شده است. |
بار
{ "eventId" : "8f436b85-4115-4a1e-a858-00642c00c019",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "HBi5V_Y26tbJe_dU5Vt44d6WYz..." } } } "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" : "lMGG1ZzHBpHsY0C-TeSMmXBmPV..."
}
}
پاسخ
{ "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 مراجعه کنید.