action.devices.EXECUTE

Intent นี้จะส่งคำสั่งเพื่อเรียกใช้อุปกรณ์สมาร์ทโฮม

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

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

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

รูปแบบคำขอ

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

ต้องระบุ

รหัสของคำขอ

inputs อาร์เรย์

ต้องระบุ

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

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

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

intent

ต้องระบุ

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

ประเภทคำขอ Intent

payload ออบเจ็กต์

ต้องระบุ

เพย์โหลดคำขอ EXECUTE

commands อาร์เรย์

ต้องระบุ

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

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

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

devices อาร์เรย์

ต้องระบุ

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

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

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

id String

ต้องระบุ

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

customData ออบเจ็กต์

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

execution อาร์เรย์

ต้องระบุ

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

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

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

command String

ต้องระบุ

คำสั่งที่จะดำเนินการซึ่งมักมีพารามิเตอร์ประกอบ

params ออบเจ็กต์

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

ตัวอย่าง

ดำเนินการกับคำขอ Intent

{
  "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 ออบเจ็กต์

ต้องระบุ

เพย์โหลดการตอบกลับด้วยความตั้งใจ

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

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

ตัวอย่าง

ดำเนินการตอบสนอง Intent

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