Erişim jetonunuz hazır ve ilk cihaz listesi çağrısı yapıldı. Artık cihazınıza erişmek ve cihazınızı kontrol etmek için SDM API'yi kullanmaya hazırsınız.
Yapıları ve cihazları listeleme
structures
uç noktasına basit bir GET çağrısı yapmak için curl
'ü kullanın:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Başarılı bir çağrı,Device Access projenize bağlı hesapların yapılarının listesini döndürür:
{ "structures": [ { "name": "enterprises/project-id/structures/structure-id", "traits": { "sdm.structures.traits.Info": { "customName": "structure-name" } } } ] }
Henüz yapmadıysanız cihazların listesini almak için devices
uç noktasına GET çağrısı yapın:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Başarılı bir çağrı, projenize bağlı cihazların listesini döndürür. Device Access Her cihazın, kullanılabilen özelliklerle ilgili kendine özgü bir listesi vardır:
{ "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" } ] } ] }
Her cihaz için device-id değerini kopyalayın. Diğer API çağrıları için bu değere ihtiyacınız olacaktır.
Bir cihazla ilgili bilgi alma
Belirli bir cihazla ilgili bilgi almak için device-id ucuna GET çağrısı gönderin:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Yanıt, öncekine benzer ancak yalnızca belirli cihaz içindir:
{ "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" } ] }
Komut yürütme
Erişiminizi başarılı bir GET çağrısıyla doğruladıktan sonra, yetkilendirdiğiniz cihaz türüne bağlı olarak bir komut yürütmeyi deneyin:
TERMOSTAT
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" : {}
}'
Aramanız başarılı olursa aşağıdaki sonuçlar ortaya çıkar:
TERMOSTAT
Boş bir yanıt alırsınız ve fiziksel termostat mevcut modunu komut parametrelerinde belirtilen moda değiştirir.
{}
KAMERA
Canlı yayın URL'si ve ilgili jetonları alırsınız.
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Sorun giderme
Kimliği doğrulanmamış
SDM API'si için erişim jetonları yalnızca 1 saat boyunca geçerlidir. UNAUTHENTICATED yanıtı alırsanız jetonun süresi dolmuş olabilir. Yeni bir erişim jetonu almak için yeniden yenileme jetonunuzu kullanın.
Diğer hatalar
Hata kodlarının tam listesi için Hata Kodu Referansı'na bakın. Device Access