زنگ در (قدیمی)

Nest Hello

همه «زنگ‌های در 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 صحیح برگشت‌داده‌شده توسط رویداد دوربین استفاده کنید.

برای فهرست کامل کدهای خطای میانای برنامه‌سازی کاربردی، مرجع کد خطای میانای برنامه‌سازی کاربردی را ببینید.