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

Ta cecha nie ma żadnych pól.

Polecenia

GenerateImage

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

To polecenie obsługuje te zdarzenia:

Typ Element Opis
Zdarzenie Zdarzenie ruchu cechy CameraMotion Kamera wykryła ruch.
Zdarzenie Zdarzenie osoby cechy CameraPerson Kamera wykryła osobę.
Zdarzenie Zdarzenie dźwięku cechy CameraSound Kamera wykryła dźwięk.
Zdarzenie Zdarzenie dzwonka cechy DoorbellChime Naciśnięto dzwonek.
Aby otrzymać adres URL do pobrania obrazu z kamery powiązanego z danym zdarzeniem, użyj w żądaniu polecenia parametru eventId z obsługiwanego zdarzenia.

Żądanie i odpowiedź GenerateImage

Żądanie

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

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: „ibr7GkKYwm74nrUF9jf2FmYCTO...”

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

Aby pobrać obraz z kamery, wyślij żądanie GET na adres url z odpowiedzi na polecenie GenerateImage , używając token w nagłówku HTTP Authorization z autoryzacją podstawową:

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

Aby dostosować rozdzielczość pobranego obrazu, użyj parametrów zapytania width lub height. Wystarczy podać tylko jeden z tych parametrów. Drugi parametr jest automatycznie skalowany zgodnie ze współczynnikiem proporcji kamery.

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

  • Jeśli w adresie URL podano oba parametry, używana jest width, a height jest ignorowana.
  • Jeśli w adresie URL nie podano żadnego parametru, dla wybierana jest wartość domyślna 480 dla width.

Informacje o właściwościach obrazu znajdziesz w dokumentacji cechy 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 dokumencie API Error Code Reference kodów błędów interfejsu API.