action.devices.SYNC
Intent นี้จะขอรายการอุปกรณ์ที่เชื่อมโยงกับผู้ใช้และความสามารถที่กําหนด
โดยจะทํางานระหว่างการลิงก์บัญชีหรือเมื่อผู้ใช้ซิงค์อุปกรณ์อีกครั้งด้วยตนเอง การดําเนินการตามคําสั่งซื้อควรตอบสนองต่อลักษณะเฉพาะและแอตทริบิวต์ที่รองรับสําหรับอุปกรณ์แต่ละเครื่อง
การตอบกลับ SYNC
ของคุณควรส่งคืนอุปกรณ์ทั้งหมดที่เชื่อมโยงกับผู้ใช้
ข้อมูลนี้ไม่ได้กําหนดว่าอุปกรณ์ใดๆ เข้าถึงได้หรือไม่ ซึ่งกําหนดโดยการตอบสนองของ QUERY
และ EXECUTE
โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อระบุและซิงค์
รูปแบบคําขอ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
สตริง |
ต้องระบุ รหัสของคําขอ |
inputs |
อาร์เรย์ |
ต้องระบุ รายการอินพุตที่ตรงกับคําขอ Intent |
[item, ...] |
ออบเจ็กต์ |
พิมพ์และเพย์โหลดที่เชื่อมโยงกับคําขอ Intent |
intent |
ต้องระบุ (ค่าคงที่: ประเภทคําขอ Intent |
ตัวอย่าง
คําขอ Intent ของ SYNC
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
รูปแบบคําตอบ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
สตริง |
ต้องระบุ รหัสของคําขอที่เกี่ยวข้อง |
payload |
ออบเจ็กต์ |
ต้องระบุ เพย์โหลดการตอบกลับ Intent |
agentUserId |
สตริง |
ต้องระบุ แสดง User-ID ที่ไม่ซ้ํากัน (และเปลี่ยนแปลงไม่ได้) บนแพลตฟอร์มของ Agent สตริงจะคลุมเครือกับ Google ดังนั้นหากมีแบบฟอร์มที่เปลี่ยนแปลงไม่ได้และแบบฟอร์มที่เปลี่ยนแปลงไม่ได้ในฝั่งตัวแทน ให้ใช้แบบฟอร์มที่เปลี่ยนแปลงไม่ได้ (เช่น หมายเลขบัญชี แทนที่จะเป็นอีเมล) |
errorCode |
สตริง |
สําหรับข้อผิดพลาดอย่างเป็นระบบใน SYNC |
debugString |
สตริง |
ข้อผิดพลาดโดยละเอียดที่จะไม่แสดงต่อผู้ใช้ แต่อาจมีการบันทึกหรือนําไปใช้ระหว่างการพัฒนา |
devices |
อาร์เรย์ |
ต้องระบุ รายการอุปกรณ์ที่ผู้ใช้เป็นเจ้าของ มีการส่งอุปกรณ์มากกว่า 0 เครื่อง (อุปกรณ์เป็นศูนย์ หมายความว่าผู้ใช้ไม่มีอุปกรณ์ หรือยกเลิกการเชื่อมต่ออุปกรณ์ทั้งหมด) |
[item, ...] |
ออบเจ็กต์ |
ข้อมูลเมตาของอุปกรณ์ |
id |
สตริง |
ต้องระบุ รหัสของอุปกรณ์ในระบบคลาวด์ของนักพัฒนาซอฟต์แวร์ การดําเนินการนี้ต้องไม่ซ้ํากันสําหรับนักพัฒนาแอปและนักพัฒนาแอป เนื่องจากในกรณีของการแชร์ เราอาจนําข้อมูลนี้ไปใช้ที่ทําให้ดูอุปกรณ์เดียวกันซ้ํากันหลายครั้ง อุปกรณ์ไม่ควรมีการเปลี่ยนแปลงในสภาพ หากมีการเปลี่ยนแปลง Assistant จะถือว่าเป็นอุปกรณ์ใหม่ |
type |
สตริง |
ต้องระบุ ประเภทฮาร์ดแวร์ของอุปกรณ์ |
traits |
อาร์เรย์ |
ต้องระบุ รายการลักษณะเฉพาะที่อุปกรณ์นี้ แอตทริบิวต์นี้จะกําหนดคําสั่ง แอตทริบิวต์ และสถานะที่อุปกรณ์รองรับ |
[item, ...] |
สตริง |
ชื่อของลักษณะที่รองรับ |
name |
ออบเจ็กต์ |
ต้องระบุ ชื่ออุปกรณ์ |
defaultNames |
อาร์เรย์ |
รายชื่อของนักพัฒนาซอฟต์แวร์ ไม่ใช่ผู้ใช้ ซึ่งมักจะเป็นชื่อผู้ผลิต, SKU ฯลฯ |
[item, ...] |
สตริง |
ชื่อเริ่มต้นของอุปกรณ์ |
name |
สตริง |
ต้องระบุ ชื่อหลักของอุปกรณ์ ซึ่งผู้ใช้มักระบุ นอกจากนี้ Assistant ก็ยังเป็นชื่อที่ Assistant อธิบายในอุปกรณ์ด้วย |
nicknames |
อาร์เรย์ |
ชื่ออื่นๆ ที่กําหนดโดยผู้ใช้สําหรับอุปกรณ์ |
[item, ...] |
สตริง |
ชื่อเล่นของอุปกรณ์ |
willReportState |
บูลีน |
ต้องระบุ ระบุว่าอุปกรณ์จะได้รับการอัปเดตสถานะตามฟีดเรียลไทม์หรือไม่ (เป็น "จริง" เพื่อใช้ฟีดเรียลไทม์สําหรับสถานะการรายงาน และ "เท็จ" เพื่อใช้โมเดลแบบสํารวจ) |
notificationSupportedByAgent |
บูลีน |
(ค่าเริ่มต้น: ระบุว่ามีการเปิดใช้การแจ้งเตือนสําหรับอุปกรณ์หรือไม่ |
roomHint |
สตริง |
ระบุห้องปัจจุบันของอุปกรณ์ไว้ในบ้านของผู้ใช้เพื่อให้ตั้งค่าได้ง่ายขึ้น |
deviceInfo |
ออบเจ็กต์ |
มีช่องที่อธิบายข้อมูลอุปกรณ์สําหรับการใช้งานในตรรกะเพียงครั้งเดียวหากจําเป็น (เช่น "เฟิร์มแวร์เสียเวอร์ชัน X ของหลอดไฟ Y ต้องปรับสี" หรือ "ข้อบกพร่องด้านความปลอดภัยต้องแจ้งให้ผู้ใช้ทราบเฟิร์มแวร์ทั้งหมด Z") |
manufacturer |
สตริง |
มีประโยชน์อย่างยิ่งเมื่อนักพัฒนาแอปเป็นฮับสําหรับอุปกรณ์อื่นๆ Google อาจจัดทํารายชื่อมาตรฐานของผู้ผลิตไว้ที่นี่เพื่อให้ทั้ง TP-Link และ Smartthings อธิบาย "osram" เหมือนกันได้ |
model |
สตริง |
รุ่นหรือตัวระบุ SKU ของอุปกรณ์หนึ่งๆ |
hwVersion |
สตริง |
หมายเลขเวอร์ชันที่เจาะจงที่แนบมากับฮาร์ดแวร์ (หากมี) |
swVersion |
สตริง |
หมายเลขเวอร์ชันเฉพาะที่เชื่อมต่อกับซอฟต์แวร์/เฟิร์มแวร์ หากมี |
attributes |
ออบเจ็กต์ |
สอดคล้องกับแอตทริบิวต์ต่อลักษณะที่อธิบายไว้ในการอ้างอิงสคีมาลักษณะเฉพาะแต่ละรายการ |
customData |
ออบเจ็กต์ |
ออบเจ็กต์ที่กําหนดโดยนักพัฒนาแอปจะแนบไปกับคําขอ QUERY และ EXECUTE ในอนาคต สูงสุดไม่เกิน 512 ไบต์ต่ออุปกรณ์ ใช้ออบเจ็กต์นี้เพื่อเก็บข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์ที่บริการระบบคลาวด์ของคุณต้องใช้ เช่น ภูมิภาคทั่วโลกของอุปกรณ์ ข้อมูลในออบเจ็กต์นี้มีข้อจํากัดบางประการ ได้แก่ ไม่มีข้อมูลที่ละเอียดอ่อน ซึ่งรวมถึงแต่ไม่จํากัดเพียงข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ |
otherDeviceIds |
อาร์เรย์ |
รายการรหัสสํารองที่ใช้เพื่อระบุอุปกรณ์ที่ซิงค์ในระบบคลาวด์เพื่อการเรียกใช้ในเครื่อง |
[item, ...] |
ออบเจ็กต์ |
รหัสอุปกรณ์สํารอง |
agentId |
สตริง |
รหัสของ Agent โดยทั่วไป นี่คือรหัสโปรเจ็กต์ในคอนโซลการดําเนินการ |
deviceId |
สตริง |
ต้องระบุ รหัสอุปกรณ์ที่กําหนดโดยตัวแทน รหัสอุปกรณ์ต้องไม่ซ้ํากัน |
ตัวอย่าง
การตอบกลับความตั้งใจของ SYNC
{ "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" } } ] } }