
Il display di Google Nest Hub Max è supportato nell'API Smart Device Management (SDM). Questo dispositivo restituisce un tipo di dispositivo DISPLAY:
sdm.devices.types.DISPLAY
Google Nest Hub Max è dotato di una videocamera, che funziona come un tipo di dispositivo VIDEOCAMERA.
Tratti
Riferimento
Le seguenti caratteristiche, comandi o eventi sono correlati a questo dispositivo:
Tratto | Descrizione | Comandi | Eventi |
---|---|---|---|
CameraEventImage | Questa caratteristica appartiene a qualsiasi dispositivo che supporta la generazione di immagini dagli eventi. | GenerateImage | |
CameraImage | Questa caratteristica appartiene a qualsiasi dispositivo che supporta l'acquisizione di immagini. | ||
CameraLiveStream | Questa caratteristica appartiene a qualsiasi dispositivo che supporti il live streaming. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Questa caratteristica appartiene a qualsiasi dispositivo che supporti gli eventi di rilevamento del movimento. | Movimento | |
CameraPerson | Questa caratteristica appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento delle persone. | Person | |
CameraSound | Questa caratteristica appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento dei suoni. | Audio | |
Informazioni | Questo tratto appartiene a qualsiasi dispositivo per informazioni correlate al dispositivo. |
JSON
L'assenza di un tratto in una risposta GET indica che il tratto o la funzionalità non è attualmente disponibile per il dispositivo. Per ulteriori informazioni, consulta Tipi di dispositivi.
{ "type" : "sdm.devices.types.DISPLAY", "traits" : { "sdm.devices.traits.CameraEventImage" : {}, "sdm.devices.traits.CameraImage" : { "maxImageResolution" : { "width" : 1280, "height" : 960 } }, "sdm.devices.traits.CameraLiveStream" : { "maxVideoResolution" : { "width" : 640, "height" : 480 }, "videoCodecs" : ["H264"], "audioCodecs" : ["AAC"], "supportedProtocols" : ["WEB_RTC"] }, "sdm.devices.traits.CameraMotion" : {}, "sdm.devices.traits.CameraPerson" : {}, "sdm.devices.traits.CameraSound" : {}, "sdm.devices.traits.Info" : { "customName" : "My device" } } }
Gestire gli eventi della videocamera
I seguenti eventi possono essere attivati da un tipo di dispositivo DISPLAY:Tipo | Elemento | Descrizione |
---|---|---|
Evento | Evento Motion del tratto CameraMotion | La videocamera ha rilevato un movimento. |
Evento | Evento Persona del tratto CameraPersona | La videocamera ha rilevato una persona. |
Evento | Evento Suono del tratto CameraSound | La videocamera ha rilevato un suono. |
Payload
{ "eventId" : "3dd10ce8-d486-4204-a3eb-a122e9c19f08",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "DdWU-Lcm_Tsa_zduASoE-WbRnh...", } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
che può essere utilizzato con il comando
GenerateImage. Questo comando restituisce un URL di download per l'immagine della videocamera correlata all'evento:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "ufD3PFChNS_RuT5pHp-gKP2U4L..."
}
}
Risposta
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Scaricare un'immagine della videocamera
Esegui una chiamata GET a url
da una risposta al comando GenerateImage, utilizzando token
nell'intestazione di autorizzazione HTTP con autorizzazione di base, per scaricare l'immagine della videocamera:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
Utilizza i parametri di query width
o height
per personalizzare la risoluzione dell'immagine scaricata. È necessario specificare solo uno di questi parametri. L'altro
parametro viene scalato automaticamente in base alle proporzioni della videocamera.
Ad esempio, se le proporzioni della videocamera sono 4:3, per scaricare l'immagine della videocamera con una risoluzione di 480 x 360 specifica la larghezza o l'altezza:
Larghezza
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480
Altezza
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360
Si applicano altre limitazioni all'URL di download:
- Se entrambi i parametri vengono forniti nell'URL, viene utilizzato
width
eheight
viene ignorato. - Se nessuno dei due parametri viene fornito nell'URL, viene scelto un valore predefinito di 480 per
width
.
Consulta il tratto CameraImage per informazioni sulle proprietà dell'immagine.
Accedere a un live streaming
È possibile accedere al live streaming di una videocamera. Per questo dispositivo sono supportati i seguenti formati di stream:
- RTSP
Per un elenco completo delle videocamere e dei formati di streaming supportati, consulta Dispositivi supportati.
Per accedere a un live streaming, utilizza il comando GenerateFormatStream appropriato del trattoCameraLiveStream.
RTSP
Per uno stream RTSP, il comando
GenerateRtspStream del comando caratteristica CameraLiveStream
restituisce l'URL dello stream e il streamToken
correlato:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream
",
"params" : {}
}
Risposta
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Quindi, utilizza l'URL dello stream per accedere al live streaming della videocamera:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
Gli URL dei live streaming RTSP non possono essere condivisi tra i clienti. Un URL di stream può essere utilizzato da un solo client alla volta. Se più client vogliono eseguire lo streaming dalla stessa videocamera contemporaneamente, i comandi RTSP devono essere inviati per ogni singolo client e ogni singolo client deve utilizzare il proprio URL di streaming.
Estendere un live streaming
Le sessioni di live streaming della videocamera sono valide solo per 5 minuti. Se devi estendere la durata di un live streaming, utilizza il comando ExtendFormatStream appropriato del tratto CameraLiveStream per il formato dello stream che hai generato.
RTSP
Per estendere uno stream RTSP, utilizza il
comando ExtendRtspStream del tratto CameraLiveStream per
ottenere nuovi valori streamExtensionToken
e streamToken
:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Risposta
{ "results" : { "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "streamToken" : "g.0.newStreamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Aggiorna l'URL dello stream con questi nuovi valori per continuare a guardare il live streaming:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Interrompere un live streaming
Ogni volta che non utilizzi più lo streaming live di una videocamera, devi interromperlo e invalidarlo. Per farlo, utilizza il comando StopFormatStream appropriato del tratto CameraLiveStream per il formato dello stream che hai generato.
RTSP
Per interrompere uno stream RTSP, utilizza il token per invalidarlo con il comando StopRtspStream del tratto CameraLiveStream:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Risposta
{}
Errori
Per questo dispositivo potrebbero essere restituiti i seguenti codici di errore:
Messaggio di errore | RPC | Risoluzione dei problemi |
---|---|---|
L'immagine della videocamera non è più disponibile per il download. | DEADLINE_EXCEEDED |
Le immagini degli eventi scadono 30 secondi dopo la pubblicazione dell'evento. Assicurati di scaricare l'immagine prima della scadenza. |
L'ID evento non appartiene alla videocamera. | FAILED_PRECONDITION |
Utilizza il eventID corretto restituito dall'evento della videocamera. |
Consulta i riferimenti ai codici di errore dell'API per l'elenco completo dei codici di errore dell'API.