Layar Google Nest Hub Max didukung di Smart Device Management (SDM) API. Perangkat ini menampilkan jenis perangkat DISPLAY:
sdm.devices.types.DISPLAY
Google Nest Hub Max memiliki kamera, yang berfungsi sama dengan jenis perangkat CAMERA.
Sifat
Referensi
Sifat, perintah, atau peristiwa berikut terkait dengan perangkat ini:
| Sifat | Deskripsi | Perintah | Peristiwa |
|---|---|---|---|
| CameraEventImage | Sifat ini digunakan untuk perangkat apa pun yang mendukung pembuatan gambar dari peristiwa. | GenerateImage | |
| CameraImage | Sifat ini digunakan untuk perangkat apa pun yang mendukung pengambilan gambar. | ||
| CameraLiveStream | Sifat ini digunakan untuk perangkat apa pun yang mendukung live streaming. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
| CameraMotion | Sifat ini digunakan untuk perangkat apa pun yang mendukung peristiwa deteksi gerakan. | Gerakan | |
| CameraPerson | Sifat ini digunakan untuk perangkat apa pun yang mendukung peristiwa deteksi orang. | Orang | |
| CameraSound | Sifat ini digunakan untuk perangkat apa pun yang mendukung peristiwa deteksi suara. | Suara | |
| Info | Sifat ini digunakan untuk perangkat apa pun yang mendukung informasi terkait perangkat. |
JSON
Tidak adanya sifat dalam respons GET menunjukkan bahwa sifat atau fitur tersebut saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk mengetahui informasi selengkapnya.
{
"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 kamera
Peristiwa berikut dapat dipicu dari jenis perangkat DISPLAY:| Jenis | Elemen | Deskripsi |
|---|---|---|
| Acara | Peristiwa gerakan dari sifat CameraMotion | Gerakan telah terdeteksi oleh kamera. |
| Acara | Peristiwa orang dari sifat CameraPerson | Seseorang telah terdeteksi oleh kamera. |
| Acara | Peristiwa suara dari sifat CameraSound | Suara telah terdeteksi oleh kamera. |
Payload
{
"eventId" : "f39b35b7-21ba-4cf4-bbf0-5d36b21b345d",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"events" : {
"sdm.devices.events.CameraMotion.Motion" : {
"eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"eventId" : "hkDG-nDge7SgosWYto0eOCLQeQ...",
}
}
}
"userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}eventId yang dapat digunakan dengan perintah
GenerateImage. Perintah ini menampilkan URL download untuk gambar kamera yang terkait dengan peristiwa:
Permintaan
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
"params" : {
"eventId" : "Xza0fN83xY5p88UNrpa-Bx55Hh..."
}
}
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
mendownload 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 parameter ini yang perlu ditentukan. Parameter 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=480Tinggi
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360Batasan lain untuk URL download berlaku:
- Jika kedua parameter diberikan di URL,
widthakan digunakan danheightakan diabaikan. - Jika tidak ada parameter yang diberikan di URL, nilai default 480 akan dipilih untuk
width.
Lihat sifat CameraImage untuk mengetahui informasi tentang properti gambar.
Mengakses live stream
Live stream dari kamera dapat diakses. Format streaming berikut didukung untuk perangkat ini:
- RTSP
Untuk mengetahui daftar lengkap kamera dan format streaming yang didukung, lihat Perangkat yang Didukung.
Untuk mengakses live stream, gunakan perintah GenerateFormatStream yang sesuai dari sifat CameraLiveStream.
RTSP
Untuk streaming RTSP, perintah
GenerateRtspStream dari perintah sifat CameraLiveStream
menampilkan URL streaming dan streamToken:
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 antar-klien. URL streaming hanya dapat digunakan oleh satu klien pada satu waktu. Jika beberapa klien ingin melakukan streaming dari kamera yang sama pada waktu yang sama, 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 masa aktif live stream, gunakan perintah ExtendFormatStream yang sesuai dari sifat CameraLiveStream untuk format streaming yang Anda buat.
RTSP
Untuk memperpanjang streaming RTSP, gunakan perintah
ExtendRtspStream dari perintah sifat CameraLiveStream untuk
mendapatkan nilai streamExtensionToken dan streamToken
baru:
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 perintah StopFormatStream yang sesuai dari sifat CameraLiveStream untuk format streaming yang Anda buat.
RTSP
Untuk menghentikan streaming RTSP, gunakan token untuk membatalkan dengan perintah StopRtspStream dari perintah sifat CameraLiveStream:
Permintaan
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Respons
{}
Error
Kode error berikut dapat ditampilkan terkait dengan perangkat ini:
| Pesan Error | RPC | Pemecahan masalah |
|---|---|---|
| Gambar kamera tidak lagi tersedia untuk didownload. | DEADLINE_EXCEEDED |
Gambar peristiwa akan berakhir masa berlakunya 30 detik setelah peristiwa dipublikasikan. Pastikan untuk mendownload gambar sebelum masa berlakunya berakhir. |
| ID peristiwa bukan milik kamera. | FAILED_PRECONDITION |
Gunakan eventID yang benar yang ditampilkan oleh peristiwa kamera. |
Lihat API Error Code Reference untuk mengetahui daftar lengkap kode error API.