API ব্যবহার করুন

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

একটি ডিভাইসের জন্য তথ্য পান

কোনো নির্দিষ্ট ডিভাইসের তথ্য পেতে, 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" : {}
  }'

আপনার কল সফল হলে, নিম্নলিখিত ফলাফলগুলি ঘটে:

থার্মোস্ট্যাট

আপনি একটি খালি প্রতিক্রিয়া পান এবং ভৌত থার্মোস্ট্যাটটি তার বর্তমান মোড পরিবর্তন করে কমান্ড প্যারামিটারে নির্দিষ্ট করা মোডে চলে যায়।

{}

ক্যামেরা

আপনি একটি লাইভ স্ট্রিম ইউআরএল এবং সংশ্লিষ্ট টোকেন পাবেন।

{
  "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-এর অ্যাক্সেস টোকেনগুলো শুধুমাত্র ১ ঘণ্টার জন্য বৈধ থাকে। যদি আপনি একটি UNAUTHENTICATED প্রতিক্রিয়া পান, তাহলে সম্ভবত টোকেনটির মেয়াদ শেষ হয়ে গেছে। একটি নতুন অ্যাক্সেস টোকেন পেতে আপনার রিফ্রেশ টোকেনটি ব্যবহার করুন ।

অন্যান্য ত্রুটি

সম্পূর্ণ তালিকার জন্য ত্রুটি কোড রেফারেন্স দেখুন। Device Access ত্রুটি কোড।