
Alle alten Nest-Türklingeln werden in der Smart Device Management (SDM) API unterstützt. Dieses Gerät gibt den Gerätetyp DOORBELL zurück:
sdm.devices.types.DOORBELL
Die Google Nest Doorbell (alt) hat eine Kamera, die wie ein Gerät vom Typ CAMERA funktioniert.
Attribute
Referenz
Die folgenden Traits, Befehle oder Ereignisse sind mit diesem Gerät verknüpft:
Attribut | Beschreibung | Befehle | Ereignisse |
---|---|---|---|
CameraEventImage | Dieses Merkmal gehört zu allen Geräten, die die Generierung von Bildern aus Ereignissen unterstützen. | GenerateImage | |
CameraImage | Dieses Attribut gehört zu allen Geräten, die das Aufnehmen von Bildern unterstützen. | ||
CameraLiveStream | Dieses Merkmal gehört zu allen Geräten, die Livestreaming unterstützen. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | Dieses Merkmal gehört zu allen Geräten, die Ereignisse zur Bewegungserkennung unterstützen. | Bewegung | |
CameraPerson | Dieses Merkmal gehört zu allen Geräten, die Ereignisse zur Personenerkennung unterstützen. | Person | |
CameraSound | Dieses Merkmal gehört zu allen Geräten, die Ereignisse zur Geräuscherkennung unterstützen. | Ton | |
DoorbellChime | Dieses Merkmal gehört zu allen Geräten, die einen Türklingelton und zugehörige Ereignisse beim Drücken der Klingel unterstützen. | Glocke | |
Info | Dieses Merkmal gehört zu jedem Gerät für gerätebezogene Informationen. |
JSON
Wenn ein Merkmal in einer GET-Antwort fehlt, bedeutet das, dass das Merkmal oder die Funktion derzeit nicht für das Gerät verfügbar ist. Weitere Informationen finden Sie unter Gerätetypen.
{ "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" } } }
Türklingel- und Kameraereignisse verarbeiten
Die folgenden Ereignisse können von einem Gerät vom Typ DOORBELL ausgelöst werden:Typ | Element | Beschreibung |
---|---|---|
Ereignis | Bewegungsereignis des Traits „CameraMotion“ | Die Kamera hat eine Bewegung erkannt. |
Ereignis | Person-Ereignis des CameraPerson-Traits | Eine Person wurde von der Kamera erkannt. |
Ereignis | Sound-Ereignis des CameraSound-Traits | Die Kamera hat ein Geräusch erkannt. |
Ereignis | Chime-Ereignis des DoorbellChime-Traits | Die Türklingel wurde betätigt. |
Nutzlast
{ "eventId" : "ffe4eef0-9acb-4632-935f-812490778c3f",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "MfXOPQqfVsRpCxIqyGdRVFqbgn..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
, das mit dem Befehl GenerateImage verwendet werden kann. Dieser Befehl gibt eine Download-URL für das Kamerabild zurück, das sich auf das Ereignis bezieht:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "9CGIaxy2OIN7WD5S4vsM8mmD5D..."
}
}
Antwort
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
Kamerabild herunterladen
Führen Sie einen GET-Aufruf an url
aus einer GenerateImage-Befehlsantwort aus. Verwenden Sie dazu die token
im HTTP-Autorisierungsheader mit der Basisauthentifizierung, um das Kamerabild herunterzuladen:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
Mit den Abfrageparametern width
oder height
können Sie die Auflösung des heruntergeladenen Bildes anpassen. Nur einer dieser Parameter muss angegeben werden. Der andere Parameter wird automatisch entsprechend dem Seitenverhältnis der Kamera skaliert.
Wenn das Seitenverhältnis der Kamera beispielsweise 4:3 ist, können Sie zum Herunterladen des Kamerabilds mit einer Auflösung von 480 × 360 entweder die Breite oder die Höhe angeben:
Breite
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480
Höhe
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360
Für die Download-URL gelten weitere Einschränkungen:
- Wenn beide Parameter in der URL angegeben sind, wird
width
verwendet undheight
ignoriert. - Wenn keiner der Parameter in der URL angegeben ist, wird für die
width
der Standardwert 480 ausgewählt.
Informationen zu Bildeigenschaften finden Sie im CameraImage -Trait.
Livestream ansehen
Auf den Livestream einer Kamera kann zugegriffen werden. Die folgenden Streamformate werden für dieses Gerät unterstützt:
- RTSP
Eine vollständige Liste der Kameras und unterstützten Streamformate finden Sie unter Unterstützte Geräte.
Verwenden Sie zum Aufrufen eines Livestreams den entsprechenden Befehl „GenerateFormatStream“ des TraitsCameraLiveStream.
RTSP
Bei einem RTSP-Stream gibt der Befehl GenerateRtspStream des CameraLiveStream-Traits die Stream-URL und die zugehörigen streamToken
zurück:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream
",
"params" : {}
}
Antwort
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Verwenden Sie dann die Stream-URL, um auf den Livestream der Kamera zuzugreifen:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
RTSP-Livestream-URLs können nicht zwischen Clients geteilt werden. Eine Stream-URL kann jeweils nur von einem Client verwendet werden. Wenn mehrere Clients gleichzeitig von derselben Kamera streamen möchten, müssen für jeden einzelnen Client RTSP-Befehle gesendet werden und jeder einzelne Client muss seine eigene Stream-URL verwenden.
Livestream verlängern
Livestream-Sitzungen der Kamera sind nur 5 Minuten lang gültig. Wenn Sie die Lebensdauer eines Livestreams verlängern müssen, verwenden Sie den entsprechenden ExtendFormatStream-Befehl des CameraLiveStream -Traits für das von Ihnen generierte Streamformat.
RTSP
Verwende den Befehl ExtendRtspStream des CameraLiveStream-Traits, um einen RTSP-Stream zu verlängern und neue streamExtensionToken
- und streamToken
-Werte zu erhalten:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Antwort
{ "results" : { "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "streamToken" : "g.0.newStreamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Aktualisieren Sie die Stream-URL mit diesen neuen Werten, um den Livestream weiterhin ansehen zu können:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
Livestream beenden
Wenn Sie einen Kamera-Livestream nicht mehr verwenden, sollten Sie ihn beenden und ungültig machen. Verwenden Sie dazu den entsprechenden Befehl „StopFormatStream“ desCameraLiveStream-Traits für das von Ihnen generierte Streamformat.
RTSP
Verwenden Sie zum Beenden eines RTSP-Streams das Token, das mit dem Befehl StopRtspStream des CameraLiveStream-Traits ungültig gemacht werden soll:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
Antwort
{}
Fehler
Die folgenden Fehlercodes können in Bezug auf dieses Gerät zurückgegeben werden:
Fehlermeldung | RPC | Fehlerbehebung |
---|---|---|
Das Kamerabild kann nicht mehr heruntergeladen werden. | DEADLINE_EXCEEDED |
Veranstaltungsbilder laufen 30 Sekunden nach der Veröffentlichung der Veranstaltung ab. Laden Sie das Bild vor Ablauf des Gültigkeitszeitraums herunter. |
Die Ereignis-ID gehört nicht zur Kamera. | FAILED_PRECONDITION |
Verwenden Sie die richtige eventID , die vom Kameraereignis zurückgegeben wird. |
Eine vollständige Liste der API-Fehlercodes finden Sie in der API-Fehlercode-Referenz.