হাতে একটি অ্যাক্সেস টোকেন এবং প্রাথমিক ডিভাইস তালিকা কল করা হলে, আপনি এখন আপনার ডিভাইস অ্যাক্সেস এবং নিয়ন্ত্রণ করতে SDM API ব্যবহার করতে প্রস্তুত৷
কাঠামো এবং ডিভাইসের তালিকা করুন
structures শেষ পয়েন্টে একটি সাধারণ GET কল করতে curl ব্যবহার করুন:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'একটি সফল কল আপনার সাথে লিঙ্ক করা অ্যাকাউন্টগুলির জন্য কাঠামোর একটি তালিকা প্রদান করেDevice Access প্রকল্প:
{
"structures": [
{
"name": "enterprises/project-id/structures/structure-id",
"traits": {
"sdm.structures.traits.Info": {
"customName": "structure-name"
}
}
}
]
} আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে ডিভাইসগুলির একটি তালিকা পেতে devices এন্ডপয়েন্টে একটি GET কল করুন:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'একটি সফল কল আপনার সাথে লিঙ্ক করা ডিভাইসের একটি তালিকা প্রদান করে Device Accessপ্রকল্প প্রতিটি ডিভাইসের উপলব্ধ বৈশিষ্ট্যগুলির নিজস্ব অনন্য তালিকা রয়েছে:
{
"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"
}
]
}
]
}প্রতিটি ডিভাইসের জন্য device-id কপি করুন, অন্যান্য API কলের জন্য আপনার এটির প্রয়োজন হবে।
একটি ডিভাইসের জন্য তথ্য পান
একটি নির্দিষ্ট ডিভাইসের তথ্য পেতে, device-id এন্ডপয়েন্টে একটি GET কল করুন:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'প্রতিক্রিয়া আগের মতই হওয়া উচিত, কিন্তু শুধুমাত্র নির্দিষ্ট ডিভাইসের জন্য:
{
"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"
}
]
}একটি কমান্ড চালান
একটি সফল GET কলের মাধ্যমে আপনার অ্যাক্সেস যাচাই করার পরে, আপনি অনুমোদিত ডিভাইসের ধরণের উপর নির্ভর করে একটি কমান্ড কার্যকর করার চেষ্টা করুন:
থার্মোস্ট্যাট
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"
}
}'ক্যামেরা
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" : {}
}'আপনার কল সফল হলে, নিম্নলিখিত ফলাফলগুলি ঘটবে:
থার্মোস্ট্যাট
আপনি একটি খালি প্রতিক্রিয়া পাবেন এবং ভৌত থার্মোস্ট্যাট তার বর্তমান মোডকে কমান্ড প্যারামিটারে নির্দিষ্ট করা মোডে পরিবর্তন করে।
{}ক্যামেরা
আপনি একটি লাইভ স্ট্রিম URL এবং সম্পর্কিত টোকেন পাবেন।
{
"results" : {
"streamUrls" : {
"rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
},
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"streamToken" : "g.0.streamingToken",
"expiresAt" : "2018-01-04T18:30:00.000Z"
}
}সমস্যা সমাধান
অপ্রমাণিত
SDM API-এর অ্যাক্সেস টোকেন শুধুমাত্র 1 ঘন্টার জন্য বৈধ। আপনি যদি একটি অননুমোদিত প্রতিক্রিয়া পান, তাহলে টোকেনের মেয়াদ শেষ হয়ে গেছে। একটি নতুন অ্যাক্সেস টোকেন পেতে আপনার রিফ্রেশ টোকেন ব্যবহার করুন ।
অন্যান্য ত্রুটি
সম্পূর্ণ তালিকার জন্য ত্রুটি কোড রেফারেন্স দেখুন Device Access ত্রুটি কোড।