Nachdem du ein Zugriffstoken hast und den ersten Aufruf der Geräteliste durchgeführt hast, kannst du jetzt die SDM API verwenden, um auf dein Gerät zuzugreifen und es zu steuern.
Gebäude und Geräte auflisten
Verwenden Sie curl
, um einen einfachen GET-Aufruf an den Endpunkt structures
zu senden:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Bei einem erfolgreichen Aufruf wird eine Liste der Gebäude für Konten zurückgegeben, die mit IhremDevice Access -Projekt verknüpft sind:
{ "structures": [ { "name": "enterprises/project-id/structures/structure-id", "traits": { "sdm.structures.traits.Info": { "customName": "structure-name" } } } ] }
Falls noch nicht geschehen, starte einen GET-Aufruf an den Endpunkt devices
, um
eine Liste der Geräte abrufen:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Bei einem erfolgreichen Anruf wird eine Liste der Geräte zurückgegeben, die mit Device Accessverknüpft sind Projekt arbeiten. Für jedes Gerät ist eine eigene Liste der verfügbaren Merkmale verfügbar:
{ "devices": [ { "name": "enterprises/project-id/devices/device-id", "type": "sdm.devices.types.device-type", "traits": { ... }, "parentRelations": [ { "parent": "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName": "device-room-name" } ] } ] }
Kopieren Sie den device-id für jedes Gerät. Sie benötigen ihn für andere API-Aufrufe.
Informationen zu einem Gerät abrufen
Wenn Sie Informationen zu einem bestimmten Gerät abrufen möchten, senden Sie einen GET-Aufruf an den device-id-Endpunkt:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Die Antwort sollte ähnlich wie zuvor aussehen, aber nur für das jeweilige Gerät:
{ "name": "enterprises/project-id/devices/device-id", "type": "sdm.devices.types.device-type", "traits": { ... }, "parentRelations": [ { "parent": "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName": "device-room-name" } ] }
Befehl ausführen
Versuchen Sie nach der Validierung des Zugriffs mit einem erfolgreichen GET-Aufruf, eine abhängig vom autorisierten Gerätetyp:
THERMOSTAT
curl -X POST \
'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token' \
--data-raw '{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}'
KAMERA
curl -X POST \
'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token' \
--data-raw '{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream",
"params" : {}
}'
Wenn der Aufruf erfolgreich ist, geschieht Folgendes:
THERMOSTAT
Sie erhalten eine leere Antwort und der physische Thermostat ändert seine den aktuellen Modus in den in den Befehlsparametern angegebenen Modus.
{}
KAMERA
Du erhältst eine Livestream-URL und zugehörige Tokens.
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Fehlerbehebung
Nicht authentifiziert
Zugriffstokens für die SDM API sind nur eine Stunde lang gültig. Wenn erhalten Sie eine UNAUTHENTICATED-Antwort, ist das Token wahrscheinlich abgelaufen. Verwenden Sie Ihr Aktualisierungstoken, um ein neues ein Zugriffstoken hinzufügen.
Weitere Fehler
In der Fehlercode-Referenz finden Sie die vollständige Liste der Device Access Fehlercodes.