Google Nest Hub Max göster Smart Device Management (SDM) API'de desteklenir. Bu cihaz bir cihaz türü döndürüyor / DISPLAY:
sdm.devices.types.DISPLAY
Google Nest Hub Max'te, kamerayla aynı şekilde çalışan bir kamera bulunur. başka bir cihaz türü var.
Özellikler
Referans
Aşağıdaki özellikler, komutlar veya etkinlikler bu cihazla ilgilidir:
Özellik | Açıklama | Komutlar | Etkinlikler |
---|---|---|---|
CameraEventImage | Bu özellik, etkinliklerden resim oluşturmayı destekleyen tüm cihazlara aittir. | GenerateImage | |
CameraImage | Bu özellik, resim çekmeyi destekleyen tüm cihazlara aittir. | ||
CameraLiveStream | Bu özellik, canlı yayını destekleyen tüm cihazlara aittir. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Bu özellik, hareket algılama etkinliklerini destekleyen tüm cihazlara aittir. | Hareket | |
CameraPerson | Bu özellik, kişi algılama etkinliklerini destekleyen tüm cihazlara aittir. | Kişi | |
CameraSound | 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
GET yanıtında bir özelliğin olmaması, o özelliğin veya özelliği şu anda bu cihazda kullanılamıyor. Görüntüleyin Daha fazla bilgi için cihaz türleri ekleyebilirsiniz.
{ "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 yönetme
Aşağıdaki etkinlikler bir DISPLAY cihaz türünden tetiklenebilir:Tür | Öğe | Açıklama |
---|---|---|
Etkinlik | CameraMotion özelliğinin Hareket etkinliği | Kamera hareket algıladı. |
Etkinlik | CameraPerson özelliğinin Person etkinliği | Kamera bir kişi algıladı. |
Etkinlik | CameraSound özelliğinin Ses etkinliği | Kamera ses algıladı. |
Yük
{ "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" ] }
eventId
GenerateImage
komutuna ekleyin. Bu komut, alakalı kamera görüntüsü için bir indirme URL'si döndürür.
etkinlik:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "1GfoI8sZUnc79jrq7YfVodeqtf..."
}
}
Yanıt
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Kamera görüntüsünü indir
Şu konumdan url
öğesine GET çağrısı yapın:
GenerateImage komut yanıtı,
HTTP Yetkilendirme üst bilgisinde token
kullanarak temel yetkilendirmeyi kullanarak
kamera görüntüsünü indirin:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
width
veya height
sorgu parametrelerini kullanarak
resmi indiremezsiniz. Bu parametrelerden yalnızca birinin belirtilmesi gerekir. Diğer
parametresi kameranın en boy oranına göre otomatik olarak ölçeklendirilir.
Örneğin, kameranın en boy oranı 4:3 ise kamera görüntüsünü indirmek için çözünürlüğü 480 x 360 olan çözünürlükte olacak şekilde 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'siyle ilgili başka kısıtlamalar da vardır:
- URL'de her iki parametre de sağlanırsa
width
kullanılır veheight
kullanılır. yok sayılır. - URL'de iki parametre de sağlanmazsa
width
Şu öğeler için Kamera Görüntüsü özelliğine bakın: bilgileri de ekleyebilirsiniz.
Canlı yayına erişme
Canlı yayına kameradan erişilebilir. Aşağıdaki akış biçimleri şunlardır: bu cihazda destekleniyor:
- RTSP
Kameraların tam listesi ve desteklenen yayın biçimleri için bkz. Desteklenen Cihazlar.
Bir canlı yayına erişmek için uygun "YayınFormatOluştur" düğmesini kullanın. komutu CameraLiveStream çok önemlidir.
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 kamera canlı yayınına erişmek için 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ı anda aynı kameradan yayın yapmak isteyen birden fazla istemci varsa her istemci için RTSP komutları gönderilmeli ve her istemci kendi akış URL'sini kullanmalıdır.
Canlı yayının süresini uzatma
Kamera canlı yayın oturumları yalnızca 5 dakika boyunca geçerlidir. Canlı yayının ömrünü uzatmanız gerekiyorsa oluşturduğunuz yayın biçimi için KameraLiveStream özelliğinin uygun ExtendFormatStream komutunu kullanın.
RTSP
RTSP akışını uzatmak için
CameraLiveStream özellik komutunun ExtendRtspStream komutunun
yeni streamExtensionToken
ve streamToken
al
değerleri:
İ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" } }
İzlemeye devam etmek için akış URL'sini bu yeni değerlerle güncelleyin: canlı yayın:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Canlı yayını durdurma
Kamera canlı yayınını kullanmayı durdurduğunuzda, canlı yayını durdurun ve akışı geçersiz kılar. Bunu yapmak için uygun AkışFormatDurdurma düğmesini kullanın komutu CameraLiveStream özelliğini kullanın.
RTSP
Bir RTSP akışını durdurmak için jetonu kullanarak CameraLiveStream özellik komutunun StopRtspStream komutu:
İ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ı | TBG | Sorun giderme |
---|---|---|
Kamera görseli artık indirilemiyor. | DEADLINE_EXCEEDED |
Etkinlik resimlerinin süresi, etkinlik yayınlandıktan 30 saniye sonra dolar. Resmi, süresi dolmadan önce indirmeyi unutmayın. |
Etkinlik kimliği kameraya ait değil. | FAILED_PRECONDITION |
Kamera etkinliğinin döndürdüğü doğru eventID değerini kullanın. |
Aşağıdakiler için API Hata Kodu Referansı'na bakın: API hata kodlarının tam listesini inceleyin.