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