جرس باب (قديم)

Nest Hello

يمكن استخدام جميع أجراس 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 الصحيحة التي يعرضها حدث الكاميرا.

ويمكنك الاطّلاع على مرجع رموز الأخطاء في واجهة برمجة التطبيقات للاطّلاع على القائمة الكاملة لرموز الأخطاء في واجهة برمجة التطبيقات.