Schemat CameraEventImage

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 wydarzeń.

Pola

W przypadku tej cechy nie ma dostępnych pól.

Polecenia

GenerateImage

Zawiera adres URL, z którego można pobrać obraz z kamery.

To polecenie obsługuje te zdarzenia:

Typ Element Opis
Zdarzenie Zdarzenie Motion cechy CameraMotion Kamera wykryła ruch.
Zdarzenie Zdarzenie Person cechy CameraPerson Kamera wykryła osobę.
Zdarzenie Zdarzenie Sound cechy CameraSound Kamera wykryła dźwięk.
Zdarzenie Zdarzenie Chime cechy DoorbellChime Dzwonek został naciśnięty.
Użyj w żądaniu polecenia eventId z obsługiwanego zdarzenia, aby otrzymać URL pobierania obrazu z kamery powiązanego z tym zdarzeniem.

Żądanie i odpowiedź GenerateImage

Żądanie

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

Odpowiedź

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

Pola żądania GenerateImage

Pole Opis Typ danych
eventId Identyfikator zdarzenia, dla którego chcesz poprosić o powiązany obraz z kamery. string
Przykład: „CalbCi1HYfqN97L9FGUXXGCrK2...”.

Pola odpowiedzi GenerateImage

Pole Opis Typ danych
url Adres URL, z którego można pobrać obraz z kamery. string
Przykład: „https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1..."
token Token do użycia w nagłówku autoryzacji HTTP podczas pobierania obrazu. string
Przykład: „g.0.eventToken”

Pobieranie obrazu z kamery

Wykonaj wywołanie GET do url z odpowiedzi na polecenie GenerateImage lub , używając token w nagłówku autoryzacji HTTP z autoryzacją podstawową, aby pobrać obraz z kamery:

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

Użyj parametrów zapytania width lub height, aby dostosować rozdzielczość pobranego obrazu. Wystarczy podać tylko jeden z tych parametrów. Drugi parametr jest automatycznie skalowany zgodnie z formatem obrazu kamery.

Jeśli na przykład współczynnik proporcji aparatu to 4:3, aby pobrać obraz z aparatu o rozdzielczości 480 x 360, określ 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ą inne ograniczenia dotyczące adresu URL pobierania:

  • Jeśli w adresie URL podane są oba parametry, używany jest parametr width, a parametr height jest ignorowany.
  • Jeśli w adresie URL nie podasz żadnego z tych parametrów, domyślna wartość parametru width wyniesie 480.

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

Błędy

W związku z tym atrybutem mogą być zwracane te kody błędów:

Komunikat o błędzie RPC Rozwiązywanie problemów
Obraz z kamery nie jest już dostępny do pobrania. DEADLINE_EXCEEDED Obrazy wydarzeń wygasają 30 sekund po opublikowaniu wydarzenia. Pamiętaj, aby pobrać obraz przed wygaśnięciem.
Identyfikator zdarzenia nie należy do kamery. FAILED_PRECONDITION Użyj prawidłowego parametru eventID zwróconego przez zdarzenie kamery.

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