Mendukung penemuan perangkat

Jalur fulfillment lokal dibuat saat Google mencocokkan perangkat yang dapat dikontrol secara lokal dengan perangkat yang ditampilkan dalam respons SYNC dari fulfillment cloud Anda.

Agar Google dapat menemukan perangkat Anda di jaringan lokal dan menetapkan jalur fulfillment lokal, Anda harus menambahkan informasi penemuan di konsol Actions. Anda juga perlu memperbarui respons SYNC dari fulfillment cloud untuk memberi tahu Google tentang perangkat yang dapat dikontrol secara lokal.

Menyiapkan informasi konfigurasi pemindaian

Untuk menentukan informasi penemuan, ikuti langkah-langkah berikut:

  1. Buka integrasi Cloud-to-cloud di Google Home Developer Console:

    Buka Konsol Play.

  2. Buka Project > Cloud-to-cloud di sisi kiri layar, lalu pilih Edit untuk integrasi. Di halaman Penyiapan dan konfigurasi, scroll ke Penyelesaian pesanan lokal dan aktifkan setelan. Masukkan URL berikut ke dalam setiap kolom URL pengujian, masukkan project ID Anda, lalu klik Save:

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

  3. Klik + Tambahkan konfigurasi pemindaian di bagian Penemuan perangkat untuk menambahkan konfigurasi pemindaian baru.

  4. Pilih jenis protokol pencocokan pemindaian dari drop-down dan masukkan nilai untuk dipindai Google.

Tabel berikut menunjukkan atribut yang dapat Anda tambahkan, berdasarkan protokol yang ingin Anda gunakan Google untuk memindai perangkat Anda:

mDNS
Atribut Deskripsi Nilai Contoh
Nama Layanan Wajib. Nama layanan yang dipublikasikan oleh perangkat dalam format service.domain. _http._tcp.local
Nama

Wajib. Filter untuk instance layanan unik dalam format instance.service.domain.

Platform ini memperlakukan nilai ini sebagai ekspresi reguler dan menampilkan perangkat yang cocok.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Atribut Deskripsi Nilai Contoh
Jenis Layanan Wajib. ID layanan UPnP yang sepenuhnya memenuhi syarat dalam format domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

Opsional. Organizationally Unique Identifier.

Nilai 24-bit yang mengidentifikasi produsen perangkat. Biasanya, tiga octet pertama dari alamat MAC perangkat.
1A:2B:3C
UDP
Atribut Deskripsi Nilai Contoh
Alamat Discovery Wajib. Alamat IP tujuan untuk siaran UDP. 255.255.255.255
Port Siaran Wajib. Port tujuan untuk siaran UDP. 5555
Port Listening Wajib. Port pemrosesan untuk respons penemuan UDP. 5556
Paket Penemuan

Wajib. Payload yang akan dikirim dalam siaran UDP.

Diformat sebagai string byte yang dienkode heksadesimal.
48454C4C4F

Memperbarui respons SYNC di fulfillment cloud

Intent SYNC melaporkan ke Asisten perangkat yang dikontrol pengguna dan kemampuannya.

Untuk mendukung fulfillment lokal, platform Local Home memeriksa respons SYNC dari fulfillment cloud Action smart home Anda dan mencoba mencocokkan ID perangkat di kolom otherDeviceIds dengan ID verifikasi yang ditampilkan oleh pengendali IDENTIFY. Entri perangkat tanpa kolom otherDeviceIds dikecualikan dari fulfillment lokal.

Di kolom otherDeviceIds respons SYNC, Anda perlu menetapkan ID perangkat perangkat smart home yang dapat dikontrol secara lokal. Kolom ini muncul di tingkat device dalam respons. Google dapat menetapkan jalur fulfillment lokal di perangkat apa pun dengan ID yang diberikan.

Gunakan kolom customData untuk menentukan data tambahan yang diperlukan Google untuk terhubung ke perangkat mandiri, atau untuk menargetkan perangkat akhir menggunakan hub (misalnya, nomor port dan informasi khusus protokol lainnya).

Contoh

Cuplikan berikut menunjukkan cara membuat pengendali SYNC.

Mandiri/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": "..."
      }
    }]
  }
}