action.devices.SYNC

ความตั้งใจนี้ขอรายการอุปกรณ์ที่เชื่อมโยงกับผู้ใช้ที่ระบุและความสามารถของอุปกรณ์

โดยจะทริกเกอร์ระหว่างการลิงก์บัญชีหรือเมื่อผู้ใช้ ซิงค์อุปกรณ์อีกครั้งด้วยตนเอง การดำเนินการตามคำสั่งควรตอบกลับด้วย ลักษณะและแอตทริบิวต์ที่รองรับสำหรับอุปกรณ์แต่ละเครื่อง

SYNC คำตอบของคุณควรแสดงอุปกรณ์ทั้งหมดที่เชื่อมโยงกับผู้ใช้ ซึ่งไม่ได้กำหนดว่าอุปกรณ์ใดอุปกรณ์หนึ่งจะเข้าถึงได้หรือไม่ ซึ่งจัดการโดยการตอบกลับของ QUERY และ EXECUTE

ดูรายละเอียดเพิ่มเติมได้ที่ระบุและซิงค์

รูปแบบคำขอ

ช่อง ประเภท คำอธิบาย
requestId String

ต้องระบุ

รหัสของคำขอ

inputs อาร์เรย์

ต้องระบุ

รายการอินพุตที่ตรงกับคำขอ Intent

[item, ...] ออบเจ็กต์

ประเภทและเพย์โหลดที่เชื่อมโยงกับคำขอ Intent

intent

ต้องระบุ

(ค่าคงที่: "action.devices.SYNC")

ประเภทคำขอ Intent

ตัวอย่าง

คำขอความตั้งใจ SYNC

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

รูปแบบการตอบกลับ

ช่อง ประเภท คำอธิบาย
requestId String

ต้องระบุ

รหัสของคำขอที่เกี่ยวข้อง

payload ออบเจ็กต์

ต้องระบุ

เพย์โหลดการตอบกลับ Intent

agentUserId String

ต้องระบุ

แสดง User ID ที่ไม่ซ้ำกัน (และเปลี่ยนแปลงไม่ได้) ในแพลตฟอร์มของตัวแทน สตริงนี้จะทึบแสงสำหรับ Google ดังนั้นหากมีรูปแบบที่ไม่เปลี่ยนแปลงเทียบกับรูปแบบที่เปลี่ยนแปลงได้ในฝั่งตัวแทน ให้ใช้รูปแบบที่ไม่เปลี่ยนแปลง (เช่น หมายเลขบัญชีแทนอีเมล)

errorCode String

สำหรับข้อผิดพลาดของระบบใน SYNC

debugString String

ข้อผิดพลาดโดยละเอียดซึ่งจะไม่แสดงต่อผู้ใช้ แต่ระบบอาจบันทึกหรือใช้ระหว่างการพัฒนา

devices อาร์เรย์

ต้องระบุ

รายการอุปกรณ์ที่ผู้ใช้เป็นเจ้าของ ระบบจะแสดงอุปกรณ์ 0 เครื่องขึ้นไป (0 เครื่องหมายความว่าผู้ใช้ไม่มีอุปกรณ์หรือยกเลิกการเชื่อมต่ออุปกรณ์ทั้งหมดแล้ว)

[item, ...] ออบเจ็กต์

ข้อมูลเมตาของอุปกรณ์

id String

ต้องระบุ

รหัสของอุปกรณ์ในระบบคลาวด์ของนักพัฒนาแอป โดยต้องไม่ซ้ำกันสำหรับผู้ใช้และนักพัฒนาแอป เนื่องจากในกรณีที่มีการแชร์ เราอาจใช้ข้อมูลนี้เพื่อขจัดข้อมูลที่ซ้ำกันของการดูหลายครั้งในอุปกรณ์เดียวกัน โดยควรเป็นค่าคงที่สำหรับอุปกรณ์ หากมีการเปลี่ยนแปลง Assistant จะถือว่าอุปกรณ์นั้นเป็นอุปกรณ์ใหม่

type String

ต้องระบุ

ประเภทฮาร์ดแวร์ของอุปกรณ์

traits อาร์เรย์

ต้องระบุ

รายการลักษณะของอุปกรณ์นี้ ซึ่งจะกำหนดคำสั่ง แอตทริบิวต์ และสถานะที่อุปกรณ์รองรับ

[item, ...] String

ชื่อลักษณะที่รองรับ

name ออบเจ็กต์

ต้องระบุ

ชื่อของอุปกรณ์นี้

defaultNames อาร์เรย์

รายการชื่อที่นักพัฒนาแอปเป็นผู้ระบุ ไม่ใช่ผู้ใช้ ซึ่งมักจะเป็นชื่อผู้ผลิต, SKU ฯลฯ

