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