action.devices.SYNC

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

Hal ini dipicu selama penautan akun atau saat pengguna menyinkronkan ulang perangkat mereka secara manual. Fulfillment Anda harus merespons dengan karakteristik dan atribut 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. 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 intent.

[item, ...] Objek

Jenis dan payload yang terkait dengan permintaan intent.

intent

Wajib.

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

Jenis permintaan intent.

Contoh

Permintaan intent sinkronisasi

{
  "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 jelas untuk 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 akun, bukan email).

errorCode String

Untuk kesalahan sistematis pada SYNC

debugString String

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

devices Array

Wajib.

Daftar perangkat yang dimiliki pengguna. Nol atau beberapa perangkat ditampilkan (tidak ada perangkat yang berarti pengguna tidak memiliki perangkat, atau telah memutuskan semuanya).

[item, ...] Objek

Metadata perangkat.

id String

Wajib.

ID perangkat di cloud developer. Ini harus unik bagi pengguna dan developer, karena dalam kasus berbagi, kita dapat menggunakannya untuk menghilangkan beberapa tampilan dari perangkat yang sama. Sandi tidak dapat diubah untuk perangkat; jika berubah, Asisten akan memperlakukannya sebagai perangkat baru.

type String

Wajib.

Jenis hardware perangkat.

traits Array

Wajib.

Daftar karakteristik perangkat ini. Ini mendefinisikan perintah, atribut, dan status yang didukung perangkat.

[item, ...] String

Nama karakteristik yang didukung.

name Objek

Wajib.

Nama perangkat ini.

defaultNames Array

Daftar nama yang diberikan oleh developer, bukan pengguna, sering kali dalam nama produsen, SKU, dll.

[item, ...] String

Nama default perangkat.

name String

Wajib.

Nama utama perangkat, umumnya diberikan oleh pengguna. Ini juga merupakan nama yang akan dipilih Asisten untuk mendeskripsikan perangkat sebagai respons.

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 status pelaporan, dan false untuk menggunakan model polling.)

notificationSupportedByAgent Boolean

(Default: false)

Menunjukkan apakah notifikasi diaktifkan untuk perangkat.

roomHint String

Menyediakan ruang perangkat saat ini di rumah pengguna untuk menyederhanakan penyiapan.

deviceInfo Objek

Berisi kolom yang menjelaskan perangkat untuk digunakan dalam logika satu kali jika diperlukan (misalnya, 'versi firmware rusak X cahaya Y memerlukan penyesuaian warna', atau 'kerusakan keamanan memerlukan pemberitahuan semua pengguna firmware Z').

manufacturer String

Hal ini sangat berguna terutama saat developer adalah hub untuk perangkat lain. Google dapat menyediakan daftar standar produsen di sini, misalnya TP-Link dan Smartthings dengan cara yang sama menjelaskan 'osram'.

model String

ID SKU atau model perangkat tertentu.

hwVersion String

Nomor versi tertentu yang dilampirkan ke hardware jika tersedia.

swVersion String

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

attributes Objek

Selaras dengan atribut per fitur yang dijelaskan dalam setiap referensi skema fitur.

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 layanan cloud Anda, seperti region global perangkat. Data dalam objek ini memiliki beberapa batasan: Tidak ada informasi sensitif, termasuk namun tidak terbatas pada Informasi Identitas Pribadi.

otherDeviceIds Array

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

[item, ...] Objek

ID perangkat alternatif.

agentId String

ID agen. Umumnya, ini adalah project ID di konsol Actions.

deviceId String

Wajib.

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

Contoh

Menanggapi respons intent

{
  "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"
        }
      }
    ]
  }
}