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