Elinizde bir erişim jetonu ve ilk cihaz listesi çağrısı yapıldığında artık cihazınıza erişmek ve cihazınızı kontrol etmek için SDM API'yi kullanmaya hazır olmanız gerekir.
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 arama, hesabınıza bağlı hesaplar için yapıların listesini döndürür. Device Access proje:
{ "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 arama, Device Accesscihazınıza bağlı cihazların listesini döndürür. belirler. Her cihazın kendine özgü mevcut özellikler 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 bilgileri alma
Belirli bir cihazla ilgili bilgi almak için device-id ucuna GET çağrısı yapın:
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:
TERARAT
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:
TERARAT
Boş bir yanıt aldığınızda fiziksel termostat geçerli modu, komut parametrelerinde belirtilen moda ayarlar.
{}
KAMERA
Bir 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'nin 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ı Device Access bölümüne bakın.