زنگ در (میراث)

لانه سلام

تمام زنگ‌های درب قدیمی Nest در رابط برنامه‌نویسی کاربردی (API) مدیریت دستگاه هوشمند (SDM) پشتیبانی می‌شوند. این دستگاه نوع دستگاه DOORBELL را برمی‌گرداند:

sdm.devices.types.DOORBELL

زنگ درب گوگل نست (قدیمی) دارای یک دوربین است که عملکردی مشابه دوربین‌های معمولی دارد.

صفات

مرجع

ویژگی‌ها، دستورات یا رویدادهای زیر مربوط به این دستگاه هستند:

صفت توضیحات دستورات رویدادها
تصویر رویداد دوربین این ویژگی متعلق به هر دستگاهی است که از تولید تصاویر از رویدادها پشتیبانی می‌کند. تولید تصویر
دوربین ایمیج این ویژگی متعلق به هر دستگاهی است که از گرفتن عکس پشتیبانی می‌کند.
پخش زنده دوربین این ویژگی متعلق به هر دستگاهی است که از پخش زنده پشتیبانی می‌کند. تولیدRtspStream
گسترش RtspStream
استریم متوقف شود
دوربین موشن این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص حرکت پشتیبانی می‌کند. حرکت
دوربین این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص شخص پشتیبانی می‌کند. شخص
دوربینصدا این ویژگی متعلق به هر دستگاهی است که از رویدادهای تشخیص صدا پشتیبانی می‌کند. صدا
زنگ در این ویژگی متعلق به هر دستگاهی است که از زنگ در و رویدادهای مطبوعاتی مرتبط پشتیبانی می‌کند. زنگ
اطلاعات این ویژگی به هر دستگاهی برای اطلاعات مربوط به دستگاه تعلق دارد.

جی‌سون

عدم وجود یک ویژگی (trait) در پاسخ GET نشان می‌دهد که آن ویژگی یا قابلیت در حال حاضر برای دستگاه در دسترس نیست. برای اطلاعات بیشتر به بخش انواع دستگاه (Device types) مراجعه کنید.

{
  "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 حرکت توسط دوربین تشخیص داده شده است.
رویداد رویداد Person از ویژگی CameraPerson یک نفر توسط دوربین شناسایی شده است.
رویداد رویداد صدا از ویژگی CameraSound صدا توسط دوربین شناسایی شده است.
رویداد رویداد Chime از ویژگی DoorbellChime زنگ در فشرده شده است.
برای مثال، در اینجا دکمه زنگ در فشرده شده است:

بار مفید

{
  "eventId" : "332127ab-2a6f-4613-b2e1-6734105a7ead",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "nNDfmmxHIqWROtqhi9MDdEiDJ0..." } } } "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" : "iUbDCg5CvkjJyE271PGaH0ea-m..."
  }
}

پاسخ

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

دانلود تصویر دوربین

با استفاده از token موجود در هدر HTTP Authorization با مجوز Basic، از پاسخ دستور GenerateImage یک فراخوانی GET به url انجام دهید تا تصویر دوربین دانلود شود:

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

محدودیت‌های دیگری نیز برای URL دانلود اعمال می‌شود:

  • اگر هر دو پارامتر در URL ارائه شوند، width استفاده می‌شود و height نادیده گرفته می‌شود.
  • اگر هیچ یک از پارامترها در URL ارائه نشوند، مقدار پیش‌فرض ۴۸۰ برای width انتخاب می‌شود.

ببینید دوربین ایمیج ویژگی برای اطلاعات در مورد ویژگی‌های تصویر.

دسترسی به پخش زنده

پخش زنده از دوربین قابل دسترسی است. فرمت‌های پخش زیر برای این دستگاه پشتیبانی می‌شوند:

  • آر تی اس پی

برای مشاهده لیست کامل دوربین‌ها و فرمت‌های استریم پشتیبانی‌شده، به دستگاه‌های پشتیبانی‌شده مراجعه کنید.

برای دسترسی به یک پخش زنده، از دستور Generate Format Stream مربوط بهپخش زنده دوربینصفت.

آر تی اس پی

برای یک جریان RTSP، دستور GenerateRtspStream از دستور CameraLiveStream trait، آدرس اینترنتی جریان و 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

URL های پخش زنده RTSP را نمی‌توان بین کلاینت‌ها به اشتراک گذاشت. یک URL پخش زنده فقط می‌تواند توسط یک کلاینت در یک زمان استفاده شود. اگر چندین کلاینت بخواهند همزمان از یک دوربین پخش زنده داشته باشند، دستورات RTSP باید برای هر کلاینت جداگانه ارسال شود و هر کلاینت جداگانه باید از URL پخش جریانی خود استفاده کند.

پخش زنده را گسترش دهید

جلسات پخش زنده دوربین فقط به مدت ۵ دقیقه معتبر هستند. اگر نیاز به تمدید طول عمر یک پخش زنده دارید، از دستور Extend Format Stream مناسب استفاده کنید. پخش زنده دوربین ویژگی مربوط به قالب جریانی که ایجاد کرده‌اید.

آر تی اس پی

برای گسترش یک جریان RTSP، از دستور ExtendRtspStream از دستور CameraLiveStream trait برای دریافت مقادیر جدید 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

توقف پخش زنده

هر زمان که دیگر از پخش زنده دوربین استفاده نمی‌کنید، باید آن را متوقف کرده و پخش را لغو کنید. برای انجام این کار، از دستور مناسب Stop Format Stream درپخش زنده دوربینویژگی مربوط به قالب جریانی که ایجاد کرده‌اید.

آر تی اس پی

برای متوقف کردن یک جریان RTSP، از توکن برای نامعتبر کردن با دستور StopRtspStream از دستور trait CameraLiveStream استفاده کنید:

درخواست

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
  "params" : {
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
  }
}

پاسخ

{}

خطاها

کد(های) خطای زیر ممکن است در رابطه با این دستگاه نمایش داده شوند:

پیام خطا آر پی سی عیب‌یابی
تصویر دوربین دیگر برای دانلود در دسترس نیست. DEADLINE_EXCEEDED تصاویر رویداد ۳۰ ثانیه پس از انتشار رویداد منقضی می‌شوند. حتماً قبل از انقضا، تصویر را دانلود کنید.
شناسه رویداد متعلق به دوربین نیست. FAILED_PRECONDITION از eventID صحیح برگردانده شده توسط رویداد دوربین استفاده کنید.

برای مشاهده لیست کامل کدهای خطای API به مرجع کدهای خطای API مراجعه کنید.