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