action.devices.SYNC
Intent นี้จะส่งคำขอรายการอุปกรณ์ที่เชื่อมโยงกับผู้ใช้ที่กำหนดและความสามารถของผู้ใช้
โดยจะทำงานระหว่างการลิงก์บัญชีหรือเมื่อผู้ใช้ ระบบจะซิงค์อุปกรณ์ให้ใหม่ด้วยตนเอง การดำเนินการตามคำสั่งซื้อควรตอบกลับด้วย ลักษณะและแอตทริบิวต์ที่รองรับสำหรับอุปกรณ์แต่ละเครื่อง
การตอบกลับ SYNC
ของคุณควรแสดงผลอุปกรณ์ทั้งหมดที่เชื่อมโยงกับผู้ใช้
โดยไม่ได้ระบุว่าสามารถเข้าถึงอุปกรณ์ใดๆ ได้หรือไม่ ซึ่งจัดการโดย
QUERY
และ
คำตอบคือ EXECUTE
รายการ
โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อระบุและซิงค์
รูปแบบคำขอ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
String |
ต้องระบุ รหัสของคำขอ |
inputs |
อาร์เรย์ |
ต้องระบุ รายการอินพุตที่ตรงกับคำขอ Intent |
[item, ...] |
ออบเจ็กต์ |
ประเภทและเพย์โหลดที่เชื่อมโยงกับคำขอ Intent |
intent |
ต้องระบุ (ค่าคงที่: ประเภทคำขอ Intent |
ตัวอย่าง
คำขอซิงค์ Intent
{
"requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
"inputs": [
{
"intent": "action.devices.SYNC"
}
]
}
รูปแบบการตอบกลับ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
String |
ต้องระบุ รหัสของคำขอที่เกี่ยวข้อง |
payload |
ออบเจ็กต์ |
ต้องระบุ เพย์โหลดการตอบกลับด้วยความตั้งใจ |
agentUserId |
String |
ต้องระบุ แสดงถึงรหัสผู้ใช้ที่ไม่ซ้ำกัน (และเปลี่ยนแปลงไม่ได้) ในแพลตฟอร์มของตัวแทน สตริงนี้จะคลุมเครือสำหรับ Google ดังนั้นหากมีแบบฟอร์มที่เปลี่ยนแปลงไม่ได้และแบบฟอร์มที่เปลี่ยนแปลงได้ในฝั่งตัวแทน ให้ใช้แบบฟอร์มที่เปลี่ยนแปลงไม่ได้ (เช่น หมายเลขบัญชี ไม่ใช่อีเมล) |
errorCode |
String |
สำหรับข้อผิดพลาดที่เป็นระบบใน SYNC |
debugString |
String |
ข้อผิดพลาดโดยละเอียดที่จะไม่แสดงต่อผู้ใช้ แต่อาจบันทึกหรือใช้ในระหว่างการพัฒนา |
devices |
อาร์เรย์ |
ต้องระบุ รายการอุปกรณ์ที่ผู้ใช้เป็นเจ้าของ มีอุปกรณ์ที่ส่งคืนมา 0 เครื่องขึ้นไป (อุปกรณ์เป็น 0 เครื่อง หมายความว่าผู้ใช้ไม่มีอุปกรณ์หรือไม่ได้เชื่อมต่ออุปกรณ์ทั้งหมด) |
[item, ...] |
ออบเจ็กต์ |
ข้อมูลเมตาของอุปกรณ์ |
id |
String |
ต้องระบุ รหัสของอุปกรณ์ในระบบคลาวด์ของนักพัฒนาแอป ชื่อนี้ต้องไม่ซ้ำกันสำหรับผู้ใช้และนักพัฒนาแอป เนื่องจากในกรณีที่มีการแชร์ เราอาจใช้ข้อมูลนี้เพื่อไม่ให้มีการดูอุปกรณ์เดียวกันซ้ำหลายครั้ง ควรเปลี่ยนแปลงไม่ได้สำหรับอุปกรณ์ ถ้ามีการเปลี่ยนแปลง Assistant จะถือว่าเป็นอุปกรณ์ใหม่ |
type |
String |
ต้องระบุ ประเภทฮาร์ดแวร์ของอุปกรณ์ |
traits |
อาร์เรย์ |
ต้องระบุ รายการลักษณะของอุปกรณ์นี้ แอตทริบิวต์นี้จะกำหนดคำสั่ง แอตทริบิวต์ และสถานะที่อุปกรณ์รองรับ |
[item, ...] |
String |
ชื่อของลักษณะที่รองรับ |
name |
ออบเจ็กต์ |
ต้องระบุ ชื่อของอุปกรณ์นี้ |
defaultNames |
อาร์เรย์ |
รายการชื่อที่นักพัฒนาแอประบุไว้แทนที่จะเป็นผู้ใช้ ซึ่งมักจะเป็นชื่อผู้ผลิต, SKU ฯลฯ |
[item, ...] |
String |
ชื่อเริ่มต้นของอุปกรณ์ |
name |
String |
ต้องระบุ ชื่อหลักของอุปกรณ์ โดยทั่วไปผู้ใช้จะเป็นผู้ระบุ ซึ่งเป็นชื่อที่ Assistant ต้องการอธิบายอุปกรณ์ในคำตอบด้วย |
nicknames |
อาร์เรย์ |
ชื่อเพิ่มเติมที่ผู้ใช้ระบุสำหรับอุปกรณ์ |
[item, ...] |
String |
ชื่อเล่นของอุปกรณ์ |
willReportState |
บูลีน |
ต้องระบุ ระบุว่าอุปกรณ์นี้จะอัปเดตสถานะของอุปกรณ์โดยฟีดแบบเรียลไทม์หรือไม่ (true เพื่อใช้ฟีดแบบเรียลไทม์สำหรับสถานะการรายงาน และ "เท็จ" เพื่อใช้โมเดลการสำรวจ) |
notificationSupportedByAgent |
บูลีน |
(ค่าเริ่มต้น: ระบุว่ามีการเปิดใช้การแจ้งเตือนสำหรับอุปกรณ์หรือไม่ |
roomHint |
String |
ระบุห้องปัจจุบันของอุปกรณ์ในบ้านของผู้ใช้เพื่อลดความซับซ้อนในการตั้งค่า |
deviceInfo |
ออบเจ็กต์ |
มีช่องที่อธิบายอุปกรณ์สำหรับใช้ในการทำงานแบบแบบครั้งเดียวหากจำเป็น (เช่น "เฟิร์มแวร์เสียเวอร์ชัน X ที่สว่าง Y ต้องมีการปรับสี" หรือ "ข้อบกพร่องด้านความปลอดภัยต้องแจ้งเตือนผู้ใช้ทุกคนเกี่ยวกับเฟิร์มแวร์ Z") |
manufacturer |
String |
มีประโยชน์อย่างยิ่งเมื่อนักพัฒนาซอฟต์แวร์เป็นฮับสำหรับอุปกรณ์อื่นๆ Google อาจแสดงรายการมาตรฐานของผู้ผลิตไว้ที่นี่ เช่น ทั้ง TP-Link และ Smartthings อธิบายคำว่า "osram" แบบเดียวกัน |
model |
String |
รุ่นหรือตัวระบุ SKU ของอุปกรณ์ที่ต้องการ |
hwVersion |
String |
หมายเลขเวอร์ชันเฉพาะที่แนบมากับฮาร์ดแวร์ หากมี |
swVersion |
String |
หมายเลขเวอร์ชันเฉพาะที่แนบมากับซอฟต์แวร์/เฟิร์มแวร์ หากมี |
attributes |
ออบเจ็กต์ |
สอดคล้องกับแอตทริบิวต์ต่อลักษณะที่อธิบายไว้ในการอ้างอิงสคีมาลักษณะแต่ละรายการ |
customData |
ออบเจ็กต์ |
ออบเจ็กต์ที่นักพัฒนาซอฟต์แวร์กำหนดซึ่งจะแนบไปกับคำขอ QUERY และ EXECUTE ในอนาคต โดยมีขนาดสูงสุด 512 ไบต์ต่ออุปกรณ์ ใช้ออบเจ็กต์นี้เพื่อเก็บข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์ที่บริการระบบคลาวด์ของคุณอาจต้องการ เช่น ภูมิภาคทั่วโลกของอุปกรณ์ ข้อมูลในออบเจ็กต์นี้มีข้อจำกัดบางประการ ได้แก่ ไม่มีข้อมูลที่ละเอียดอ่อน ซึ่งรวมถึงแต่ไม่จำกัดเพียงข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ |
otherDeviceIds |
อาร์เรย์ |
รายการรหัสสำรองที่ใช้ระบุอุปกรณ์ที่ซิงค์ในระบบคลาวด์สำหรับการดำเนินการในเครื่อง |
[item, ...] |
ออบเจ็กต์ |
รหัสอุปกรณ์อื่น |
agentId |
String |
รหัสของตัวแทน โดยทั่วไปจะเป็นรหัสโปรเจ็กต์ในคอนโซล Actions |
deviceId |
String |
ต้องระบุ รหัสอุปกรณ์ที่ตัวแทนกำหนด รหัสอุปกรณ์ต้องไม่ซ้ำกัน |
ตัวอย่าง
การตอบสนองของ Intent
{
"requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
"payload": {
"agentUserId": "1836.15267389",
"devices": [
{
"id": "123",
"type": "action.devices.types.OUTLET",
"traits": [
"action.devices.traits.OnOff"
],
"name": {
"defaultNames": [
"My Outlet 1234"
],
"name": "Night light",
"nicknames": [
"wall plug"
]
},
"willReportState": false,
"roomHint": "kitchen",
"deviceInfo": {
"manufacturer": "lights-out-inc",
"model": "hs1234",
"hwVersion": "3.2",
"swVersion": "11.4"
},
"otherDeviceIds": [
{
"deviceId": "local-device-id"
}
],
"customData": {
"fooValue": 74,
"barValue": true,
"bazValue": "foo"
}
},
{
"id": "456",
"type": "action.devices.types.LIGHT",
"traits": [
"action.devices.traits.OnOff",
"action.devices.traits.Brightness",
"action.devices.traits.ColorSetting"
],
"name": {
"defaultNames": [
"lights out inc. bulb A19 color hyperglow"
],
"name": "lamp1",
"nicknames": [
"reading lamp"
]
},
"willReportState": false,
"roomHint": "office",
"attributes": {
"colorModel": "rgb",
"colorTemperatureRange": {
"temperatureMinK": 2000,
"temperatureMaxK": 9000
},
"commandOnlyColorSetting": false
},
"deviceInfo": {
"manufacturer": "lights out inc.",
"model": "hg11",
"hwVersion": "1.2",
"swVersion": "5.4"
},
"customData": {
"fooValue": 12,
"barValue": false,
"bazValue": "bar"
}
}
]
}
}