
Eski Nest kapı zillerinin tümü Smart Device Management (SDM) API'de desteklenir. Bu cihaz, KAPI ZILI cihaz türünü döndürür:
sdm.devices.types.DOORBELL
Google Nest Doorbell (eski) cihazında, CAMERA cihaz türüyle aynı işlevi gören bir kamera bulunur.
Özellikler
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 | |
DoorbellChime | Bu özellik, kapı zili çalmasını ve ilgili basma etkinliklerini destekleyen tüm cihazlara aittir. | Chime | |
Bilgi | Bu özellik, cihazla ilgili bilgiler için herhangi bir cihaza aittir. |
GET yanıtında bir özelliğin bulunmaması, özelliğin şu anda cihazda kullanılamadığını gösterir. Daha fazla bilgi için Cihaz türleri başlıklı makaleyi inceleyin.
{ "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" } } }
Kapı zili ve kamera etkinliklerini işleme
KAPI ZILI cihaz türünden aşağıdaki etkinlikler tetiklenebilir:Tür | Öğe | Açıklama |
---|---|---|
Etkinlik | CameraMotion özelliğinin Hareket etkinliği | Kamera hareket algıladı. |
Etkinlik | CameraPerson özelliğinin Kişi etkinliği | Kamera bir kişi algıladı. |
Etkinlik | CameraSound özelliğinin Ses etkinliği | Kamera ses algıladı. |
Etkinlik | DoorbellChime özelliğinin Chime etkinliği | Kapı ziline basıldı. |
{ "eventId" : "c3ba1df3-4cea-4d3f-ad0f-a75c23b0a181",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id /devices/device-id ", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "KnvqSlV7Nk9DUhtiQ8rmdynp-R..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id /devices/device-id " ] }
eventId
içerir. Bu komut, etkinlikle ilgili kamera görüntüsünün indirme URL'sini döndürür:
POST /enterprises/project-id /devices/device-id :executeCommand { "command" : "sdm.devices.commands.CameraEventImage.GenerateImage
", "params" : { "eventId" : "JS5C86RzliywHwDBB5TEbY6c7z..." } }
{ "results" : { "url" : "https://domain /sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Kamera görüntüsünü indirme
Kamera görüntüsünü indirmek için GenerateImage komut yanıtından url
için GET çağrısı yapın. Temel yetkilendirmeyle HTTP Authorization başlığındaki token
öğesini kullanı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 birinin belirtilmesi gerekir. 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 görüntüsünü 480 x 360 çözünürlüğünde indirmek için genişliği veya yüksekliği belirtin:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain /sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480
curl -H "Authorization: Basic g.0.eventToken" \
https://domain /sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360
İndirme URL'si için diğer kısıtlamalar geçerlidir:
- URL'de her iki parametre de sağlanırsa
width
kullanılır veheight
yoksayılır. - URL'de bu parametrelerden hiçbiri sağlanmazsa
width
için varsayılan değer 480 olur.
Resim özellikleri hakkında bilgi edinmek için CameraImage özelliğine bakın.
Canlı yayına erişim
Kameradan canlı yayına erişilebilir. Bu cihazda aşağıdaki yayın biçimleri desteklenir:
- RTSP
Kameraların ve desteklenen yayın biçimlerinin tam listesi için Desteklenen Cihazlar başlıklı makaleyi inceleyin.
Canlı yayına erişmek içinCameraLiveStream özelliğinin uygun GenerateFormatStream komutunu kullanın.
RTSP akışı için CameraLiveStream özelliği komutunun GenerateRtspStream komutu, akış URL'sini ve ilgili streamToken
öğesini döndürür:
POST /enterprises/project-id /devices/device-id :executeCommand { "command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream
", "params" : {} }
{ "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 akış URL'sini kullanın:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
RTSP canlı yayın URL'leri müşteriler arasında paylaşılamaz. Yayın URL'si aynı anda yalnızca bir istemci tarafından kullanılabilir. Aynı anda aynı kameradan birden fazla istemci yayın yapmak istiyorsa her istemci için RTSP komutları gönderilmeli ve her istemci kendi yayın URL'sini kullanmalıdır.
Canlı yayını uzatma
Kamera canlı yayın oturumları yalnızca 5 dakika sürer. Bir canlı yayının süresini uzatmak istiyorsanız oluşturduğunuz yayın biçimi içinCameraLiveStream özelliğinin uygun ExtendFormatStream (Yayın süresini uzat) komutunu kullanın.
Bir RTSP yayınını uzatmak için yeni streamExtensionToken
ve streamToken
değerleri almak üzere CameraLiveStream özelliği komutunun ExtendRtspStream komutunu kullanın:
POST /enterprises/project-id /devices/device-id :executeCommand { "command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream
", "params" : { "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..." } }
{ "results" : { "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "streamToken" : "g.0.newStreamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Canlı yayını izlemeye devam etmek için yayın URL'sini bu yeni değerlerle güncelleyin:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Canlı yayını durdurma
Artık kullanmadığınız kamera canlı yayınlarını durdurmanız ve akışı geçersiz kılmanız gerekir. Bunu yapmak için, oluşturduğunuz yayın biçimi içinCameraLiveStream özelliğinin uygun StopFormatStream komutunu kullanın.
Bir RTSP yayınını durdurmak için CameraLiveStream özelliğinin StopRtspStream komutuyla jetonu geçersiz kılın:
POST /enterprises/project-id /devices/device-id :executeCommand { "command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
", "params" : { "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..." } }
{}
Hatalar
Bu cihazla ilgili olarak aşağıdaki hata kodları döndürülebilir:
Hata Mesajı | TBG | Sorun giderme |
---|---|---|
Kamera görüntüsü artık indirilemez. | DEADLINE_EXCEEDED |
Etkinlik resimlerinin süresi, etkinlik yayınlandıktan 30 saniye sonra dolar. Süre dolmadan önce resmi indirin. |
Etkinlik kimliği kameraya ait değil. | FAILED_PRECONDITION |
Kamera etkinliği tarafından döndürülen doğru eventID değerini kullanın. |
API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.