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

Pola

W przypadku tego atrybutu 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 Sound (dźwięk) – zdarzenie 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ć adres 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" : "A5IjnkqncxJfhrcF14XMYT7IPi..."
  }
}

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ązane zdjęcie z kamery. string
Przykład: „A5IjnkqncxJfhrcF14XMYT7IPi...”

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 HTTP Authorization 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 z kamery.

Jeśli na przykład współczynnik proporcji aparatu to 4:3, aby pobrać obraz z aparatu o 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ą 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 podano żadnego z tych parametrów, dla parametru width wybierana jest wartość domyślna 480.

Więcej informacji o właściwościach obrazu znajdziesz w  cechie CameraImage .

Błędy

W związku z tą cechą 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 zdarzeń wygasają 30 sekund po opublikowaniu zdarzenia. 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 zarejestrowane przez kamerę.

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