Mevcut erişim jetonu ve ilk cihaz listesi çağrısı hazır olduğunda 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
yöntemini 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 için yapıları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 bir 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ı, Device Accessprojenize bağlı cihazların listesini döndürür. Her cihazın kendine özgü özellikleri 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 kopyalayın. Diğer API çağrıları için bu bilgiye ihtiyacınız olacaktır.
Bir cihazla ilgili bilgileri alma
Belirli bir cihazla ilgili bilgi almak için device-id uç noktasına bir GET araması 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 olmalı, ancak yalnızca belirli bir cihaz için olmalıdır:
{ "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 aramasıyla doğruladıktan sonra, yetkilendirdiğiniz cihazın türüne bağlı olarak bir komut çalıştırmayı 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 gerçekleşir:
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
Kimlik doğrulanamadı
SDM API'si erişim jetonları yalnızca 1 saat boyunca geçerlidir. GÖSTERİLMEYEN bir yanıt alırsanız jetonun süresi dolmuş olabilir. Yeni bir erişim jetonu almak için yenileme jetonunuzu kullanın.
Diğer hatalar
Hata kodlarının tam listesi için Hata Kodu Referansı'nabakın. Device Access