action.devices.SYNC

Ý định này yêu cầu danh sách các thiết bị được liên kết với người dùng đã cho và các tính năng của thiết bị.

Ý định này được kích hoạt trong quá trình liên kết tài khoản hoặc khi người dùng tự động đồng bộ lại thiết bị của họ. Quy trình thực hiện của bạn phải phản hồi bằng các đặc điểm và thuộc tính được hỗ trợ cho từng thiết bị.

Phản hồi SYNC của bạn phải trả về tất cả thiết bị được liên kết với người dùng. Điều này không xác định được liệu có thể liên hệ với thiết bị cụ thể nào hay không. Việc này được xử lý bằng các phản hồi QUERYEXECUTE.

Để biết thêm thông tin chi tiết, hãy xem bài viết Xác định và đồng bộ hoá.

Định dạng yêu cầu

Trường Loại Mô tả
requestId String

Bắt buộc.

Mã của yêu cầu.

inputs Array

Bắt buộc.

Danh sách các dữ liệu đầu vào khớp với yêu cầu ý định.

[item, ...] Object

Loại và tải trọng liên kết với yêu cầu ý định.

intent

Bắt buộc.

(Giá trị hằng số: "action.devices.SYNC")

Loại yêu cầu ý định.

Ví dụ

Yêu cầu ý định SYNC

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

Định dạng phản hồi

Trường Loại Mô tả
requestId String

Bắt buộc.

Mã của yêu cầu tương ứng.

payload Object

Bắt buộc.

Tải trọng phản hồi ý định.

agentUserId String

Bắt buộc.

Phản ánh mã người dùng duy nhất (và không thay đổi) trên nền tảng của tác nhân. Chuỗi này không minh bạch đối với Google, vì vậy, nếu có một biểu mẫu không thay đổi so với một biểu mẫu có thể thay đổi ở phía tác nhân, hãy sử dụng biểu mẫu không thay đổi (ví dụ: số tài khoản thay vì email).

errorCode String

Đối với các lỗi có hệ thống trên SYNC

debugString String

Lỗi chi tiết sẽ không bao giờ được trình bày cho người dùng nhưng có thể được ghi lại hoặc sử dụng trong quá trình phát triển.

devices Array

Bắt buộc.

Danh sách các thiết bị mà người dùng sở hữu. Trả về 0 hoặc nhiều thiết bị (0 thiết bị có nghĩa là người dùng không có thiết bị nào hoặc đã ngắt kết nối tất cả thiết bị).

[item, ...] Object

Siêu dữ liệu của thiết bị.

id String

Bắt buộc.

Mã của thiết bị trong đám mây của nhà phát triển. Mã này phải là duy nhất đối với người dùng và nhà phát triển, vì trong trường hợp chia sẻ, chúng tôi có thể sử dụng mã này để loại bỏ các lượt xem trùng lặp của cùng một thiết bị. Mã này không được thay đổi đối với thiết bị; nếu mã này thay đổi, Trợ lý sẽ coi đó là một thiết bị mới.

type String

Bắt buộc.

Loại phần cứng của thiết bị.

Phải khớp với mẫu: ^action.devices.types.[a-zA-z]+$.

traits Array

Bắt buộc.

Danh sách các đặc điểm mà thiết bị này có. Điều này xác định các lệnh, thuộc tính và trạng thái mà thiết bị hỗ trợ.

[item, ...] String

Tên của đặc điểm được hỗ trợ.

Phải khớp với mẫu: ^action.devices.traits.[a-zA-z]+$.

name Object

Bắt buộc.

Tên của thiết bị này.

defaultNames Array

Danh sách tên do nhà phát triển cung cấp chứ không phải người dùng, thường là tên nhà sản xuất, SKU, v.v.

[item, ...] String

Tên mặc định của thiết bị.

name String

Bắt buộc.

Tên chính của thiết bị, thường do người dùng cung cấp. Đây cũng là tên mà Trợ lý sẽ ưu tiên dùng để mô tả thiết bị trong các câu trả lời. Tên sẽ bị cắt bớt nếu vượt quá giới hạn 60 điểm mã Unicode (ký tự) và sẽ không có lỗi nào được đưa ra. Nhà phát triển chịu trách nhiệm xử lý tên dài.

nicknames Array

Tên bổ sung do người dùng cung cấp cho thiết bị.

[item, ...] String

Tên thiết bị.

willReportState Boolean

Bắt buộc.

Cho biết liệu thiết bị này có được Nguồn cấp dữ liệu theo thời gian thực cập nhật trạng thái hay không. (true để sử dụng Nguồn cấp dữ liệu theo thời gian thực để báo cáo trạng thái và false để sử dụng mô hình thăm dò ý kiến.)

notificationSupportedByAgent Boolean

(Mặc định: false)

Cho biết liệu thông báo có được bật cho thiết bị hay không.

roomHint String

Cung cấp phòng hiện tại của thiết bị trong nhà của người dùng để đơn giản hoá quá trình thiết lập.

deviceInfo Object

Chứa các trường mô tả thiết bị để sử dụng trong logic một lần nếu cần (ví dụ: "phiên bản chương trình cơ sở X bị hỏng của đèn Y cần điều chỉnh màu" hoặc "lỗ hổng bảo mật yêu cầu thông báo cho tất cả người dùng về chương trình cơ sở Z").

manufacturer String

Đặc biệt hữu ích khi nhà phát triển là trung tâm cho các thiết bị khác. Google có thể cung cấp danh sách tiêu chuẩn các nhà sản xuất tại đây để ví dụ: TP-Link và Smartthings đều mô tả "osram" theo cùng một cách.

model String

Mã nhận dạng SKU hoặc mẫu của thiết bị cụ thể.

hwVersion String

Số phiên bản cụ thể được đính kèm vào phần cứng (nếu có).

swVersion String

Số phiên bản cụ thể được đính kèm vào phần mềm/chương trình cơ sở (nếu có).

attributes Object

Phù hợp với các thuộc tính theo đặc điểm được mô tả trong từng tài liệu tham khảo về giản đồ đặc điểm.

customData Object

Đối tượng do nhà phát triển xác định sẽ được đính kèm vào các yêu cầu QUERY và EXECUTE trong tương lai, tối đa 512 byte cho mỗi thiết bị. Sử dụng đối tượng này để lưu trữ thông tin bổ sung về thiết bị mà dịch vụ đám mây của bạn có thể cần, chẳng hạn như khu vực toàn cầu của thiết bị. Dữ liệu trong đối tượng này có một số hạn chế: Không có thông tin nhạy cảm, bao gồm nhưng không giới hạn ở Thông tin nhận dạng cá nhân.

otherDeviceIds Array

Danh sách các mã thay thế dùng để xác định thiết bị được đồng bộ hoá trên đám mây để thực thi cục bộ.

[item, ...] Object

Mã thiết bị thay thế.

agentId String

Mã của tác nhân. Thông thường, đây là mã dự án trong Bảng điều khiển Actions.

deviceId String

Bắt buộc.

Mã thiết bị do tác nhân xác định. Mã thiết bị phải là duy nhất.

Ví dụ

Phản hồi ý định 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"
        }
      }
    ]
  }
}