Google Nest Hub Max display è supportata nell'API Smart Device Management (SDM). Questo dispositivo restituisce un tipo di dispositivo di DISPLAY:
sdm.devices.types.DISPLAY
Google Nest Hub Max è dotato di una videocamera, che funziona come una tipo di dispositivo di CAMERA.
Tratti
Riferimento
I seguenti trait, comandi o eventi sono correlati a questo dispositivo:
Tratto | Descrizione | Comandi | Eventi |
---|---|---|---|
CameraEventImage | Questo tratto appartiene a qualsiasi dispositivo che supporta la generazione di immagini da eventi. | GenerateImage | |
CameraImage | Questo tratto appartiene a qualsiasi dispositivo che supporta lo scatto di immagini. | ||
CameraLiveStream | Questo tratto appartiene a qualsiasi dispositivo che supporta il live streaming. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Questo tratto appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento dei movimenti. | Movimento | |
CameraPerson | Questo tratto appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento persone. | Persona | |
CameraSound | Questo tratto appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento dei suoni. | Audio | |
Informazioni | Questo tratto appartiene a qualsiasi dispositivo per le informazioni relative a tale dispositivo. |
JSON
L'assenza di un tratto in una risposta GET indica che il tratto o funzione non è attualmente disponibile per il dispositivo. Consulta Tipi di dispositivi informazioni.
{ "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 Movimento del tratto CameraMotion | La videocamera ha rilevato un movimento. |
Evento | Evento Persona del tratto CameraPersona | La videocamera ha rilevato una persona. |
Evento | Evento Sound del tratto CameraSound | La videocamera ha rilevato un suono. |
Payload
{ "eventId" : "6d12911e-0181-495c-97b5-b6e8884c50ae",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.CameraMotion.Motion
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "FJ-QMyhCTKninhnimPOwVDjELx...", } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
che può essere utilizzato con
GenerateImage
. Questo comando restituisce un URL di download per l'immagine della fotocamera correlata
dell'evento:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "1GfoI8sZUnc79jrq7YfVodeqtf..."
}
}
Risposta
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Scarica un'immagine della fotocamera
Effettua una chiamata GET al url
da un
Risposta del comando GenerateImage,
utilizzando token
nell'intestazione Autorizzazione HTTP con autorizzazione di base, per
scarica l'immagine della fotocamera:
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 del
immagine scaricata. È necessario specificare solo uno di questi parametri. L'altro
viene ridimensionato automaticamente in base alle proporzioni della fotocamera.
Ad esempio, se le proporzioni della fotocamera sono 4:3, per scaricare l'immagine della fotocamera con una risoluzione di 480 x 360 specificare 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 agli URL di download:
- Se nell'URL vengono forniti entrambi i parametri, viene utilizzato
width
eheight
viene ignorato. - Se nell'URL non viene fornito nessuno dei due parametri, viene scelto il valore predefinito 480 per l'URL
width
.
Guarda il percorso CameraImage per informazioni sulle proprietà delle immagini.
Accedere a un live streaming
È possibile accedere al live streaming da una videocamera. I seguenti formati di stream sono supportato per questo dispositivo:
- RTSP
Per un elenco completo delle videocamere e dei formati di stream supportati, vedi Dispositivi supportati.
Per accedere a un live streaming, utilizza il pulsante GeneraFormatstream appropriato il comando CameraLiveStream tratto distintivo.
RTSP
Per un flusso RTSP,
Comando GenerateRtspStream del comando trait CameraLiveStream
restituisce l'URL dello stream e il relativo streamToken
:
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 client. Un URL dello stream può essere utilizzato da un solo client alla volta. Se più client vogliono trasmettere in streaming dalla stessa videocamera contemporaneamente, i comandi RTSP devono essere inviati per ogni singolo client e ogni singolo client deve utilizzare il proprio URL dello stream.
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, usa il comando EstendiFormatstream appropriato del percorso CameraLiveStream per il formato dello stream che hai generato.
RTSP
Per estendere un flusso RTSP, utilizza la classe
Il comando ExtendRtspStream del comando trait CameraLiveStream per
ricevi nuovi streamExtensionToken
e streamToken
valori:
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 visualizzare il live streaming:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Interrompere un live streaming
Ogni volta che non utilizzi più un live streaming della videocamera, devi interromperlo e invalida il flusso. Per farlo, utilizza lo streamFormatappropriato il comando CameraLiveStream per il formato di streaming che hai generato.
RTSP
Per interrompere un flusso RTSP, utilizza il token per invalidare il flusso con Comando StopRtspStream del comando trait di CameraLiveStream:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Risposta
{}
Errori
Potrebbero essere restituiti i seguenti codici di errore relativi a questo dispositivo:
Messaggio di errore | RPC | Risoluzione dei problemi |
---|---|---|
L'immagine della fotocamera non è più disponibile per il download. | DEADLINE_EXCEEDED |
Le immagini dell'evento 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 valore eventID corretto restituito dall'evento della videocamera. |
Consulta la documentazione sul codice di errore API per l'elenco completo dei codici di errore dell'API.