Display

Nest Hub Max

Google Nest Hub Max tampilan didukung dalam Smart Device Management (SDM) API. Perangkat ini menampilkan jenis perangkat dari DISPLAY:

sdm.devices.types.DISPLAY

Google Nest Hub Max memiliki kamera yang berfungsi sama sebagai jenis perangkat CAMERA.

Sifat

Referensi

Ciri, perintah, atau peristiwa berikut terkait dengan perangkat ini:

SifatDeskripsiPerintahAcara
CameraEventImageSifat ini milik perangkat apa pun yang mendukung pembuatan gambar dari peristiwa.GenerateImage
CameraImageSifat ini milik perangkat apa pun yang mendukung pengambilan gambar.
CameraLiveStreamSifat ini dimiliki oleh perangkat apa pun yang mendukung live streaming.GenerateRtspStream
ExtendRtspStream
StopRtspStream
CameraMotionSifat ini milik perangkat apa pun yang mendukung peristiwa deteksi gerakan.Gerakan
CameraPersonSifat ini milik perangkat apa pun yang mendukung peristiwa deteksi orang.Orang
CameraSoundSifat ini milik perangkat apa pun yang mendukung peristiwa deteksi suara.Suara
InfoSifat ini milik perangkat apa pun untuk informasi terkait perangkat.

JSON

Tidak adanya karakteristik dalam respons GET menunjukkan bahwa karakteristik atau saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk mengetahui info selengkapnya tidak akurat atau tidak sesuai.

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

Menangani peristiwa terekam kamera

Peristiwa berikut mungkin dipicu dari jenis perangkat DISPLAY:

Jenis Elemen Deskripsi
Acara Peristiwa Motion fitur CameraMotion Gerakan telah terdeteksi oleh kamera.
Acara Peristiwa Person dari karakteristik CameraPerson Seseorang telah terdeteksi oleh kamera.
Acara Peristiwa Suara dari karakteristik CameraSound Suara telah terdeteksi oleh kamera.
Misalnya, di sini kamera telah mendeteksi gerakan:

Payload

{
  "eventId" : "6d12911e-0181-495c-97b5-b6e8884c50ae",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "FJ-QMyhCTKninhnimPOwVDjELx...", } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
Payload peristiwa ini berisi eventId yang dapat digunakan dengan GenerateImage perintah. Perintah ini menampilkan URL download untuk gambar kamera yang terkait dengan acara:

Permintaan

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
  "params" : {
    "eventId" : "1GfoI8sZUnc79jrq7YfVodeqtf..."
  }
}

Respons

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

Mendownload gambar kamera

Lakukan panggilan GET ke url dari Respons perintah GenerateImage, menggunakan token di header Otorisasi HTTP dengan otorisasi Dasar, untuk download gambar kamera:

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...

Gunakan parameter kueri width atau height untuk menyesuaikan resolusi gambar yang didownload. Hanya salah satu dari parameter ini yang perlu ditentukan. Lainnya diskalakan secara otomatis sesuai dengan rasio aspek kamera.

Misalnya, jika rasio aspek kamera adalah 4:3, untuk mendownload gambar kamera dengan resolusi 480 x 360, tentukan lebar atau tinggi:

Lebar

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480

Tinggi

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360

Batasan lain untuk URL download berlaku:

  • Jika kedua parameter disediakan di URL, width akan digunakan dan height akan diabaikan.
  • Jika tidak ada parameter yang diberikan di URL, nilai default 480 akan dipilih untuk width.

Lihat karakteristik CameraImage untuk informasi tentang properti gambar.

Mengakses live stream

Live stream dari kamera dapat diakses. Format streaming berikut adalah didukung untuk perangkat ini:

  • RTSP

Untuk mengetahui daftar lengkap kamera dan format streaming yang didukung, lihat Perangkat yang Didukung.

Untuk mengakses live stream, gunakan fitur BuatFormatStreaming yang sesuai dari CameraLiveStream karakteristik.

RTSP

Untuk streaming RTSP, metode Perintah GenerateRtspStream untuk perintah karakteristik CameraLiveStream menampilkan URL streaming dan streamToken yang terkait:

Permintaan

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

Respons

{
  "results" : {
    "streamUrls" : {
      "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
    },
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
    "streamToken" : "g.0.streamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

Kemudian, gunakan URL streaming untuk mengakses live stream kamera:

rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken

URL live stream RTSP tidak dapat dibagikan antarklien. URL streaming hanya dapat digunakan oleh satu klien pada satu waktu. Jika beberapa klien ingin melakukan streaming dari kamera yang sama secara bersamaan, perintah RTSP harus dikirim untuk setiap klien, dan setiap klien harus menggunakan URL streaming-nya sendiri.

Memperpanjang live stream

Sesi live stream kamera hanya berlaku selama 5 menit. Jika Anda perlu memperpanjang live stream, gunakan perintah ExtendFormatStream yang sesuai pada karakteristik CameraLiveStream untuk format streaming yang Anda buat.

RTSP

Untuk memperluas streaming RTSP, gunakan Perintah ExtendRtspStream dari perintah karakteristik CameraLiveStream untuk dapatkan streamExtensionToken dan streamToken yang baru nilai-nilai:

Permintaan

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

Respons

{
  "results" : {
    "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "streamToken" : "g.0.newStreamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

Perbarui URL streaming dengan nilai baru ini untuk terus melihat live stream:

rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken

Menghentikan live stream

Setiap kali Anda tidak lagi menggunakan live stream kamera, Anda harus menghentikannya dan membatalkan streaming. Untuk melakukannya, gunakan StopFormatStream yang sesuai dari CameraLiveStream untuk format streaming yang Anda buat.

RTSP

Untuk menghentikan streaming RTSP, gunakan token untuk membatalkan validasi dengan Perintah StopRtspStream untuk perintah karakteristik CameraLiveStream:

Permintaan

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

Respons

{}

Error

Kode error berikut mungkin ditampilkan sehubungan dengan perangkat ini:

Pesan Error PPK Pemecahan masalah
Gambar kamera tidak lagi tersedia untuk didownload. DEADLINE_EXCEEDED Masa berlaku gambar peristiwa akan habis 30 detik setelah peristiwa dipublikasikan. Pastikan untuk mendownload gambar sebelum masa berlakunya habis.
ID peristiwa bukan bagian dari kamera. FAILED_PRECONDITION Gunakan eventID yang benar yang ditampilkan oleh peristiwa terekam kamera.

Lihat Referensi Kode Error API untuk daftar lengkap kode error API.