Maintenant que vous disposez d'un jeton d'accès et que l'appel initial de liste d'appareils a été effectué, vous êtes prêt à utiliser l'API SDM pour accéder à votre appareil et le contrôler.
Structures de listes et appareils
Utilisez curl
pour effectuer un appel GET simple au point de terminaison structures
:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Un appel réussi renvoie une liste de structures pour les comptes associés à votre projetDevice Access :
{ "structures": [ { "name": "enterprises/project-id/structures/structure-id", "traits": { "sdm.structures.traits.Info": { "customName": "structure-name" } } } ] }
Si vous ne l'avez pas déjà fait, appelez GET au point de terminaison devices
pour obtenir la liste des appareils:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Les appels réussis affichent la liste des appareils associés à votre projet Device Access. Chaque appareil dispose de sa propre liste de caractéristiques disponibles:
{ "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" } ] } ] }
Copiez le device-id pour chaque appareil. Vous en aurez besoin pour les autres appels d'API.
Obtenir des informations sur un appareil
Pour obtenir des informations sur un appareil spécifique, effectuez un appel GET au point de terminaison device-id:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
La réponse devrait être semblable à la précédente, mais uniquement pour l'appareil concerné:
{ "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" } ] }
Exécuter une commande
Après avoir validé votre accès avec un appel GET réussi, essayez d'exécuter une commande en fonction du type d'appareil que vous avez autorisé:
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"
}
}'
APPAREIL PHOTO
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" : {}
}'
Si votre appel aboutit, les résultats suivants se produisent:
thermostat
Vous recevez une réponse vide, et le thermostat physique remplace son mode actuel par celui spécifié dans les paramètres de commande.
{}
APPAREIL PHOTO
Vous recevez une URL de diffusion en direct et les jetons associés.
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Dépannage
Non authentifiés
Les jetons d'accès pour l'API SDM ne sont valides que pendant 1 heure. Si vous obtenez une réponse NON AUTHENTIFIÉE, le jeton a probablement expiré. Utilisez votre jeton d'actualisation pour obtenir un nouveau jeton d'accès.
Autres erreurs
Consultez la documentation de référence sur les codes d'erreur pour obtenir la liste complète des codes d'erreur Device Access .