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ı listeleyin
structures
uç noktasına basit bir GET çağrısı yapmak için curl
kodunu 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 devices
uç noktasına bir GET çağrısı yapın.
cihazların listesini al:
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 bilgisini kopyalayın. Diğer API çağrıları için bu gereklidir.
Bir cihazla ilgili bilgileri alma
Belirli bir cihazla ilgili bilgi almak için device-id numarasına GET çağrısı yapın uç nokta:
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 bir şekilde olmalıdır ancak yalnızca ilgili cihaz için geçerlidir:
{ "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
Başarılı bir GET çağrısıyla erişiminizi doğruladıktan sonra, komutunu çalıştırın:
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. Eğer UNAUTHENTICATED yanıtı alırsanız jetonun süresi dolmuş olabilir. yenileme jetonu ile yeni bir erişim jetonu.
Diğer hatalar
Şu tanımlayıcı için Hata Kodu Referansı'na bakın: hata kodlarının tam listesini Device Access inceleyin.