
API การจัดการอุปกรณ์อัจฉริยะ (SDM) รองรับ Nest Doorbell รุ่นเก่าทั้งหมด อุปกรณ์นี้จะแสดงประเภทอุปกรณ์เป็น DOORBELL ดังนี้
sdm.devices.types.DOORBELL
Google Nest Doorbell (รุ่นเก่า) มีกล้องซึ่งทำงานเหมือนกับอุปกรณ์ประเภท CAMERA
ลักษณะเฉพาะ
ข้อมูลอ้างอิง
ลักษณะเฉพาะ คำสั่ง หรือเหตุการณ์ต่อไปนี้เกี่ยวข้องกับอุปกรณ์นี้
| ลักษณะภาษา | คำอธิบาย | คำสั่ง | เหตุการณ์ |
|---|---|---|---|
| CameraEventImage | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการสร้างรูปภาพจากเหตุการณ์ | GenerateImage | |
| CameraImage | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการถ่ายรูป | ||
| CameraLiveStream | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับการไลฟ์สด | GenerateRtspStream ExtendRtspStream StopRtspStream | |
| CameraMotion | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับความเคลื่อนไหว | Motion | |
| CameraPerson | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับบุคคล | Person | |
| CameraSound | ลักษณะเฉพาะนี้เป็นของอุปกรณ์ที่รองรับเหตุการณ์การตรวจจับเสียง | Sound | |
| 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" : ["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 | กล้องตรวจพบความเคลื่อนไหว |
| เหตุการณ์ | เหตุการณ์บุคคลของลักษณะเฉพาะ CameraPerson | กล้องตรวจพบบุคคล |
| เหตุการณ์ | เหตุการณ์ที่มีเสียงของลักษณะภาษา CameraSound | กล้องตรวจพบเสียง |
| เหตุการณ์ | เหตุการณ์กริ่งของลักษณะเฉพาะ DoorbellChime | มีคนกดกริ่งประตู |
เพย์โหลด
{
"eventId" : "3e7b7488-09ad-41f5-8381-165d5a589759",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"events" : {
"sdm.devices.events.DoorbellChime.Chime" : {
"eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"eventId" : "rjn57L02poi7gTFbOCYg0ocaKz..."
}
}
}
"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" : "nrbIeLo2lIzhuzLdJD7ARyfrsS..."
}
}
การตอบกลับ
{
"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=360URL สำหรับดาวน์โหลดมีข้อจำกัดอื่นๆ ดังนี้
- หากระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะใช้
widthและเพิกเฉยต่อheight - หากไม่ได้ระบุพารามิเตอร์ทั้ง 2 รายการใน URL ระบบจะเลือกค่าเริ่มต้นของ
widthเป็น 480
ดูข้อมูลเกี่ยวกับพร็อพเพอร์ตี้ของรูปภาพได้ที่ลักษณะเฉพาะ 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 สำหรับ