action.devices.EXECUTE

Intent นี้จะส่งคําสั่งให้ดําเนินการบนอุปกรณ์สมาร์ทโฮม

การดำเนินการตามคำขอควรประมวลผลคำสั่งแต่ละรายการ ส่งไปยังอุปกรณ์ที่เกี่ยวข้อง และแสดงสถานะใหม่ในการตอบกลับ EXECUTE

Intent EXECUTE รายการเดียวสามารถกำหนดเป้าหมายไปยังอุปกรณ์หลายเครื่องด้วยคำสั่งหลายรายการ เช่น Intent ที่ทริกเกอร์อาจตั้งค่าทั้งความสว่างและสีของชุดหลอดไฟ หรืออาจตั้งค่าหลอดไฟหลายดวงให้แต่ละดวงมีสีต่างกัน

โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อค้นหาและดำเนินการ

รูปแบบคำขอ

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

ต้องระบุ

รหัสของคําขอ

inputs อาร์เรย์

ต้องระบุ

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

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

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

intent

ต้องระบุ

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

ประเภทคำขอ Intent

payload ออบเจ็กต์

ต้องระบุ

ดำเนินการกับเพย์โหลดคำขอ

commands อาร์เรย์

ต้องระบุ

รายการคู่เป้าหมายอุปกรณ์และคำสั่ง

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

ชุดคำสั่งที่จะดำเนินการกับอุปกรณ์เป้าหมายที่แนบมา

devices อาร์เรย์

ต้องระบุ

รายการอุปกรณ์เป้าหมาย

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

เป้าหมายอุปกรณ์ที่จะเรียกใช้

id String

ต้องระบุ

รหัสอุปกรณ์ตามรหัสที่ระบุไว้ใน SYNC

customData ออบเจ็กต์

หากระบุออบเจ็กต์ customData แบบทึบใน SYNC ระบบจะส่งออบเจ็กต์ดังกล่าวที่นี่

execution อาร์เรย์

ต้องระบุ

รายการคําสั่งที่จะดําเนินการบนอุปกรณ์เป้าหมาย

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

คำสั่งของอุปกรณ์

command String

ต้องระบุ

คําสั่งที่จะดําเนินการ โดยปกติจะมีพารามิเตอร์ประกอบ

params ออบเจ็กต์

สอดคล้องกับพารามิเตอร์สําหรับแต่ละคําสั่ง

ตัวอย่าง

EXECUTE intent request

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

รูปแบบคำตอบ

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

ต้องระบุ

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

payload ออบเจ็กต์

ต้องระบุ

เพย์โหลดคำตอบของ Intent

errorCode String

รหัสข้อผิดพลาดสำหรับธุรกรรมทั้งหมดที่การตรวจสอบสิทธิ์ล้มเหลวและระบบของนักพัฒนาแอปไม่พร้อมใช้งาน สำหรับข้อผิดพลาดของอุปกรณ์แต่ละรายการ ให้ใช้ errorCode ภายในออบเจ็กต์อุปกรณ์

debugString String

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

commands อาร์เรย์

แต่ละออบเจ็กต์มีอุปกรณ์อย่างน้อย 1 เครื่องพร้อมรายละเอียดการตอบกลับ หมายเหตุ: รายการเหล่านี้อาจไม่ได้จัดกลุ่มในลักษณะเดียวกับในคำขอ เช่น คำขออาจเปิดไฟ 7 ดวง โดยไฟ 3 ดวงเปิดสำเร็จและ 4 ดวงเปิดไม่สำเร็จ จึงมีการตอบกลับ 2 กลุ่ม

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

ผลลัพธ์ของการดำเนินการในอุปกรณ์

ids อาร์เรย์

ต้องระบุ

รายการรหัสอุปกรณ์ที่สอดคล้องกับสถานะนี้

[item, ...] String

รหัสอุปกรณ์

status String

ต้องระบุ

ผลลัพธ์ของการดำเนินการ

ค่าที่รองรับ

SUCCESS
ยืนยันว่าคําสั่งทํางานสําเร็จ
PENDING
คําสั่งอยู่ในคิว แต่คาดว่าจะสําเร็จ
OFFLINE
อุปกรณ์เป้าหมายอยู่ในสถานะออฟไลน์หรือเข้าถึงไม่ได้
EXCEPTIONS
เกิดปัญหาหรือการแจ้งเตือนที่เกี่ยวข้องกับคำสั่ง คำสั่งอาจสำเร็จหรือไม่สำเร็จ โดยปกติแล้ว ระบบจะตั้งค่าสถานะประเภทนี้เมื่อคุณต้องการส่งข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์อื่นที่เชื่อมต่ออยู่
ERROR
อุปกรณ์เป้าหมายไม่สามารถดำเนินการตามคำสั่ง
states ออบเจ็กต์

สอดคล้องกับสถานะของแต่ละลักษณะที่อธิบายไว้ในข้อมูลอ้างอิงสคีมาลักษณะแต่ละรายการ สถานะเหล่านี้คือสถานะหลังการดําเนินการ (หากมี)

online บูลีน

ระบุว่าอุปกรณ์ออนไลน์ (เข้าถึงได้) หรือไม่

errorCode String

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

debugString String

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

ตัวอย่าง

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

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