ডিভাইস খোঁজার সুবিধা

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

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

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

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

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

    Developer Console-এ যান।

  2. স্ক্রিনের বাঁদিকে প্রোজেক্ট > ক্লাউড-টু-ক্লাউড বিকল্পে যান, তারপর ইন্টিগ্রেশনের জন্য এডিট করুন বিকল্প বেছে নিন। সেট-আপ ও কনফিগারেশন পৃষ্ঠায়, স্ক্রল করে লোকাল ফুলফিলমেন্ট বিকল্পে যান এবং সেটিং টগল করে চালু করুন। প্রতিটি টেস্ট URL ফিল্ডে নিম্নলিখিত URL লিখুন, আপনার প্রোজেক্ট আইডি যোগ করুন এবং সেভ করুন বিকল্পে ক্লিক করুন:

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

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

  4. ড্রপ-ডাউন থেকে স্ক্যান ম্যাচিং প্রোটোকলের ধরন বেছে নিন এবং Google-এর স্ক্যান করার জন্য ভ্যালু লিখুন।

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

mDNS
অ্যাট্রিবিউট বিবরণ উদাহরণস্বরূপ দেওয়া ভ্যালু
পরিষেবার নাম প্রয়োজনীয়। ডিভাইসের মাধ্যমে প্রকাশিত পরিষেবার নাম service.domain ফর্ম্যাটে। _http._tcp.local
নাম

প্রয়োজনীয়। instance.service.domain ফর্ম্যাটে অনন্য পরিষেবা ইনস্ট্যান্সের জন্য ফিল্টার করুন।

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

ঐচ্ছিক। অরগানাইজেশনালি ইউনিক আইডেন্টিফায়ার।

ডিভাইস প্রস্তুতকারককে শনাক্তকারী ২৪-বিট ভ্যালু। সাধারণত, ডিভাইসের MAC অ্যাড্রেসের প্রথম তিনটি অক্টেট।
1A:2B:3C
UDP
অ্যাট্রিবিউট বিবরণ উদাহরণস্বরূপ দেওয়া ভ্যালু
ডিসকভারি ঠিকানা প্রয়োজনীয়। UDP ব্রডকাস্টের জন্য গন্তব্য IP অ্যাড্রেস। 255.255.255.255
ব্রডকাস্টিং পোর্ট প্রয়োজনীয়। UDP ব্রডকাস্টের জন্য ডেস্টিনেশন পোর্ট। 5555
লিসিনিং পোর্ট প্রয়োজনীয়। UDP ডিসকভারি রেসপন্সের জন্য পোর্ট শুনুন। 5556
ডিসকভারি প্যাকেট

প্রয়োজনীয়। UDP ব্রডকাস্টে পাঠানোর জন্য পেলোড।

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

ক্লাউড ফুলফিলমেন্টে সিঙ্ক সম্পর্কিত উত্তর আপডেট করুন

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

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

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

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

উদাহরণ

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

স্ট্যান্ডঅ্যালোন/হাব
{
  "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": "..."
      }
    }]
  }
}