กริ่งประตู (เดิม)

Nest Hello

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=360

URL สำหรับดาวน์โหลดมีข้อจำกัดอื่นๆ ดังนี้

  • หากระบุพารามิเตอร์ทั้ง 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 สำหรับ