action.devices.SYNC
ความตั้งใจนี้ขอรายการอุปกรณ์ที่เชื่อมโยงกับผู้ใช้ที่ระบุและความสามารถของอุปกรณ์
โดยจะทริกเกอร์ระหว่างการลิงก์บัญชีหรือเมื่อผู้ใช้ ซิงค์อุปกรณ์อีกครั้งด้วยตนเอง การดำเนินการตามคำสั่งควรตอบกลับด้วย ลักษณะและแอตทริบิวต์ที่รองรับสำหรับอุปกรณ์แต่ละเครื่อง
SYNC
คำตอบของคุณควรแสดงอุปกรณ์ทั้งหมดที่เชื่อมโยงกับผู้ใช้
ซึ่งไม่ได้กำหนดว่าอุปกรณ์ใดอุปกรณ์หนึ่งจะเข้าถึงได้หรือไม่ ซึ่งจัดการโดยการตอบกลับของ QUERY
และ EXECUTE
ดูรายละเอียดเพิ่มเติมได้ที่ระบุและซิงค์
รูปแบบคำขอ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
String |
ต้องระบุ รหัสของคำขอ |
inputs |
อาร์เรย์ |
ต้องระบุ รายการอินพุตที่ตรงกับคำขอ Intent |
[item, ...] |
ออบเจ็กต์ |
ประเภทและเพย์โหลดที่เชื่อมโยงกับคำขอ Intent |
intent |
ต้องระบุ (ค่าคงที่: ประเภทคำขอ Intent |
ตัวอย่าง
คำขอความตั้งใจ SYNC
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
รูปแบบการตอบกลับ
ช่อง | ประเภท | คำอธิบาย |
---|---|---|
requestId |
String |
ต้องระบุ รหัสของคำขอที่เกี่ยวข้อง |
payload |
ออบเจ็กต์ |
ต้องระบุ เพย์โหลดการตอบกลับ Intent |
agentUserId |
String |
ต้องระบุ แสดง User ID ที่ไม่ซ้ำกัน (และเปลี่ยนแปลงไม่ได้) ในแพลตฟอร์มของตัวแทน สตริงนี้จะทึบแสงสำหรับ 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 จะใช้เพื่ออธิบายอุปกรณ์ในการตอบกลับด้วย ระบบจะตัดชื่อหากเกินขีดจำกัด 60 Code Point (อักขระ) ของ Unicode และจะไม่มีข้อผิดพลาด นักพัฒนาแอปมีหน้าที่จัดการชื่อที่ยาว |
nicknames |
อาร์เรย์ |
ชื่อเพิ่มเติมที่ผู้ใช้ระบุสำหรับอุปกรณ์ |
[item, ...] |
String |
ชื่อเล่นของอุปกรณ์ |
willReportState |
บูลีน |
ต้องระบุ ระบุว่าอุปกรณ์นี้จะได้รับการอัปเดตสถานะโดยฟีดแบบเรียลไทม์หรือไม่ (จริงเพื่อใช้ฟีดเรียลไทม์สำหรับการรายงานสถานะ และเท็จเพื่อใช้รูปแบบการสำรวจ) |
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 |
ต้องระบุ รหัสอุปกรณ์ที่กำหนดโดยตัวแทน รหัสอุปกรณ์ต้องไม่ซ้ำกัน |
ตัวอย่าง
การตอบสนองความตั้งใจในการซิงค์
{ "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" } } ] } }