[item, ...] String

ชื่อเริ่มต้นของอุปกรณ์

name String

ต้องระบุ

ชื่อหลักของอุปกรณ์ ซึ่งโดยทั่วไปผู้ใช้จะเป็นผู้ระบุ นอกจากนี้ยังเป็นชื่อที่ Assistant จะใช้เพื่ออธิบายอุปกรณ์ในการตอบกลับด้วย ระบบจะตัดชื่อหากเกินขีดจำกัด 60 Code Point (อักขระ) ของ Unicode และจะไม่มีข้อผิดพลาด นักพัฒนาแอปมีหน้าที่จัดการชื่อที่ยาว

nicknames อาร์เรย์

ชื่อเพิ่มเติมที่ผู้ใช้ระบุสำหรับอุปกรณ์

[item, ...] String

ชื่อเล่นของอุปกรณ์

willReportState บูลีน

ต้องระบุ

ระบุว่าอุปกรณ์นี้จะได้รับการอัปเดตสถานะโดยฟีดแบบเรียลไทม์หรือไม่ (จริงเพื่อใช้ฟีดเรียลไทม์สำหรับการรายงานสถานะ และเท็จเพื่อใช้รูปแบบการสำรวจ)

notificationSupportedByAgent บูลีน

(ค่าเริ่มต้น: false)

ระบุว่าได้เปิดใช้การแจ้งเตือนสำหรับอุปกรณ์หรือไม่

roomHint String

ระบุห้องปัจจุบันของอุปกรณ์ในบ้านของผู้ใช้เพื่อลดความซับซ้อนในการตั้งค่า

deviceInfo ออบเจ็กต์

มีฟิลด์ที่อธิบายอุปกรณ์เพื่อใช้ในตรรกะแบบครั้งเดียวหากจำเป็น (เช่น "เฟิร์มแวร์เวอร์ชัน X ของหลอดไฟ Y เสีย จำเป็นต้องปรับสี" หรือ "ข้อบกพร่องด้านความปลอดภัยจำเป็นต้องแจ้งให้ผู้ใช้ทั้งหมดทราบเกี่ยวกับเฟิร์มแวร์ Z")

manufacturer String

โดยเฉพาะอย่างยิ่งเมื่อนักพัฒนาแอปเป็นฮับสำหรับอุปกรณ์อื่นๆ Google อาจแสดงรายการผู้ผลิตมาตรฐานที่นี่เพื่อให้ TP-Link และ Smartthings อธิบาย "osram" ในลักษณะเดียวกัน

model String

ตัวระบุรุ่นหรือ SKU ของอุปกรณ์นั้นๆ

hwVersion String

หมายเลขเวอร์ชันที่เฉพาะเจาะจงซึ่งแนบมากับฮาร์ดแวร์ หากมี

swVersion String

หมายเลขเวอร์ชันที่เฉพาะเจาะจงที่แนบมากับซอฟต์แวร์/เฟิร์มแวร์ หากมี

attributes ออบเจ็กต์

สอดคล้องกับแอตทริบิวต์ต่อลักษณะที่อธิบายไว้ในการอ้างอิงสคีมาลักษณะแต่ละรายการ

customData ออบเจ็กต์

ออบเจ็กต์ที่นักพัฒนาแอปกำหนดซึ่งจะแนบไปกับคำขอ QUERY และ EXECUTE ในอนาคต โดยมีขนาดสูงสุด 512 ไบต์ต่ออุปกรณ์ ใช้ออบเจ็กต์นี้เพื่อจัดเก็บข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์ที่บริการระบบคลาวด์อาจต้องใช้ เช่น ภูมิภาคทั่วโลกของอุปกรณ์ ข้อมูลในออบเจ็กต์นี้มีข้อจำกัดบางอย่าง ได้แก่ ไม่มีข้อมูลที่ละเอียดอ่อน ซึ่งรวมถึงแต่ไม่จำกัดเพียงข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้

otherDeviceIds อาร์เรย์

รายการรหัสสำรองที่ใช้ระบุอุปกรณ์ที่ซิงค์กับระบบคลาวด์สำหรับการดำเนินการในเครื่อง

[item, ...] ออบเจ็กต์

รหัสอุปกรณ์อื่น

agentId String

รหัสของตัวแทน โดยทั่วไปแล้ว นี่คือรหัสโปรเจ็กต์ในคอนโซล Actions

deviceId String

ต้องระบุ

รหัสอุปกรณ์ที่กำหนดโดยตัวแทน รหัสอุปกรณ์ต้องไม่ซ้ำกัน

ตัวอย่าง

การตอบสนองความตั้งใจในการซิงค์

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