Semua bel pintu Nest lama didukung di Smart Device Management (SDM) API. Perangkat ini menampilkan jenis perangkat DOORBELL:
sdm.devices.types.DOORBELL
Google Nest Doorbell (lama) dilengkapi dengan kamera, yang berfungsi sama seperti jenis perangkat KAMERA.
Sifat
Referensi
Ciri, perintah, atau peristiwa berikut terkait dengan perangkat ini:
Sifat | Deskripsi | Perintah | Acara |
---|---|---|---|
CameraEventImage | Sifat ini milik perangkat apa pun yang mendukung pembuatan gambar dari peristiwa. | GenerateImage | |
CameraImage | Sifat ini milik perangkat apa pun yang mendukung pengambilan gambar. | ||
CameraLiveStream | Sifat ini dimiliki oleh perangkat apa pun yang mendukung live streaming. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Sifat ini dimiliki oleh perangkat apa pun yang mendukung peristiwa deteksi gerakan. | Gerakan | |
CameraPerson | Sifat ini dimiliki oleh perangkat apa pun yang mendukung peristiwa deteksi orang. | Orang | |
CameraSound | Sifat ini milik perangkat apa pun yang mendukung peristiwa deteksi suara. | Suara | |
DoorbellChime | Sifat ini dimiliki oleh perangkat apa pun yang mendukung bel pintu dan peristiwa tekan terkait. | Chime | |
Info | Sifat ini milik perangkat apa pun untuk informasi terkait perangkat. |
JSON
Tidak adanya ciri dalam respons GET menunjukkan bahwa karakteristik atau fitur saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk mengetahui informasi selengkapnya.
{ "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" } } }
Menangani peristiwa bel pintu dan kamera
Peristiwa berikut dapat dipicu dari jenis perangkat DOORBELL :Jenis | Elemen | Deskripsi |
---|---|---|
Acara | Peristiwa Gerakan dari sifat CameraMotion | Gerakan telah terdeteksi oleh kamera. |
Acara | Peristiwa Orang dari karakteristik CameraPerson | Seseorang telah terdeteksi oleh kamera. |
Acara | Peristiwa Suara dari karakteristik CameraSound | Suara telah terdeteksi oleh kamera. |
Acara | Peristiwa Bel dari atribut DoorbellChime | Bel pintu telah ditekan. |
Payload
{ "eventId" : "76f85e13-cc15-4705-83c3-0b3838118524",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "cV7T3NiEMXH5ZmQz21AwMaW0mF..." } } } "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" : "mFNqXZk08luMZuuBBPCPbS7mZ4..."
}
}
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 tingginya:
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 diberikan di URL,
width
akan digunakan danheight
akan diabaikan. - Jika tidak ada parameter yang disediakan di URL, nilai default 480 akan dipilih untuk
width
.
Lihat karakteristik 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 propertiCameraLiveStream.
RTSP
Untuk streaming RTSP, perintah
GenerateRtspStream dari perintah karakteristik CameraLiveStream
menampilkan URL streaming dan streamToken
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 dalam 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 streamingnya sendiri.
Memperpanjang live stream
Sesi live stream kamera hanya valid 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 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 berikut untuk terus melihat live stream:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Menghentikan live stream
Setiap kali tidak lagi menggunakan live stream kamera, Anda harus menghentikannya dan membatalkan validasi streaming. Untuk melakukannya, gunakan perintah StopFormatStream yang sesuai dari sifatCameraLiveStream untuk format streaming yang Anda buat.
RTSP
Untuk menghentikan streaming RTSP, gunakan token untuk membatalkan validasi dengan perintah StopRtspStream dari 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 dapat ditampilkan sehubungan dengan perangkat ini:
Pesan Error | PPK | Pemecahan masalah |
---|---|---|
Gambar kamera tidak lagi tersedia untuk didownload. | DEADLINE_EXCEEDED |
Masa berlaku gambar acara berakhir 30 detik setelah acara dipublikasikan. Pastikan untuk mendownload gambar sebelum masa berlakunya habis. |
ID peristiwa bukan milik kamera. | FAILED_PRECONDITION |
Gunakan eventID yang benar yang ditampilkan oleh peristiwa terekam kamera. |
Lihat Referensi Kode Error API untuk mengetahui daftar lengkap kode error API.