Dengan adanya token akses dan panggilan daftar perangkat awal yang dilakukan, sekarang Anda siap menggunakan SDM API untuk mengakses dan mengontrol perangkat.
Mencantumkan struktur dan perangkat
Gunakan curl
untuk melakukan panggilan GET sederhana ke endpoint structures
:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Panggilan yang berhasil akan menampilkan daftar struktur untuk akun yang ditautkan ke projectDevice Access Anda:
{ "structures": [ { "name": "enterprises/project-id/structures/structure-id", "traits": { "sdm.structures.traits.Info": { "customName": "structure-name" } } } ] }
Jika Anda belum melakukannya, lakukan panggilan GET ke endpoint devices
untuk
mendapatkan daftar perangkat:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Panggilan yang berhasil akan menampilkan daftar perangkat yang ditautkan ke project Device Access Anda. Setiap perangkat memiliki daftar unik tentang karakteristik yang tersedia:
{ "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" } ] } ] }
Salin device-id untuk setiap perangkat, Anda akan membutuhkannya untuk panggilan API lainnya.
Mendapatkan informasi untuk perangkat
Untuk mendapatkan informasi perangkat tertentu, lakukan panggilan GET ke endpoint 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'
Responsnya harus serupa seperti sebelumnya, tetapi hanya untuk perangkat tertentu:
{ "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" } ] }
Menjalankan perintah
Setelah memvalidasi akses dengan panggilan GET yang berhasil, coba jalankan perintah bergantung pada jenis perangkat yang telah Anda beri otorisasi:
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" : {}
}'
Jika panggilan telepon Anda berhasil, hasil berikut akan terjadi:
TERMOSTAT
Anda akan menerima respons kosong dan termostat fisik mengubah mode saat ini ke mode yang ditentukan dalam parameter perintah.
{}
KAMERA
Anda akan menerima URL live stream dan token terkait.
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
Pemecahan masalah
Tidak diautentikasi
Token akses untuk SDM API hanya valid selama 1 jam. Jika Anda mendapatkan respons UNAUTHENTICATED, masa berlaku token mungkin telah berakhir. Gunakan token refresh untuk mendapatkan token akses baru.
Error lainnya
Buka Referensi Kode Error untuk melihat daftar lengkap Device Access kode error.