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

جهاز Nest Hello

يمكن استخدام جميع أجهزة Nest Doorbell القديمة في واجهة برمجة التطبيقات لإدارة الأجهزة الذكية (SDM). يرسل هذا الجهاز نوع جهاز جرس الباب:

sdm.devices.types.DOORBELL

يتميز جرس Google Nest Doorbell (القديم) بكاميرا تعمل الوظيفة نفسها. الكاميرا.

الصفات

مَراجع

السمات أو الأوامر أو الأحداث التالية مرتبطة بهذا الجهاز:

سمةالوصفالطلبات الصوتيةفعاليات
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"
    }
  }
}

التعامل مع أحداث جرس الباب والكاميرا

قد يتم تشغيل الأحداث التالية من نوع جهاز DOORBELL :

النوع العنصر الوصف
الحدث حدث الحركة في سمة CameraMotion تم رصد حركة بواسطة الكاميرا.
الحدث حدث الشخص لسمة CameraPerson رصدت الكاميرا شخصًا.
الحدث حدث الصوت لسمة CameraSound رصدت الكاميرا صوتًا.
الحدث حدث رنين الخاص بسمة جرس الباب تم الضغط على جرس الباب.
على سبيل المثال، في ما يلي طريقة الضغط على زر جرس الباب:

الحمولة

{
  "eventId" : "732d4e55-a9d9-4cc5-bc15-5149cb6f3216",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "ulQB3OFTtihAszt21QKnnpqQ2_..." } } } "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" : "U4iVXKFCeD7di1_wRP5kBX_XOT..."
  }
}

الرد

{
  "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 دقائق فقط. إذا أردت إطالة فترة البث المباشر، استخدِم الأمر "تمديدFormatالبث" المناسب 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البث" المناسبة. الأمر CameraLiveStream خاصة بتنسيق البث الذي أنشأته

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

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