Intent

Intent ของสมาร์ทโฮมคือออบเจ็กต์การรับส่งข้อความง่ายๆ ที่อธิบายการผสานรวม Cloud-to-cloud ที่จะดำเนินการ เช่น เปิดไฟหรือแคสต์เสียงไปยังลำโพง

Intent smart home ทั้งหมดอยู่ในเนมสเปซ action.devices และคุณต้องระบุการดำเนินการตามคำขอสำหรับ Intent เหล่านั้น เมื่อใดก็ตามที่ Google Assistant ส่ง Intent ไปยัง Fulfillment ระบบจะส่งโทเค็นเพื่อการเข้าถึง OAuth 2 ของบุคคลที่สามของผู้ใช้ในส่วนหัวการให้สิทธิ์

Intent ของ smart home ที่รองรับมีดังนี้

ซิงค์

Intent action.devices.SYNC ใช้เพื่อขอรายการอุปกรณ์ smart home ที่ผู้ใช้เชื่อมต่อและพร้อมใช้งาน

เมื่อผู้ใช้ตั้งค่าอุปกรณ์ด้วย Google Home app (GHA) ผู้ใช้จะได้รับการตรวจสอบสิทธิ์ในโครงสร้างพื้นฐานของระบบคลาวด์ด้วย จากนั้น Assistant จะได้รับโทเค็น OAuth2 ณ จุดนี้ Assistant จะส่ง Intent action.devices.SYNC ไปยังการดำเนินการของคุณเพื่อดึงข้อมูลรายการอุปกรณ์และความสามารถของผู้ใช้จากโครงสร้างพื้นฐานของระบบคลาวด์

ภาพนี้แสดงการโต้ตอบระหว่างโครงสร้างพื้นฐานของ Google กับโครงสร้างพื้นฐานของพาร์ทเนอร์ จากโครงสร้างพื้นฐานของ Google จะมีรายชื่อพาร์ทเนอร์ที่พร้อมให้บริการแก่แอปไคลเอ็นต์ Assistant ซึ่งจะส่งต่อไปยังโครงสร้างพื้นฐานของพาร์ทเนอร์เพื่อตรวจสอบสิทธิ์ OAuth ให้เสร็จสมบูรณ์ การตรวจสอบสิทธิ์ OAuth ฝั่งพาร์ทเนอร์คือ WebView การตั้งค่าพาร์ทเนอร์, WebView ของ OAuth, การตั้งค่าและข้อกำหนดที่ไม่บังคับ และบริการระบบคลาวด์ของพาร์ทเนอร์ จากนั้นโครงสร้างพื้นฐานของพาร์ทเนอร์จะแสดงข้อมูลเข้าสู่ระบบ OAuth ไปยังแอปไคลเอ็นต์ Assistant บริการระบบคลาวด์ของพาร์ทเนอร์จะส่งอุปกรณ์และความสามารถที่พร้อมใช้งานไปยังบริการ Assistant ซึ่งจะจัดเก็บข้อมูลไว้ใน Home Graph
รูปที่ 1: การโต้ตอบระหว่างโครงสร้างพื้นฐานของ Google และพาร์ทเนอร์

คุณสามารถส่งคำขอซิงค์ไปยัง Assistant เพื่อหลีกเลี่ยงการยกเลิกการลิงก์และลิงก์บัญชีของผู้ใช้อีกครั้ง ซึ่งจะส่ง Intent action.devices.SYNC ไปยังการดำเนินการตามคำขอเพื่อซิงค์รายการอุปกรณ์และความสามารถ ดูข้อมูลเพิ่มเติมได้ที่ใช้ Request Sync

แผนภาพโฟลว์ของ Intent SYNC
รูปที่ 2: Intent SYNC

ระหว่างการตั้งค่าการดำเนินการในพื้นที่ แพลตฟอร์ม Local Home จะตรวจสอบการตอบกลับ SYNC จากการดำเนินการในระบบคลาวด์ของ smart home Action ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีแก้ไขการตอบสนอง SYNC เพื่อรองรับการดำเนินการในพื้นที่ได้ที่อัปเดตการตอบสนอง SYNC ในการดำเนินการในระบบคลาวด์

QUERY

ระบบจะใช้ Intent action.devices.QUERY เพื่อค้นหาสถานะปัจจุบันของอุปกรณ์ smart home

เมื่อผู้ใช้ค้นหาสถานะอุปกรณ์เพื่อตอบคำถาม เช่น Ok Google ไฟดวงไหนในห้องครัวเปิดอยู่ Assistant จะส่ง Intent action.devices.QUERY ไปยังการดำเนินการตามคำขอของคุณ

แผนภาพโฟลว์ของความตั้งใจ QUERY
รูปที่ 3: จุดประสงค์ในการค้นหา

คุณควรใช้รายงานสถานะเพื่อรายงานสถานะปัจจุบันของอุปกรณ์ของผู้ใช้ไปยัง Google Home Graph โดยตรงในเชิงรุกเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีที่สุด ตัวอย่างเช่น วิธีนี้ช่วยให้ Assistant ทราบว่าผู้ใช้เปิดหลอดไฟอัจฉริยะด้วยสวิตช์ไฟจริงหรือไม่

การรายงานสถานะอุปกรณ์โดยใช้ Report State
รูปที่ 4: รายงานสถานะอุปกรณ์

EXECUTE

ระบบจะใช้ Intent action.devices.EXECUTE เพื่อระบุคำสั่ง ที่จะดำเนินการในอุปกรณ์ smart home

เมื่อผู้ใช้ส่งคำสั่งไปยังอุปกรณ์ด้วย Assistant การดำเนินการตามคำสั่งของคุณจะได้รับ Intent action.devices.EXECUTE ไปยังการดำเนินการตามคำสั่งที่อธิบายการดำเนินการและอุปกรณ์ที่จะดำเนินการ ผู้ใช้สามารถดำเนินการบนอุปกรณ์ด้วยคำสั่ง เช่น Ok Google เปิดไฟในห้องนั่งเล่น

แผนภาพโฟลว์ของ Intent EXECUTE
รูปที่ 5: Intent EXECUTE

ยกเลิกการเชื่อมต่อ

ระบบจะทริกเกอร์ Intent action.devices.DISCONNECT เพื่อแจ้งให้คุณทราบเมื่อผู้ใช้ยกเลิกการลิงก์บัญชีแอปจาก Assistant หลังจากได้รับ Intent action.devices.DISCONNECT คุณไม่ควรรายงานสถานะของอุปกรณ์ของผู้ใช้รายนี้