คู่มือระบบรักษาความปลอดภัยในบ้านอัจฉริยะ
action.devices.types.SECURITYSYSTEM
- สามารถเปิดและปิดระบบรักษาความปลอดภัยได้ โดยจะติดอยู่ในระดับความปลอดภัยหลายระดับ (เช่น บ้านและไม่อยู่บ้าน) รวมทั้งรายงานข้อมูลเกี่ยวกับเซ็นเซอร์บางตัวได้ เช่น เซ็นเซอร์ที่ตรวจจับการเคลื่อนไหวหรือหน้าต่างที่เปิดอยู่
ประเภทนี้บ่งชี้ว่าอุปกรณ์จะได้รับไอคอนระบบรักษาความปลอดภัย รวมถึงคําพ้องความหมายและชื่อแทนที่เกี่ยวข้องบางส่วน
ความสามารถของอุปกรณ์
โปรดดูเอกสารประกอบที่เกี่ยวข้องสําหรับรายละเอียดการใช้งาน เช่น แอตทริบิวต์และสถานะที่บริการของคุณควรมี และวิธีการสร้างการตอบกลับและคําขอ EXECUTE
ลักษณะเฉพาะที่จําเป็น
ต้องมีคุณลักษณะและคําสั่งเหล่านี้ หากสามารถใช้กับอุปกรณ์ของคุณ
ลักษณะเฉพาะที่แนะนํา
เราขอแนะนําให้มีคุณสมบัติเหล่านี้ (หากใช้ร่วมกับอุปกรณ์ของคุณ) อย่างไรก็ตาม คุณสามารถผสมผสานคุณลักษณะที่มีอยู่ทั้งหมดได้เพื่อจับคู่กับฟังก์ชันการทํางานของผลิตภัณฑ์ที่มีอยู่
ข้อกำหนดด้านคุณภาพ
- เวลาในการตอบสนอง: ต้องมีค่าน้อยกว่าหรือเท่ากับ 2000ms
- ความเสถียร: ต้องมากกว่าหรือเท่ากับ 97%
ตัวอย่างอุปกรณ์: ระบบรักษาความปลอดภัยแบบง่าย
ส่วนนี้ประกอบด้วยเปย์โหลด Intent ตัวอย่างที่แสดง "ระบบรักษาความปลอดภัย" ทั่วไปโดยอิงตามประเภทอุปกรณ์และลักษณะข้างต้น หากเพิ่มหรือนําลักษณะเฉพาะออกจากการใช้งาน ให้แก้ไขคําตอบให้สอดคล้องกับการเปลี่ยนแปลงเหล่านั้น
ตัวอย่างการตอบสนอง SYNC
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.SECURITYSYSTEM", "traits": [ "action.devices.traits.StatusReport", "action.devices.traits.ArmDisarm" ], "name": { "name": "Simple security system" }, "willReportState": true, "attributes": { "availableArmLevels": { "levels": [ { "level_name": "home_key", "level_values": [ { "level_synonym": [ "Home and Guarding", "level 1", "home", "SL1" ], "lang": "en" } ] }, { "level_name": "away_key", "level_values": [ { "level_synonym": [ "Away and Guarding", "level 2", "away", "SL2" ], "lang": "en" } ] } ], "ordered": true } }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
ตัวอย่างการตอบ QUERY
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true, "isArmed": true, "currentArmLevel": "home_key", "currentStatusReport": [ { "blocking": false, "deviceTarget": "123", "priority": 0, "statusCode": "lowBattery" } ] } } } }
ตัวอย่างคําสั่ง EXECUTE
เปิดระบบ
ดูรายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์คําสั่งได้ที่การอ้างอิง
action.devices.traits.ArmDisarm
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ArmDisarm", "params": { "arm": true, "armLevel": "away_key" } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "isArmed": true, "currentArmLevel": "away_key" } } ] } }
อุปกรณ์ ERRORS
ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมดรายงานข้อยกเว้นเมื่อเปิดระบบ
เมื่อพยายามเปิดหรือปิดระบบ คุณสามารถให้บริบทเพิ่มเติมผ่านข้อยกเว้นที่คุณรายงานผ่านลักษณะเฉพาะของ StatusReport ข้อยกเว้นสามารถรายงานเป็นการบล็อกหรือไม่ได้บล็อกได้
- ข้อยกเว้นของการเลิกบล็อกที่รายงานโดยมีสถานะ "SUCCESS" บ่งชี้ว่าข้อยกเว้นไม่ได้ขัดขวางการเปิดหรือปิดใช้งานอาวุธ
- ข้อยกเว้นในการบล็อกที่รายงานโดยมีสถานะ "ยกเว้น" ระบุว่ามีการเปิดหรือปิดการป้องกันเนื่องจากข้อยกเว้นเหล่านี้
รหัสข้อยกเว้นที่มักเชื่อมโยงกับระบบรักษาความปลอดภัยมีดังนี้
doorOpen
: ประตูเปิดอยู่windowOpen
: หน้าต่างจะเปิดขึ้นisOpen
: เซ็นเซอร์ตรวจพบว่ามีบางสิ่งเปิดอยู่ (แต่ไม่ทราบว่าเป็นประตูหรือหน้าต่าง)
ตัวอย่าง: ข้อยกเว้นที่ยังสามารถดําเนินการต่อได้
ตัวอย่างนี้แสดงข้อยกเว้นที่ไม่ใช่การบล็อกซึ่งระบบรักษาความปลอดภัยเปิดอยู่แม้ว่าจะมีการรายงานว่าหน้าต่างเปิดอยู่
ผู้ใช้ | ตั้งค่าระบบรักษาความปลอดภัยให้เป็นระดับสูง |
Google Assistant | ตกลง หน้าต่างด้านหน้าเปิดอยู่ กําลังเปิดใช้งานระบบรักษาความปลอดภัยระดับสูง |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true, "armLevel": "L2" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "isArmed": true, "currentArmLevel": "L2", "currentStatusReport": [ { "blocking": false, "priority": 0, "statusCode": "windowOpen", "deviceTarget": "sensor_id1" } ] } } ] } }
ตัวอย่าง: ข้อยกเว้นการบล็อก
ผู้ใช้ | ตั้งค่าระบบรักษาความปลอดภัยให้เป็นระดับสูง |
Google Assistant | เกิดข้อผิดพลาดในการควบคุมระบบรักษาความปลอดภัย หน้าต่างด้านหน้าเปิดอยู่ |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true, "armLevel": "L2" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "isArmed": false, "currentArmLevel": "L2", "currentStatusReport": [ { "blocking": true, "priority": 0, "statusCode": "windowOpen", "deviceTarget": "sensor_id1" } ] } } ] } }
เปิดระบบด้วยการตรวจสอบสิทธิ์แบบ 2 ปัจจัย
หากกระบวนการสรรหาของคุณกําหนดให้ผู้ใช้ป้อน PIN ผ่านกล่องโต้ตอบการตรวจสอบสิทธิ์แบบ 2 ปัจจัย คุณต้องรับทราบว่าต้องการเปิดใช้งานระบบต่อไปหรือไม่เมื่อมีข้อยกเว้นที่ใช้งานอยู่ (เช่น เมื่อหน้าต่างหรือประตูเปิดอยู่)
สถานการณ์นี้อาจต้องใช้ทั้ง PIN หรือรหัสผ่าน และตามด้วยการตอบรับ
ตัวอย่าง: คําท้าเพื่อรับทราบ
ตัวอย่างนี้แสดงผู้ใช้ที่พยายามเปิดใช้งานระบบรักษาความปลอดภัย แต่ตรวจพบว่าประตูหน้าเปิดอยู่ ผู้ใช้รับทราบว่าต้องเปิดระบบรักษาความปลอดภัยแม้ว่าประตูหน้าเปิดอยู่
ผู้ใช้ | เปิดระบบรักษาความปลอดภัย |
Google Assistant | ประตูหน้าเปิดอยู่ค่ะ แน่ใจไหมว่าต้องการเปิดระบบรักษาความปลอดภัย |
ผู้ใช้ | ได้ |
Google Assistant | โอเค กําลังเปิดใช้งานระบบรักษาความปลอดภัย |
ในคําตอบแรก คุณควรตอบคําถามด้วยคําถาม ackNeeded
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" }, "states": { "isArmed": true, "currentArmLevel": "L2", "currentStatusReport": [ { "blocking": false, "priority": 0, "statusCode": "doorOpen", "deviceTarget": "456" } ] } } ] } }
คําขอที่ตามมาจาก Google ที่ส่งถึงคุณจะมีผลลัพธ์ ack
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "isArmed": true } } ] } }
ตัวอย่าง: PIN และคําท้าเพื่อรับทราบ
ตัวอย่างนี้แสดงผู้ใช้ที่พยายามเปิดใช้งานระบบรักษาความปลอดภัยที่กําหนดให้ป้อน PIN ระบบจะตรวจพบว่ามีหน้าต่างด้านหน้าและด้านหลังเปิดอยู่ และขอให้ผู้ใช้รับทราบว่าการทํารายงานควรดําเนินการต่อไป
ผู้ใช้ | เปิดแขนค้างไว้ |
Google Assistant | PIN ของคุณคืออะไร |
ผู้ใช้ | 1234 |
Google Assistant | ดูเหมือนว่าหน้าต่างด้านหน้าและหน้าต่างด้านหลังจะเปิดอยู่ คุณแน่ใจหรือไม่ว่าต้องการเปิดใช้งานระบบรักษาความปลอดภัยต่อไป |
ผู้ใช้ | ได้ |
Google Assistant | โอเค การเปิดระบบรักษาความปลอดภัยเป็นไม่อยู่บ้าน |
ในคําตอบแรก คุณควรตอบคําถามด้วยคําถามมาตรฐาน pinNeeded
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["456"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
จากนั้น Google จะติดตามผลคําขอที่มี PIN ดังกล่าว คุณควรตอบคําถามด้วย ackNeeded
พร้อมข้อมูลเพิ่มเติม รวมถึงระดับแขนเป้าหมายและรายงานสถานะปัจจุบันโดยมีข้อยกเว้นของการบล็อก เพื่อสนับสนุนการเลี้ยวที่สอง
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [...], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true, "armLevel": "away" }, "challenge": { "pin": "1234" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["456"], "status": "ERROR", "states": { "targetArmLevel": "away", "currentStatusReport": [{ "blocking": true, "priority": 1, "deviceTarget": "front_window_id", "statusCode": "deviceOpen" }, { "blocking": true, "priority": 1, "deviceTarget": "back_window_id", "statusCode": "deviceOpen" } ] }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
คําขอที่ตามมาจาก Google ที่ส่งถึงคุณจะมีเพียงผลลัพธ์ ack
เท่านั้นและไม่รวม PIN ที่ให้ไว้ในการเลี้ยวครั้งแรก
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [...], "execution": [{ "command": "action.devices.commands.ArmDisarm", "params": { "arm": true, "armLevel": "away" }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "isArmed": true } } ] } }