সমর্থন ডিভাইস আবিষ্কার

যখন গুগল আপনার ক্লাউড ফুলফিলমেন্ট থেকে প্রাপ্ত SYNC রেসপন্সের কোনো ডিভাইসের সাথে স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য কোনো ডিভাইসকে মেলাতে পারে, তখন একটি স্থানীয় ফুলফিলমেন্ট পাথ প্রতিষ্ঠিত হয়।

স্থানীয় নেটওয়ার্কে আপনার ডিভাইসটি খুঁজে পেতে এবং স্থানীয় ফুলফিলমেন্ট পাথ স্থাপন করতে গুগলকে সক্ষম করার জন্য, আপনাকে অ্যাকশন কনসোলে ডিসকভারি তথ্য যোগ করতে হবে। এছাড়াও, স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য ডিভাইসটি সম্পর্কে গুগলকে জানাতে আপনাকে আপনার ক্লাউড ফুলফিলমেন্ট থেকে আসা SYNC রেসপন্সটিও আপডেট করতে হবে।

স্ক্যান কনফিগারেশন তথ্য সেট আপ করুন

আবিষ্কারের তথ্য নির্দিষ্ট করতে, এই ধাপগুলো অনুসরণ করুন:

  1. Google Home Developer Console আপনার Cloud-to-cloud ইন্টিগ্রেশনে যান:

    ডেভেলপার কনসোলে যান

  2. স্ক্রিনের বাম দিকে Project > Cloud-to-cloud- এ যান, তারপর ইন্টিগ্রেশনের জন্য Edit নির্বাচন করুন। Setup and configuration পৃষ্ঠায়, Local fulfillment পর্যন্ত স্ক্রোল করুন এবং সেটিংটি অন করুন। প্রতিটি test URL ফিল্ডে নিম্নলিখিত URL লিখুন, আপনার প্রজেক্ট আইডি প্রবেশ করান এবং Save-এ ক্লিক করুন:

    https://<project-id>.web.app/local-home/index.html

  3. নতুন স্ক্যান কনফিগারেশন যোগ করতে ডিভাইস ডিসকভারি-এর অধীনে + অ্যাড স্ক্যান কনফিগারেশন- এ ক্লিক করুন।

  4. ড্রপ-ডাউন থেকে স্ক্যানের সাথে মেলে এমন একটি প্রোটোকল টাইপ নির্বাচন করুন এবং গুগলকে স্ক্যান করার জন্য মানগুলি প্রবেশ করান।

আপনার ডিভাইস স্ক্যান করার জন্য গুগল যে প্রোটোকলগুলো ব্যবহার করবে বলে আপনি চান, তার উপর ভিত্তি করে আপনি যে অ্যাট্রিবিউটগুলো যোগ করতে পারেন, তা নিম্নলিখিত সারণিগুলোতে দেখানো হয়েছে:

mDNS
বৈশিষ্ট্য বর্ণনা Example Value
Service Name আবশ্যক। ডিভাইস দ্বারা প্রকাশিত পরিষেবার নাম service . domain ফরম্যাটে হতে হবে। _http._tcp.local
নাম

আবশ্যক। instance . service . domain ফরম্যাটে একটি অনন্য সার্ভিস ইনস্ট্যান্সের জন্য ফিল্টার করুন।

প্ল্যাটফর্মটি এই মানটিকে একটি রেগুলার এক্সপ্রেশন হিসেবে বিবেচনা করে এবং এর সাথে মিলে যাওয়া ডিভাইসগুলো ফেরত দেয়।
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
বৈশিষ্ট্য বর্ণনা Example Value
Service Type আবশ্যক। UPnP সার্ভিসের পূর্ণাঙ্গ শনাক্তকারী, domain :service: type : version ফরম্যাটে থাকতে হবে। schemas-upnp-org:service:SwitchPower:1
OUI

Optional. Organizationally Unique Identifier .

ডিভাইস প্রস্তুতকারককে শনাক্তকারী ২৪-বিটের মান। সাধারণত, এটি ডিভাইস MAC অ্যাড্রেসের প্রথম তিনটি অক্টেট।
1A:2B:3C
UDP
বৈশিষ্ট্য বর্ণনা Example Value
Discovery Address ইউডিপি ব্রডকাস্টের জন্য প্রয়োজনীয় গন্তব্য আইপি অ্যাড্রেস। 255.255.255.255
Broadcasting Port ইউডিপি ব্রডকাস্টের জন্য গন্তব্য পোর্ট আবশ্যক। 5555
Listening Port UDP ডিসকভারি রেসপন্সের জন্য প্রয়োজনীয় লিসেন পোর্ট। 5556
Discovery Packet

Required. Payload to send in the UDP broadcast.

বাইটের হেক্সাডেসিমেল এনকোডেড স্ট্রিং হিসাবে বিন্যস্ত।
48454C4C4F

Update SYNC response in the cloud fulfillment

SYNC ইন্টেন্টটি অ্যাসিস্ট্যান্টকে জানায় যে ব্যবহারকারী কোন কোন ডিভাইস নিয়ন্ত্রণ করেন এবং সেগুলোর সক্ষমতা কী।

লোকাল ফুলফিলমেন্ট সমর্থন করার জন্য, লোকাল হোম প্ল্যাটফর্ম আপনার স্মার্ট হোম অ্যাকশনের ক্লাউড ফুলফিলমেন্ট থেকে আসা SYNC রেসপন্সটি পরীক্ষা করে এবং IDENTIFY হ্যান্ডলার দ্বারা ফেরত দেওয়া ভেরিফিকেশন আইডির সাথে otherDeviceIds ফিল্ডে থাকা ডিভাইস আইডিগুলো মেলানোর চেষ্টা করে। যেসব ডিভাইস এন্ট্রিতে otherDeviceIds ফিল্ড থাকে না, সেগুলোকে লোকাল ফুলফিলমেন্ট থেকে বাদ দেওয়া হয়।

SYNC রেসপন্সের otherDeviceIds ফিল্ডে, আপনাকে স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য স্মার্ট হোম ডিভাইসগুলোর ডিভাইস আইডি সেট করতে হবে। এই ফিল্ডটি রেসপন্সের device লেভেলে দেখা যায়। গুগল প্রদত্ত আইডিযুক্ত যেকোনো ডিভাইসে একটি স্থানীয় ফুলফিলমেন্ট পাথ স্থাপন করতে পারে।

কোনো স্বতন্ত্র ডিভাইসের সাথে সংযোগ স্থাপন করতে, অথবা হাব ব্যবহার করে প্রান্তিক ডিভাইসগুলোকে লক্ষ্য করতে Google-এর প্রয়োজনীয় যেকোনো অতিরিক্ত ডেটা নির্দিষ্ট করার জন্য customData ফিল্ডটি ব্যবহার করুন (উদাহরণস্বরূপ, পোর্ট নম্বর এবং অন্যান্য প্রোটোকল-নির্দিষ্ট তথ্য)।

উদাহরণ

নিম্নলিখিত কোড স্নিপেটটি দেখায় যে আপনি কীভাবে আপনার SYNC হ্যান্ডলার তৈরি করতে পারেন।

Standalone/Hub
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [{
      "id": "123",
      "type": "action.devices.types.OUTLET",
      "traits": [
        "action.devices.traits.OnOff"
      ],
      "name": {
        "name": "Night light"
      },
      "willReportState": false,
      "otherDeviceIds": [{
        "deviceId": "local-device-id"
      }],
      "customData": {
        "port": 5555,
        "authToken": "..."
      }
    }]
  }
}