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 কপি করুন, অন্যান্য 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 ত্রুটি কোড।