Görüntülü Reklam Ağı

Nest Hub Max

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:

ÖzellikAçıklamaKomutlarEtkinlikler
CameraEventImageBu özellik, etkinliklerden resim oluşturmayı destekleyen tüm cihazlara aittir.GenerateImage
CameraImageBu özellik, resim çekmeyi destekleyen tüm cihazlara aittir.
CameraLiveStreamBu özellik, canlı yayını destekleyen tüm cihazlara aittir.GenerateRtspStream
ExtendRtspStream
StopRtspStream
CameraMotionBu özellik, hareket algılama etkinliklerini destekleyen tüm cihazlara aittir.Hareket
CameraPersonBu özellik, kişi algılama etkinliklerini destekleyen tüm cihazlara aittir.Kişi
CameraSoundBu özellik, ses algılama etkinliklerini destekleyen tüm cihazlara aittir.Ses
BilgiBu ö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ı.
Örneğin, burada kamera hareket algıladı:

Yük

{
  "eventId" : "e5efc212-2b66-454c-8a17-ea2302586547",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "KYp0O88IrEB6lMnbADZLkjqcYN...", } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
Bu etkinliğin yükü,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" : "fbFikofb9nWN1onMhn1tgwcIwI..."
  }
}

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 ve height 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.