
Google Nest Hub Max ekranı, Smart Device Management (SDM) API'de desteklenir. Bu cihaz, cihaz türü olarak DISPLAY değerini döndürür:
sdm.devices.types.DISPLAY
Google Nest Hub Max, CAMERA cihaz türüyle aynı şekilde çalışan bir kamera içerir.
Özellikler
Referans
Aşağıdaki özellikler, komutlar veya etkinlikler bu cihazla ilgilidir:
Özellik | Açıklama | Komutlar | Etkinlikler |
---|---|---|---|
KameraEtkinlik Resmi | Bu özellik, etkinliklerden görüntü oluşturmayı destekleyen tüm cihazlara aittir. | Resim Oluştur | |
Kamera Görüntüsü | Bu özellik, resim çekmeyi destekleyen tüm cihazlara aittir. | ||
KameraCanlı Yayın | Bu özellik, canlı yayını destekleyen tüm cihazlara aittir. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
KameraHareketi | Bu özellik, hareket algılama etkinliklerini destekleyen tüm cihazlara aittir. | Hareket | |
Kamera Kişisi | Bu özellik, kişi algılama etkinliklerini destekleyen tüm cihazlara aittir. | Kişi | |
Kamera Sesi | Bu özellik, ses algılama etkinliklerini destekleyen tüm cihazlara aittir. | Ses | |
Bilgi | Bu özellik, cihazla ilgili bilgiler için herhangi bir cihaza aittir. |
JSON
Bir GET yanıtında özellik olmaması, özellik veya özelliğin o anda cihaz için kullanılamadığını gösterir. Daha fazla bilgi için Cihaz türleri bölümüne bakın.
{ "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" } } }
Kamera etkinliklerini işleme
Bir DISPLAY cihaz türünden aşağıdaki etkinlikler tetiklenebilir:Type | Öğe | Açıklama |
---|---|---|
Etkinlik | CameraMotion özelliğinin Hareket etkinliği | Kamera hareket algıladı. |
Etkinlik | Kamera Kişisi özelliğindeki Kişi etkinliği | Kamera bir kişiyi algıladı. |
Etkinlik | CameraSound özelliğinin ses etkinliği | Kamera ses algıladı. |
Yük
{ "eventId" : "c10b6331-ef85-4ddb-a295-9df28f6db3a4",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "fMwkc16PPZvvFZ2Z1O8-Maz8dd...", } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
içeriyor. Bu komut, etkinlikle ilgili kamera görüntüsü için bir indirme URL'si döndürür:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "RdWngxBi1C8M4KW-K4mimNN2ms..."
}
}
Yanıt
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Kamera görüntüsü indirme
Kamera görüntüsünü indirmek için HTTP Yetkilendirmesi başlığında Temel yetkilendirme ile token
ifadesini kullanarak bir GenerateImage komut yanıtından url
GET çağrısı yapın:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
İndirilen resmin çözünürlüğünü özelleştirmek için width
veya height
sorgu parametrelerini kullanın. Bu parametrelerden yalnızca biri belirtilmelidir. Diğer parametre, kameranın en boy oranına göre otomatik olarak ölçeklendirilir.
Örneğin, kameranın en boy oranı 4:3 ise, kamera resmini 480 x 360 çözünürlüğünde indirmek için genişliği veya yüksekliği belirtin:
Genişlik
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480
Boy
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360
İndirme URL'sine ilişkin diğer kısıtlamalar geçerlidir:
- URL'de her iki parametre de sağlanırsa
width
kullanılır veheight
yok sayılır. - URL'de hiçbir parametre sağlanmazsa
width
için varsayılan 480 değeri seçilir.
Resim özellikleriyle ilgili bilgi için Kamera Görüntüsü özelliğine bakın.
Canlı yayına erişme
Kameradan yapılan canlı yayına erişilebilir. Bu cihazda aşağıdaki akış biçimleri desteklenir:
- RTSP
Kameraların ve desteklenen yayın biçimlerinin tam listesi için Desteklenen Cihazlar'a bakın.
Bir canlı yayına erişmek içinKameraLiveStreamözelliğinin uygun Oluştur OluşturFormatkomutunu kullanın.
RTSP
RTSP akışı için CameraLiveStream özellik komutunun GenerateRtspStream komutu, akış URL'sini ve ilgili streamToken
değerini döndürür:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream
",
"params" : {}
}
Yanıt
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Ardından, kameranın canlı yayınına erişmek için canlı yayın URL'sini kullanın:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
RTSP canlı yayın URL'leri istemciler arasında paylaşılamaz. Akış URL'si aynı anda yalnızca bir müşteri tarafından kullanılabilir. Aynı kameradan aynı anda birden çok istemci canlı yayın yapmak istiyorsa her bir istemci için RTSP komutları gönderilmeli ve her müşteri kendi akış URL'sini kullanmalıdır.
Canlı yayını uzatma
Kamera canlı yayın oturumları yalnızca 5 dakika boyunca geçerlidir. Bir canlı yayının geçerlilik süresini uzatmanız gerekiyorsa oluşturduğunuz canlı yayın biçimi için uygun olan KameraLiveStream özelliğinin ExtendFormatYayın komutunu kullanın.
RTSP
Bir RTSP akışını genişletmek için CameraLiveStream özellik komutunun ExtendRtspStream komutunu kullanarak yeni streamExtensionToken
ve streamToken
değerleri alın:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Yanıt
{ "results" : { "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "streamToken" : "g.0.newStreamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Canlı yayını görüntülemeye devam etmek için canlı yayın URL'sini aşağıdaki yeni değerlerle güncelleyin:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Canlı yayını durdurma
Kamera canlı yayınını artık kullanmadığınızda durdurmanız ve yayını geçersiz kılmanız gerekir. Bunun için, oluşturduğunuz yayın biçimi için uygun olanKameraCanlıCanlıözelliğini durdurmaya uygunFormatCanlı Yayın komutunu kullanın.
RTSP
Bir RTSP yayınını durdurmak için jetonu, CameraLiveStream özellik komutunun StopRtspStream komutuyla geçersiz kılmak için kullanın:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Yanıt
{}
Hatalar
Bu cihazla ilgili olarak aşağıdaki hata kodları döndürülebilir:
Hata Mesajı | RPC | Sorun giderme |
---|---|---|
Kamera resmi artık indirilemiyor. | DEADLINE_EXCEEDED |
Etkinlik resimlerinin süresi, etkinlik yayınlandıktan 30 saniye sonra dolar. Geçerlilik bitiş tarihinden önce resmi indirin. |
Etkinlik kimliği kameraya ait değil. | FAILED_PRECONDITION |
Kamera etkinliği tarafından döndürülen doğru eventID öğesini kullanın. |
API hata kodlarının tam listesini API Hata Kodu Referansı'nda bulabilirsiniz.