action.devices.EXECUTE

Ý định này sẽ gửi lệnh để thực thi trên các thiết bị nhà thông minh.

Phương thức thực hiện của bạn phải xử lý từng lệnh, truyền lệnh đó đến thiết bị tương ứng rồi trả về trạng thái mới trong phản hồi EXECUTE.

Một ý định EXECUTE có thể nhắm đến nhiều thiết bị bằng nhiều lệnh. Ví dụ: một ý định được kích hoạt có thể đặt cả độ sáng và màu sắc trên một nhóm đèn hoặc có thể đặt nhiều đèn thành một màu khác nhau.

Để biết thêm thông tin chi tiết, hãy xem phần Truy vấn và thực thi.

Đị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 Mảng

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, ...] Đối tượng

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ị không đổi: "action.devices.EXECUTE")

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

payload Đối tượng

Bắt buộc.

THỰC THI tải trọng yêu cầu.

commands Mảng

Bắt buộc.

Danh sách các cặp lệnh và mục tiêu thiết bị.

[item, ...] Đối tượng

Tập hợp các lệnh để thực thi trên các đích đến của thiết bị được đính kèm.

devices Mảng

Bắt buộc.

Danh sách thiết bị mục tiêu.

[item, ...] Đối tượng

Đích đến của thiết bị để thực thi.

id String

Bắt buộc.

Mã thiết bị, theo mã nhận dạng được cung cấp trong chế độ SYNC.

customData Đối tượng

Nếu đối tượng customData mờ được cung cấp trong SYNC, thì đối tượng đó sẽ được gửi ở đây.

execution Mảng

Bắt buộc.

Danh sách các lệnh sẽ thực thi trên thiết bị mục tiêu.

[item, ...] Đối tượng

Lệnh thiết bị.

command String

Bắt buộc.

Lệnh thực thi, thường là với các tham số đi kèm.

params Đối tượng

Căn chỉnh với các tham số của mỗi lệnh.

Ví dụ

Thực thi yêu cầu về ý định

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123",
                "customData": {
                  "fooValue": 74,
                  "barValue": true,
                  "bazValue": "sheepdip"
                }
              },
              {
                "id": "456",
                "customData": {
                  "fooValue": 36,
                  "barValue": false,
                  "bazValue": "moarsheep"
                }
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Định dạng câu trả lời

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

Bắt buộc.

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

payload Đối tượng

Bắt buộc.

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

errorCode String

Mã lỗi của toàn bộ giao dịch đối với các lỗi xác thực và tình trạng không sử dụng được của hệ thống dành cho nhà phát triển. Đối với các lỗi thiết bị riêng lẻ, hãy sử dụng errorCode trong đối tượng thiết bị.

debugString String

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

commands Mảng

Mỗi đối tượng chứa một hoặc nhiều thiết bị có thông tin chi tiết về phản hồi. Không áp dụng Các đường liên kết này có thể không được nhóm theo cách giống như trong yêu cầu. Ví dụ: yêu cầu có thể bật 7 đèn, với 3 đèn thành công và 4 đèn không thành công, do đó có hai nhóm trong phản hồi.

[item, ...] Đối tượng

Kết quả thực thi trên thiết bị.

ids Mảng

Bắt buộc.

Danh sách mã thiết bị tương ứng với trạng thái này.

[item, ...] String

Mã thiết bị.

status String

Bắt buộc.

Kết quả của thao tác thực thi.

Các giá trị được hỗ trợ:

SUCCESS
Xác nhận rằng lệnh đó đã thành công.
PENDING
Lệnh đã được thêm vào hàng đợi nhưng có thể sẽ thành công.
OFFLINE
Thiết bị mục tiêu hiện không có kết nối mạng hoặc không kết nối được.
EXCEPTIONS
Đã xảy ra sự cố hoặc cảnh báo liên quan đến một lệnh. Lệnh này có thể thành công hoặc không thành công. Loại trạng thái này thường được đặt khi bạn muốn gửi thêm thông tin về một thiết bị được kết nối khác.
ERROR
Thiết bị mục tiêu không thể thực hiện lệnh.
states Đối tượng

Phù hợp với các trạng thái theo đặc điểm được mô tả trong mỗi tệp tham chiếu giản đồ đặc điểm. Đây là các trạng thái sau khi thực thi, nếu có.

online Boolean

Cho biết thiết bị có đang kết nối mạng (tức là, có thể truy cập được) hay không.

errorCode String

Mở rộng trạng thái LỖI (nếu cần) trong các mã lỗi đặt trước. Trạng thái này sẽ liên kết với các lỗi mà người dùng nhìn thấy.

Ví dụ

Thực thi phản hồi ý định

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}