action.devices.EXECUTE
Intent นี้จะส่งคําสั่งให้ดําเนินการบนอุปกรณ์สมาร์ทโฮม
การดำเนินการตามคำขอควรประมวลผลคำสั่งแต่ละรายการ ส่งไปยังอุปกรณ์ที่เกี่ยวข้อง และแสดงสถานะใหม่ในการตอบกลับ EXECUTE
Intent EXECUTE รายการเดียวสามารถกำหนดเป้าหมายไปยังอุปกรณ์หลายเครื่องด้วยคำสั่งหลายรายการ
เช่น Intent ที่ทริกเกอร์อาจตั้งค่าทั้งความสว่างและสีของชุดหลอดไฟ หรืออาจตั้งค่าหลอดไฟหลายดวงให้แต่ละดวงมีสีต่างกัน
โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อค้นหาและดำเนินการ
รูปแบบคำขอ
| ช่อง | ประเภท | คำอธิบาย | 
|---|---|---|
| requestId | String | ต้องระบุ รหัสของคําขอ | 
| inputs | อาร์เรย์ | ต้องระบุ รายการอินพุตที่ตรงกับคำขอ Intent | 
| [item, ...] | ออบเจ็กต์ | ประเภทและเพย์โหลดที่เชื่อมโยงกับคำขอ Intent | 
| intent | ต้องระบุ (ค่าคงที่:  ประเภทคำขอ 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 | ต้องระบุ ผลลัพธ์ของการดำเนินการ ค่าที่รองรับ 
 | 
| 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" } ] } }