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

Pola

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

Polecenia

GenerateImage

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

To polecenie obsługuje te zdarzenia:

Typ Element Opis
Zdarzenie Zdarzenie Ruch atrybutu CameraMotion Kamera wykryła ruch.
Zdarzenie Zdarzenie Osoba atrybutu CameraPerson Kamera wykryła osobę.
Zdarzenie Zdarzenie Sound atrybutu CameraSound Kamera wykryła dźwięk.
Zdarzenie zdarzenie Chime atrybutu DoorbellChime, Dzwonek został naciśnięty.
Użyj eventId z obsługiwanego zdarzenia w prośbie o polecenie, 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" : "G3bcBgWL_M1vso939z5WqrcOE5..."
  }
}

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 obraz z kamery. string
Przykład: „G3bcBgWL_M1vso939z5WqrcOE5…“.

Pola odpowiedzi funkcji 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 zdjęcia z aparatu

Aby pobrać obraz z aparatu, wykonaj wywołanie GET do elementu url w odpowiedzi na polecenie GenerateImage , używając w nagłówku HTTP Authorization parametru Basic:token

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

Aby dostosować rozdzielczość pobieranego obrazu, użyj parametrów zapytania width lub height. Wystarczy podać tylko 1 z tych parametrów. Drugi parametr jest skalowany automatycznie na podstawie formatu obrazu aparatu.

Jeśli na przykład współczynnik proporcji aparatu wynosi 4:3, aby pobrać obraz 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ą też inne ograniczenia dotyczące adresu URL do pobrania:

  • Jeśli w adresie URL podano oba parametry, używany jest parametr width, a parametr height jest ignorowany.
  • Jeśli w adresie URL nie ma żadnego parametru, dla parametru width zostanie wybrana domyślna wartość 480.

Więcej informacji o właściwościach obrazu znajdziesz w artykule 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
Obraz z aparatu 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łowej wartości eventID zwróconej przez zdarzenie związane z kamerą.

Pełną listę kodów błędów interfejsu API znajdziesz w przewodniku po kodach błędów interfejsu API.