แสดง

Nest Hub Max

ระบบรองรับจอแสดงผล Google Nest Hub Max ใน Smart Device Management (SDM) API อุปกรณ์นี้จะแสดงประเภทอุปกรณ์เป็น DISPLAY ดังนี้

sdm.devices.types.DISPLAY

Google Nest Hub Max มีกล้องที่ทำงานเหมือนกับอุปกรณ์ประเภท CAMERA

ลักษณะเฉพาะ

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

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

ลักษณะภาษาคำอธิบายคำสั่งเหตุการณ์
CameraEventImageลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการสร้างรูปภาพจากเหตุการณ์GenerateImage
CameraImageลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการถ่ายรูป
CameraLiveStreamลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการไลฟ์สดGenerateRtspStream
ExtendRtspStream
StopRtspStream
CameraMotionลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับความเคลื่อนไหวMotion
CameraPersonลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับบุคคลPerson
CameraSoundลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับเสียงSound
ข้อมูลลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่ใช้แสดงข้อมูลที่เกี่ยวข้องกับอุปกรณ์

JSON

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

{
  "type" : "sdm.devices.types.DISPLAY",
  "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"
    }
  }
}

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

อุปกรณ์ประเภท DISPLAY อาจทริกเกอร์เหตุการณ์ต่อไปนี้

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

เพย์โหลด

{
  "eventId" : "e78aba4f-b8d3-4df6-b224-066c6ea345b2",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "4d026q2_N_TkClOUn3Myd9yjNu...", } } } "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" : "xj_A0qp0TlpfQsIVYdzeeb0kzb..."
  }
}

การตอบกลับ

{
  "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 เพื่อปรับแต่งความละเอียดของรูปภาพที่ดาวน์โหลด คุณต้องระบุพารามิเตอร์เหล่านี้เพียง 1 รายการ ส่วนพารามิเตอร์อีกรายการจะปรับขนาดโดยอัตโนมัติตามอัตราส่วนภาพของกล้อง

ตัวอย่างเช่น หากอัตราส่วนภาพของกล้องคือ 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 สำหรับดาวน์โหลดมีข้อจำกัดอื่นๆ ดังนี้

  • หากระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะใช้ width และละเว้น height
  • หากไม่ได้ระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะเลือกค่าเริ่มต้นเป็น 480 สำหรับ width

ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ของรูปภาพได้ที่ลักษณะเฉพาะ CameraImage สำหรับ

เข้าถึงไลฟ์สด

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

  • RTSP

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

หากต้องการเข้าถึงไลฟ์สด ให้ใช้คำสั่ง GenerateFormatStream ที่เหมาะสมของลักษณะเฉพาะ 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 ของสตรีมได้ครั้งละ 1 รายการเท่านั้น หากไคลเอ็นต์หลายรายต้องการสตรีมจากกล้องตัวเดียวกันในเวลาเดียวกัน คุณต้องส่งคำสั่ง 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

หยุดไลฟ์สด

เมื่อใดก็ตามที่คุณไม่ได้ใช้ไลฟ์สดของกล้องอีกต่อไป คุณควรหยุดไลฟ์สดและทำให้สตรีมไม่ถูกต้อง โดยใช้คำสั่ง 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 รูปภาพเหตุการณ์จะหมดอายุหลังจากเผยแพร่เหตุการณ์ 30 วินาที โปรดดาวน์โหลดก่อนที่รูปภาพจะหมดอายุ
รหัสเหตุการณ์ไม่ได้เป็นของกล้อง FAILED_PRECONDITION ใช้ eventID ที่ถูกต้องซึ่งแสดงโดยเหตุการณ์จากกล้อง

ดูรายการรหัสข้อผิดพลาดทั้งหมดของ API ได้ที่ข้อมูลอ้างอิงรหัสข้อผิดพลาดของ API สำหรับ