จอแสดงผล Google Nest Hub Max รองรับใน Smart Device Management (SDM) API อุปกรณ์นี้จะแสดงประเภทอุปกรณ์ เป็น DISPLAY
sdm.devices.types.DISPLAY
Google Nest Hub Max มีกล้องซึ่งทำงานเหมือนกับ อุปกรณ์ประเภทกล้อง
ลักษณะ
ข้อมูลอ้างอิง
ลักษณะ คำสั่ง หรือเหตุการณ์ต่อไปนี้เกี่ยวข้องกับอุปกรณ์นี้
| ลักษณะ | คำอธิบาย | คำสั่ง | กิจกรรม | 
|---|---|---|---|
| CameraEventImage | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับการสร้างรูปภาพจากเหตุการณ์ | GenerateImage | |
| CameraImage | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับการถ่ายภาพ | ||
| CameraLiveStream | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับการไลฟ์สด | GenerateRtspStream ExtendRtspStream StopRtspStream  | |
| CameraMotion | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับความเคลื่อนไหว | การเคลื่อนไหว | |
| CameraPerson | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจหาบุคคล | Person | |
| CameraSound | ลักษณะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับเสียง | เสียง | |
| ข้อมูล | ลักษณะนี้เป็นของอุปกรณ์ใดก็ตามสำหรับข้อมูลที่เกี่ยวข้องกับอุปกรณ์ | 
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| ประเภท | องค์ประกอบ | คำอธิบาย | 
|---|---|---|
| กิจกรรม | เหตุการณ์การเคลื่อนไหวของลักษณะการเคลื่อนไหวของกล้อง | กล้องตรวจพบการเคลื่อนไหว | 
| กิจกรรม | เหตุการณ์บุคคลของลักษณะกล้องบุคคล | กล้องตรวจพบบุคคล | 
| กิจกรรม | เหตุการณ์เสียงของลักษณะ CameraSound | กล้องตรวจพบเสียง | 
เพย์โหลด
{
  "eventId" : "11f991e6-f4ce-4fe9-9cc4-84d5b5ab6d52",
  "timestamp" : "2019-01-01T00:00:01Z",
  "resourceUpdate" : {
    "name" : "enterprises/project-id/devices/device-id",
    "events" : {
      "sdm.devices.events.CameraMotion.Motion" : {
        "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
        "eventId" : "h2nPXNqNFzfc6gI07g-RLfu_IO...",
      }
    }
  }
  "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" : "op3lrlhJvM5pqMkg7ptOd7sIjW..."
  }
}
การตอบกลับ
{
  "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 การดาวน์โหลดมีดังนี้
- หากระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะใช้ 
widthและไม่สนใจheight - หากไม่ได้ระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะเลือกค่าเริ่มต้นเป็น 480 สำหรับ
width 
ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ของรูปภาพได้ที่ลักษณะ CameraImage
เข้าถึงไลฟ์สด
เข้าถึงไลฟ์สดจากกล้องได้ อุปกรณ์นี้รองรับรูปแบบสตรีมต่อไปนี้
- RTSP
 
ดูรายการกล้องและรูปแบบสตรีมที่รองรับทั้งหมดได้ที่ อุปกรณ์ที่รองรับ
หากต้องการเข้าถึงไลฟ์สด ให้ใช้คำสั่ง GenerateFormatStream ที่เหมาะสมของลักษณะCameraLiveStream
RTSP
สำหรับสตรีม RTSP คำสั่ง 
        GenerateRtspStream ของคำสั่งลักษณะกล้องถ่ายทอดสด
        จะแสดงผล 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 นาทีเท่านั้น หากต้องการขยายอายุการใช้งานของไลฟ์สด ให้ใช้คำสั่ง ExtendFormatStream ที่เหมาะสมของ CameraLiveStream trait สำหรับรูปแบบสตรีมที่คุณสร้างขึ้น
RTSP
หากต้องการขยายสตรีม RTSP ให้ใช้คำสั่ง ExtendRtspStream ของคำสั่งลักษณะกล้องไลฟ์สดเพื่อรับค่า 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 ของคำสั่งลักษณะกล้องถ่ายทอดสด
ส่งคำขอ
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