กล้อง (เดิม)

Nest Cam

Nest Cam รุ่นเดิมทั้งหมดรองรับใน Smart Device Management (SDM) API อุปกรณ์เหล่านี้จะแสดงผลประเภทอุปกรณ์ CAMERA

sdm.devices.types.CAMERA

นอกจากนี้ Google Nest Doorbell (เดิม) และ Google Nest Hub Max ยังทํางานเป็นกล้องและมีคุณสมบัติที่คล้ายกัน แม้ว่าอุปกรณ์จะแสดงประเภท DoORBELL และ DISPLAY ตามลําดับก็ตาม

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์สําหรับประเภทอุปกรณ์เหล่านั้นได้ที่คู่มืออุปกรณ์ Doorbell และดิสเพลย์

ลักษณะเฉพาะ

ข้อมูลอ้างอิง

ลักษณะเฉพาะ คําสั่ง หรือเหตุการณ์ต่อไปนี้เกี่ยวข้องกับอุปกรณ์นี้

ลักษณะเฉพาะคำอธิบายคำสั่งกิจกรรม
รูปภาพจากกล้องลักษณะนี้เป็นของอุปกรณ์ที่รองรับการสร้างรูปภาพจากกิจกรรมสร้างรูปภาพ
รูปภาพจากกล้องลักษณะนี้เป็นของอุปกรณ์ทั้งหมดที่รองรับการถ่ายภาพ
กล้องสตรีมแบบสดลักษณะนี้เป็นของอุปกรณ์ที่รองรับสตรีมมิงแบบสดGenerateRtspStream
ExpandRtspStream
StopRtspStream
CameraMotionลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับการเคลื่อนไหวการเคลื่อนไหว
เจ้าหน้าที่ถ่ายภาพลักษณะนี้เป็นของอุปกรณ์ที่รองรับการสนับสนุนการตรวจจับบุคคลบุคคล
กล้องเสียงลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับเสียงเสียง
ข้อมูลลักษณะนี้เป็นของทุกอุปกรณ์สําหรับข้อมูลที่เกี่ยวข้องกับอุปกรณ์

JSON

การขาดแคลนลักษณะเฉพาะในการตอบสนอง GET บ่งบอกว่าปัจจุบันฟีเจอร์หรือฟีเจอร์ไม่พร้อมใช้งานในอุปกรณ์ ดูข้อมูลเพิ่มเติมได้ที่ประเภทอุปกรณ์

{
  "type" : "sdm.devices.types.CAMERA",
  "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.Info" : {
      "customName" : "My device"
    }
  }
}

จัดการเหตุการณ์จากกล้อง

เหตุการณ์ต่อไปนี้อาจเรียกใช้จากประเภทอุปกรณ์ CAMERA หรือ DOORBELL หรือจอแสดงผลที่มีกล้อง เช่น Google Nest Doorbell (รุ่นเดิม) หรือ Google Nest Hub Max

ประเภท องค์ประกอบ คำอธิบาย
เหตุการณ์ เหตุการณ์การเคลื่อนไหวของลักษณะกล้อง กล้องตรวจพบการเคลื่อนไหว
เหตุการณ์ เหตุการณ์บุคคลของลักษณะกล้อง กล้องตรวจพบบุคคล
เหตุการณ์ เหตุการณ์เสียงของลักษณะเฉพาะของ CameraSound กล้องตรวจพบเสียง
ตัวอย่างเช่น กล้องตรวจพบการเคลื่อนไหว

เพย์โหลด

{
  "eventId" : "cd0e5f49-48d0-446d-b896-2e87f11a03d6",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "ErramsaXTiTecl3JXwvKDETX3s...", } } } "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" : "QgG261YHjgTw82Cpcqzrmxl4qt..."
  }
}

คำตอบ

{
  "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 x 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

ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ของรูปภาพใน รูปภาพจากกล้อง

เข้าถึงสตรีมแบบสด

คุณเข้าถึงสตรีมแบบสดจากกล้องได้ อุปกรณ์นี้รองรับรูปแบบสตรีมต่อไปนี้

  • ขวาไปซ้าย

โปรดดูรายชื่อกล้องและรูปแบบสตรีมทั้งหมดที่รองรับที่หัวข้ออุปกรณ์ที่รองรับ

หากต้องการเข้าถึงสตรีมแบบสด ให้ใช้คําสั่ง "CreateFormatStream" ของลักษณะ CameraLiveStream ที่เหมาะสม

ขวาไปซ้าย

สําหรับสตรีม 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 ให้ใช้คําสั่ง ExpandRtspStream ของคําสั่งเทรด 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

หยุดสตรีมแบบสด

เมื่อใดก็ตามที่คุณไม่ได้ใช้สตรีมแบบสดของกล้องอีกต่อไป คุณควรหยุดสตรีมและทําให้สตรีมใช้งานไม่ได้ ในการดําเนินการดังกล่าว ให้ใช้คําสั่ง StopFormatStream ที่เหมาะสมของรูปแบบCameraLiveStream สําหรับรูปแบบสตรีมที่คุณสร้าง

ขวาไปซ้าย

หากต้องการหยุดสตรีม RTSP ให้ใช้โทเค็นนั้นเพื่อทําให้คําสั่ง StopRtspStream เป็นโมฆะของคําสั่ง TraitStream ของ CameraLiveStream

ส่งคำขอ

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

คำตอบ

{}

ข้อผิดพลาด

รหัสข้อผิดพลาดต่อไปนี้อาจส่งคืนมาที่เกี่ยวข้องกับอุปกรณ์นี้

ข้อความแสดงข้อผิดพลาด RPC การแก้ปัญหา
รูปภาพของกล้องไม่พร้อมให้ดาวน์โหลดอีกต่อไป DEADLINE_EXCEEDED รูปภาพกิจกรรมจะหมดอายุใน 30 วินาทีหลังจากที่เผยแพร่กิจกรรมแล้ว โปรดดาวน์โหลดรูปภาพก่อนที่จะหมดอายุ
รหัสเหตุการณ์ไม่ได้เป็นของกล้อง FAILED_PRECONDITION ใช้ eventID ที่ถูกต้องซึ่งเหตุการณ์จากกล้องแสดงผล

ดูข้อมูลอ้างอิงรหัสข้อผิดพลาด API เพื่อดูรายการรหัสข้อผิดพลาด API ทั้งหมด