হাতে একটি অ্যাক্সেস টোকেন এবং প্রাথমিক ডিভাইস তালিকা কল করা হলে, আপনি এখন আপনার ডিভাইস অ্যাক্সেস এবং নিয়ন্ত্রণ করতে 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 ত্রুটি কোড।