action.devices.SYNC

Maksud ini meminta daftar perangkat yang terkait dengan pengguna tertentu dan kemampuannya.

Peristiwa ini dipicu selama penautan akun atau saat pengguna menyinkronkan ulang perangkatnya secara manual. Pemenuhan Anda harus merespons dengan atribut dan karakteristik yang didukung untuk setiap perangkat.

Respons SYNC Anda harus menampilkan semua perangkat yang terkait dengan pengguna. Hal ini tidak menentukan apakah perangkat tertentu dapat dijangkau. Hal ini ditangani oleh respons QUERY dan EXECUTE.

Untuk mengetahui detail selengkapnya, lihat Mengidentifikasi dan menyinkronkan.

Format permintaan

Kolom Jenis Deskripsi
requestId String

Wajib.

ID permintaan.

inputs Array

Wajib.

Daftar input yang cocok dengan permintaan maksud.

[item, ...] Objek

Jenis dan payload yang terkait dengan permintaan intent.

intent

Wajib.

(Nilai konstanta: "action.devices.SYNC")

Jenis permintaan intent.

Contoh

Permintaan maksud SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Format respons

Kolom Jenis Deskripsi
requestId String

Wajib.

ID permintaan yang sesuai.

payload Objek

Wajib.

Payload respons intent.

agentUserId String

Wajib.

Mencerminkan ID pengguna unik (dan tidak dapat diubah) di platform agen. String ini tidak transparan bagi Google, jadi jika ada formulir yang tidak dapat diubah vs. formulir yang dapat diubah di sisi agen, gunakan formulir yang tidak dapat diubah (misalnya, nomor rekening, bukan email).

errorCode String

Untuk error sistematis di SYNC

debugString String

Error mendetail yang tidak akan pernah ditampilkan kepada pengguna, tetapi dapat dicatat atau digunakan selama pengembangan.

devices Array

Wajib.

Daftar perangkat yang dimiliki pengguna. Nol atau lebih banyak perangkat ditampilkan (nol perangkat berarti pengguna tidak memiliki perangkat, atau telah membatalkan tautan semua perangkat).

[item, ...] Objek

Metadata perangkat.

id String

Wajib.

ID perangkat di cloud developer. ID ini harus unik untuk pengguna dan developer, karena dalam kasus berbagi, kami dapat menggunakan ID ini untuk menghapus duplikat beberapa tampilan perangkat yang sama. ID ini harus tidak dapat diubah untuk perangkat; jika ID ini berubah, Asisten akan memperlakukannya sebagai perangkat baru.

type String

Wajib.

Jenis hardware perangkat.

traits Array

Wajib.

Daftar trait yang dimiliki perangkat ini. Hal ini menentukan perintah, atribut, dan status yang didukung perangkat.

[item, ...] String

Nama karakteristik yang didukung.

name Objek

Wajib.

Nama perangkat ini.

defaultNames Array

Daftar nama yang disediakan oleh developer, bukan pengguna, sering kali berupa nama produsen, SKU, dll.

[item, ...] String

Nama default perangkat.

name String

Wajib.

Nama utama perangkat, umumnya diberikan oleh pengguna. Nama ini juga merupakan nama yang akan lebih disukai Asisten untuk mendeskripsikan perangkat dalam respons. Nama akan dipangkas jika melebihi batas 60 titik kode Unicode (karakter) dan tidak ada error yang akan ditampilkan. Developer bertanggung jawab untuk menangani nama panjang.

nicknames Array

Nama tambahan yang diberikan oleh pengguna untuk perangkat.

[item, ...] String

Nama panggilan perangkat.

willReportState Boolean

Wajib.

Menunjukkan apakah status perangkat ini akan diperbarui oleh Feed Real Time. (benar untuk menggunakan Feed Real Time untuk melaporkan status, dan salah untuk menggunakan model polling.)

notificationSupportedByAgent Boolean

(Default: false)

Menunjukkan apakah notifikasi diaktifkan untuk perangkat.

roomHint String

Menyediakan ruangan saat ini dari perangkat di rumah pengguna untuk menyederhanakan penyiapan.

deviceInfo Objek

Berisi kolom yang menjelaskan perangkat untuk digunakan dalam logika sekali pakai jika diperlukan (misalnya, 'versi firmware X yang rusak pada lampu Y memerlukan penyesuaian warna', atau 'kelemahan keamanan mengharuskan semua pengguna firmware Z diberi tahu').

manufacturer String

Sangat berguna saat developer adalah hub untuk perangkat lain. Google dapat menyediakan daftar standar produsen di sini sehingga, misalnya, TP-Link dan Smartthings mendeskripsikan 'osram' dengan cara yang sama.

model String

ID model atau SKU perangkat tertentu.

hwVersion String

Nomor versi spesifik yang terlampir pada hardware jika tersedia.

swVersion String

Nomor versi spesifik yang dilampirkan ke software/firmware, jika tersedia.

attributes Objek

Sejajar dengan atribut per-trait yang dijelaskan dalam setiap referensi skema trait.

customData Objek

Objek yang ditentukan oleh developer yang akan dilampirkan ke permintaan QUERY dan EXECUTE mendatang, maksimum 512 byte per perangkat. Gunakan objek ini untuk menyimpan informasi tambahan tentang perangkat yang mungkin diperlukan oleh layanan cloud Anda, seperti wilayah global perangkat. Data dalam objek ini memiliki beberapa batasan: Tidak ada informasi sensitif, termasuk tetapi tidak terbatas pada Informasi Identitas Pribadi.

otherDeviceIds Array

Daftar ID alternatif yang digunakan untuk mengidentifikasi perangkat yang disinkronkan ke cloud untuk eksekusi lokal.

[item, ...] Objek

ID perangkat alternatif.

agentId String

ID agen. Biasanya, ini adalah project ID di Konsol Actions.

deviceId String

Wajib.

ID perangkat yang ditentukan oleh agen. ID perangkat harus unik.

Contoh

Respons intent 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": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}