action.devices.EXECUTE

Ý định này 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 sẽ xử lý từng lệnh, truyền lệnh đó đến thiết bị tương ứng và 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 nhiều màu khác nhau.

Để biết thêm thông tin, 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ã yêu cầu.

inputs Mảng

Bắt buộc.

Danh sách dữ liệu đầu vào khớp với yêu cầu về ý đị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ị hằng số: "action.devices.EXECUTE")

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

payload Đối tượng

Bắt buộc.

Tải trọng yêu cầu EXECUTE.

commands Mảng

Bắt buộc.

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

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

Tập hợp các lệnh để thực thi trên các mục tiêu thiết bị đính kèm.

devices Mảng

Bắt buộc.

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

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

Mục tiêu thiết bị để thực thi.

id String

Bắt buộc.

Mã thiết bị, theo mã được cung cấp trong 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 đến đây.

execution Mảng

Bắt buộc.

Danh sách lệnh để 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 đi kèm với các tham số.

params Đối tượng

Được căn chỉnh với các tham số cho từng lệnh.

Ví dụ

Yêu cầu thực thi ý đị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 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 Đối tượng

Bắt buộc.

Trọng tải phản hồi ý định.

errorCode String

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

debugString String

Lỗi phản hồi chi tiết sẽ không bao giờ được hiển thị 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.

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. Lưu ý: Các giá trị 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 bóng đèn, trong đó 3 bóng đèn bật thành công và 4 bóng đèn không bật được, 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 đưa vào hàng đợi nhưng dự kiến sẽ thành công.
OFFLINE
Thiết bị mục tiêu ở trạng thái ngoại tuyến hoặc không thể kết nối.
EXCEPTIONS
Có vấn đề hoặc cảnh báo liên quan đến một lệnh. Lệnh 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ị khác đã kết nối.
ERROR
Thiết bị mục tiêu không thể thực hiện lệnh.
states Đối tượng

Được căn chỉnh với các trạng thái theo từng đặc điểm được mô tả trong mỗi 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 liệu thiết bị có đang trực tuyến (có thể kết nối) hay không.

errorCode String

Mở rộng trạng thái LỖI nếu cần từ các mã lỗi đặt trước, các mã này sẽ liên kết với các lỗi được hiển thị cho người dùng.

debugString String

Lỗi cấp lệnh chi tiết sẽ không bao giờ được hiển thị cho người dùng nhưng có thể được ghi nhật ký hoặc sử dụng trong quá trình phát triển.

Ví dụ

Phản hồi ý định EXECUTE

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