يمكن استخدام جميع أجراس Nest Doorbell القديمة في واجهة برمجة التطبيقات Smart Device Management (SDM). يعرض هذا الجهاز نوع جهاز جرس الباب:
sdm.devices.types.DOORBELL
يتضمّن جرس Google Nest Doorbell (الإصدار القديم) كاميرا تعمل تمامًا مثل نوع جهاز "كاميرا Google".
السمات
مَراجع
السمات أو الأوامر أو الأحداث التالية ذات صلة بهذا الجهاز:
السمة | الوصف | الطلبات الصوتية | فعاليات |
---|---|---|---|
CameraEventImage | تنتمي هذه السمة إلى أي جهاز يتيح إنشاء الصور من الأحداث. | GenerateImage | |
CameraImage | تنتمي هذه السمة إلى أي جهاز يتيح التقاط الصور. | ||
CameraLiveStream | تنتمي هذه السمة إلى أي جهاز يتيح البث المباشر. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | تنتمي هذه السمة إلى أي جهاز يتيح استخدام أحداث كشف الحركة. | حركة | |
CameraPerson | تنتمي هذه السمة إلى أي جهاز يتيح تفعيل أحداث رصد الأشخاص. | الشخص | |
CameraSound | تنتمي هذه السمة إلى أي جهاز يتيح تفعيل أحداث رصد الصوت. | الصوت | |
DoorbellChime | تنتمي هذه السمة إلى أي جهاز متوافق مع رنين جرس الباب والأحداث الصحفية ذات الصلة. | صوت | |
معلومات | تنتمي هذه السمة إلى أي جهاز يقدّم المعلومات المتعلقة بالجهاز. |
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" } } }
التعامل مع أحداث جرس الباب والكاميرا
قد يتم تشغيل الأحداث التالية باستخدام نوع جهاز جرس الباب :Type | عنصر | الوصف |
---|---|---|
حدث | حدث Motion لسمة CameraMotion | رصدت الكاميرا حركة. |
حدث | حدث شخص لسمة Cameraperson | رصدت الكاميرا شخصًا. |
حدث | حدث الصوت لسمة CameraSound | رصدت الكاميرا الصوت. |
حدث | الحدث Chime من سمة DoorbellChime | تم الضغط على جرس الباب. |
المحتوى
{ "eventId" : "119bfb86-3c27-4e12-ba3c-b35177badda0",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "i_MVBkcoLJkn7d6J1GIhbq5M5m..." } } } "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" : "3T7wSCdxnQKNnna6Yxg4DXlLFW..."
}
}
الإجابة
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
تنزيل صورة كاميرا
يمكنك إجراء استدعاء GET لـ url
من استجابة الأمر
GenerateImage،
باستخدام token
في عنوان تفويض HTTP مع التفويض الأساسي،
لتنزيل صورة الكاميرا:
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
للحصول على قائمة كاملة بالكاميرات وتنسيقات البث المتوافقة، يُرجى الاطّلاع على الأجهزة المتوافقة.
للوصول إلى بث مباشر، استخدِم الأمر "إنشاءFormatبث" المناسب للسمة 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 دقائق فقط. إذا أردت إطالة مدة البث المباشر، استخدِم أمر ExtendFormatStream (البث) المناسب ضمن سمة 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
إيقاف بث مباشر
عندما تتوقف عن استخدام البث المباشر للكاميرا، يجب إيقافه وإلغاء صلاحية البث. لإجراء ذلك، استخدِم الأمر "إيقاف"Format"البث" المناسب للسمة بث مباشر للكاميرا المناسب لتنسيق مجموعة البث الذي أنشأته.
RTSP
لإيقاف بث RTSP، استخدِم الرمز المميّز لإلغاء الصلاحية باستخدام الأمر StopRtspStream لأمر سمة CameraLiveStream:
الطلب
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
الإجابة
{}
الأخطاء
قد يتم عرض رموز الخطأ التالية في ما يتعلق بهذا الجهاز:
رسالة الخطأ | متوسط عائد النقرة | تحديد المشاكل وحلّها |
---|---|---|
لم تعُد صورة الكاميرا متاحة للتنزيل. | DEADLINE_EXCEEDED |
تنتهي صلاحية صور الحدث بعد 30 ثانية من نشر الحدث. احرص على تنزيل الصورة قبل انتهاء الصلاحية. |
لا ينتمي رقم تعريف الحدث إلى الكاميرا. | FAILED_PRECONDITION |
استخدِم القيمة eventID الصحيحة التي يعرضها حدث الكاميرا. |
ويمكنك الاطّلاع على مرجع رموز الأخطاء في واجهة برمجة التطبيقات للاطّلاع على القائمة الكاملة لرموز الأخطاء في واجهة برمجة التطبيقات.