Tutti i campanelli Nest legacy sono supportati nell'API Smart Device Management (SDM). Questo dispositivo restituisce un tipo di dispositivo DOORBELL:
sdm.devices.types.DOORBELL
Google Nest Doorbell (precedente) è dotato di una videocamera che funziona come un tipo di dispositivo di FOTOCAMERA.
Tratti
Riferimento
I seguenti trait, comandi o eventi sono correlati a questo dispositivo:
Tratto | Descrizione | Comandi | Eventi |
---|---|---|---|
CameraEventImage | Questo trait appartiene a qualsiasi dispositivo che supporta la generazione di immagini dagli eventi. | GenerateImage | |
CameraImage | Questo tratto appartiene a qualsiasi dispositivo che supporta l'acquisizione di immagini. | ||
CameraLiveStream | Questo trait appartiene a qualsiasi dispositivo che supporta il live streaming. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Questo trait appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento dei movimenti. | Movimento | |
CameraPerson | Questo trait appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento persone. | Persona | |
CameraSound | Questo trait appartiene a qualsiasi dispositivo che supporta gli eventi di rilevamento dei suoni. | Audio | |
DoorbellChime | Questo trait appartiene a qualsiasi dispositivo che supporta il cicalino di un campanello e gli eventi di pressione correlati. | Cicalino | |
Informazioni | Questo trait appartiene a qualsiasi dispositivo per le informazioni relative al dispositivo. |
JSON
L'assenza di un trait in una risposta GET indica che il trait o la funzionalità non sono attualmente disponibili per il dispositivo. Per ulteriori informazioni, consulta Tipi di dispositivo.
{ "type" : "sdm.devices.types.DOORBELL", "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.DoorbellChime" : {}, "sdm.devices.traits.Info" : { "customName" : "My device" } } }
Gestire gli eventi del campanello e della videocamera
I seguenti eventi possono essere attivati da un tipo di dispositivo DOORBELL :Tipo | Elemento | Descrizione |
---|---|---|
Evento | Evento Movimento del trait CameraMotion | La videocamera ha rilevato un movimento. |
Evento | Evento Persona del tratto CameraPerson | La videocamera ha rilevato una persona. |
Evento | Evento Suono del trait CameraSound | La videocamera ha rilevato un suono. |
Evento | Evento Cicalino del trait DoorbellChime | Il campanello è stato suonato. |
Payload
{ "eventId" : "119bfb86-3c27-4e12-ba3c-b35177badda0",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "i_MVBkcoLJkn7d6J1GIhbq5M5m..." } } } "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 relativa all'evento:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "3T7wSCdxnQKNnna6Yxg4DXlLFW..."
}
}
Risposta
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Scarica un'immagine della fotocamera
Esegui una chiamata GET a url
da una risposta del comando GenerateImage, utilizzando token
nell'intestazione di autorizzazione HTTP con autorizzazione di base per scaricare 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 dell'immagine scaricata. È necessario specificare solo uno di questi parametri. L'altro parametro viene ridimensionato automaticamente in base alle proporzioni della videocamera.
Ad esempio, se le proporzioni della videocamera sono 4:3, per scaricare l'immagine della fotocamera 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 nell'URL vengono forniti entrambi i parametri, 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 la caratteristica CameraImage per informazioni sulle proprietà delle immagini.
Accedere a un live streaming
È possibile accedere al live streaming di una videocamera. Per questo dispositivo sono supportati i seguenti formati di streaming:
- RTSP
Per un elenco completo delle videocamere e dei formati di streaming supportati, consulta la pagina Dispositivi supportati.
Per accedere a un live streaming, utilizza il comando GeneraFormatstream appropriato del trait FotocameraLiveStream.
RTSP
Per uno stream RTSP, il 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 desiderano trasmettere in streaming contemporaneamente dalla stessa videocamera, è necessario inviare i comandi RTSP per ogni singolo client e ogni singolo client deve utilizzare il proprio URL di stream.
Estendere un live streaming
Le sessioni di live streaming con la videocamera hanno una durata massima di 5 minuti. Se devi estendere la durata di un live streaming, utilizza il comando EstendiFormatstream appropriato del trait VideocameraLiveStream per il formato dello stream che hai generato.
RTSP
Per estendere uno stream RTSP, usa il comando ExtendRtspStream del comando trait 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 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 invalidarlo. Per farlo, utilizza il comando InterrompiFormatstream appropriato del trait VideocameraLiveStream per il formato dello stream che hai generato.
RTSP
Per interrompere uno stream RTSP, utilizza il token per invalidare il comando StopRtspStream del comando trait CameraLiveStream:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Risposta
{}
Errori
In relazione a questo dispositivo, potrebbero essere restituiti i seguenti codici di errore:
Messaggio di errore | RPC | Risolvere i problemi |
---|---|---|
L'immagine della fotocamera non è più disponibile per il download. | DEADLINE_EXCEEDED |
Le immagini degli eventi scadono 30 secondi dopo la loro pubblicazione. Assicurati di scaricare l'immagine prima della scadenza. |
L'ID evento non appartiene alla videocamera. | FAILED_PRECONDITION |
Usa il eventID corretto restituito dall'evento della videocamera. |
Consulta la pagina Riferimento sui codici di errore delle API per l'elenco completo dei codici di errore delle API.