Schemat obrazu zdarzenia CameraEvent

Nest Cam (starsza wersja) Nest Hub Max Nest Doorbell (starsza wersja) 

sdm.devices.traits.CameraEventImage

Ta cecha należy do każdego urządzenia, które obsługuje generowanie obrazów na podstawie zdarzeń.

Pola

Brak dostępnych pól dla tej cechy.

Polecenia

GenerateImage

Udostępnia URL, z którego można pobrać zdjęcie z aparatu.

To polecenie obsługuje następujące zdarzenia:

Typ Element Opis
Zdarzenie Zdarzenie ruchu właściwości CameraMotion Kamera wykryła ruch.
Zdarzenie Zdarzenie Person o cechach CameraPerson Kamera wykryła jakąś osobę.
Zdarzenie Zdarzenie dźwięk związane z cechą CameraSound Kamera wykryła dźwięk.
Zdarzenie Zdarzenie typu chime związane z dzwonkiem DoorbellChime Naciśnięto dzwonek.
Użyj identyfikatora eventId z obsługiwanego zdarzenia w żądaniu polecenia, aby otrzymać adres URL do pobrania obrazu kamery powiązanego z tym zdarzeniem.

Żądanie i odpowiedź GenerateImage

Prośba

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
  "params" : {
    "eventId" : "oxyAe4z3_5a-1L6BH5FmxDyMeG..."
  }
}

Odpowiedź

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

Pola żądania GenerateImage

Pole Opis Typ danych
eventId Identyfikator zdarzenia, z którym chcesz przesłać żądanie powiązanego zdjęcia z kamery. string
Przykład: „oxyAe4z3_5a-1L6BH5FmxDyMeG...”

Pola odpowiedzi GenerateImage

Pole Opis Typ danych
url Adres URL, z którego można pobrać zdjęcie z aparatu. string
Przykład: „https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...”
token Token, który ma być używany w nagłówku autoryzacji HTTP podczas pobierania obrazu. string
Przykład: „g.0.eventToken”

Pobierz obraz z kamery

Wykonaj wywołanie GET dla metody url z poziomu odpowiedzi polecenia GenerateImage i użyj parametru token w nagłówku autoryzacji HTTP z autoryzacją podstawową, aby pobrać obraz z aparatu:

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...

Za pomocą parametrów zapytania width lub height możesz dostosować rozdzielczość pobranego obrazu. Musisz określić tylko jeden z tych parametrów. Drugi parametr jest skalowany automatycznie zgodnie ze współczynnikiem proporcji kamery.

Jeśli na przykład format kamery wynosi 4:3, aby pobrać obraz z aparatu w rozdzielczości 480 x 360, podaj szerokość lub wysokość:

Szerokość

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480

Wysokość

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360

Obowiązują też inne ograniczenia dotyczące adresu URL pobierania:

  • Jeśli w adresie URL podasz oba parametry, parametr width będzie używany, a height będzie ignorowany.
  • Jeśli w adresie URL nie podasz żadnego z tych parametrów, width będzie używać domyślnej wartości 480.

Informacje o właściwościach obrazu znajdziesz w opisie właściwości CameraImage .

Błędy

W związku z tą cechą mogą zostać zwrócone te kody błędów:

Komunikat o błędzie RPC Rozwiązywanie problemów
Zdjęcie z aparatu nie jest już dostępne do pobrania. DEADLINE_EXCEEDED Obrazy zdarzeń wygasają po 30 sekundach od opublikowania zdarzenia. Pamiętaj, aby pobrać obraz przed wygaśnięciem ważności.
Identyfikator zdarzenia nie należy do kamery. FAILED_PRECONDITION Użyj prawidłowej wartości eventID zwróconej przez zdarzenie kamery.

Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji kodu błędu interfejsu API.