การจำหน่ายในท้องถิ่น

Local Home SDK เพิ่มประสิทธิภาพการผสานรวมสมาร์ทโฮมกับ Google Assistant ด้วยการเพิ่มเส้นทางการดำเนินการตามคำสั่งซื้อในพื้นที่ลงในเส้นทาง ความตั้งใจสมาร์ทโฮม

SDK ให้คุณเขียนแอปการดำเนินการตามคำสั่งซื้อในเครื่อง โดยใช้ TypeScript หรือ JavaScript ที่มีตรรกะทางธุรกิจของสมาร์ทโฮม อุปกรณ์ Google Home หรือ Google Nest สามารถโหลดและ เรียกใช้แอปของคุณในอุปกรณ์ แอปจะสื่อสารกับโทรศัพท์สมาร์ทที่ใช้งานอยู่โดยตรง อุปกรณ์ผ่าน Wi-Fi ในเครือข่ายเฉพาะที่ (LAN) เพื่อให้ทำตามคำสั่งของผู้ใช้ได้ มากกว่าโปรโตคอลที่มีอยู่

การผสานรวม SDK ช่วยปรับปรุงประสิทธิภาพสมาร์ทโฮมของคุณ การทำงาน ซึ่งรวมถึงเวลาในการตอบสนองต่ำลงและความน่าเชื่อถือสูงขึ้น การจำหน่ายในพื้นที่ คือ รองรับอุปกรณ์ทุกประเภทและลักษณะของอุปกรณ์ ยกเว้นอุปกรณ์ที่ใช้ ผู้ใช้รอง การยืนยัน

เริ่มสร้าง ลองดูตัวอย่าง

ทำความเข้าใจวิธีการทำงาน

หลังจากได้รับการตอบกลับเกี่ยวกับ SYNC แพลตฟอร์ม Home ในท้องถิ่นจะสแกนข้อมูล เครือข่ายเฉพาะที่ที่ใช้ mDNS, การออกอากาศ UDP หรือ UPnP เพื่อสำรวจ อุปกรณ์อัจฉริยะที่เชื่อมต่อกับ Assistant

แพลตฟอร์มจะส่ง Intent IDENTIFY เพื่อระบุว่าอุปกรณ์ ควบคุมได้ในเครื่อง โดยการเปรียบเทียบรหัสอุปกรณ์ในการตอบกลับ IDENTIFY กับข้อความตอบกลับโดย SYNC ก่อนหน้านี้ หากอุปกรณ์ที่ตรวจพบเป็น ฮับหรือบริดจ์ แพลตฟอร์มจะส่ง Intent REACHABLE_DEVICES และถือว่า เป็นอุปกรณ์พร็อกซีสำหรับการสื่อสารภายใน

เมื่อได้รับคําตอบที่ยืนยันอุปกรณ์ในเครือข่ายเดียวกัน แพลตฟอร์มจะเริ่ม เส้นทางการดำเนินการตามคำสั่งซื้อในท้องถิ่นไปยังอุปกรณ์ Google Home หรือ Google Nest ของผู้ใช้ และกำหนดเส้นทางในภายหลัง คำสั่งของผู้ใช้สำหรับ Fulfillment ในเครื่อง

เมื่อผู้ใช้ทริกเกอร์การดำเนินการสำหรับสมาร์ทโฮมที่มีเส้นทางการดำเนินการตามคำสั่งซื้อในเครื่อง Assistant จะส่ง EXECUTE หรือ QUERY Intent Google Home หรือ Google Nest แทนที่จะเป็น Fulfillment ระบบคลาวด์ จากนั้นอุปกรณ์ เรียกใช้แอป Fulfillment ในเครื่องเพื่อประมวลผล Intent

วันที่ รูปนี้แสดงขั้นตอนการดำเนินการสำหรับการดำเนินการตามคำสั่งซื้อในเครื่อง 
            เส้นทางการดำเนินการจะบันทึกความตั้งใจของผู้ใช้จากโทรศัพท์ด้วย
            Google Assistant จะประมวลผล Intent ของผู้ใช้ด้วย
            Google Cloud แล้วก็ไปดำเนินการในเครื่องบน Google Home
            และออกคำสั่งไปยังฮับอุปกรณ์โดยตรง หรือ
            อุปกรณ์โดยตรง ระบบคลาวด์ของนักพัฒนาซอฟต์แวร์พร้อมใช้งานเป็น
            ระบบคลาวด์สำรอง
รูปที่ 1: การเพิ่มเส้นทางการจำหน่ายในพื้นที่สำหรับสมาร์ทโฮม แอ็กชัน

แพลตฟอร์ม Home ในพื้นที่ไม่ได้กําหนดไว้ว่าจะเลือกอุปกรณ์ Google Home หรือ Google Nest เครื่องใด เรียกคำสั่ง Intent ของ EXECUTE และ QUERY อาจมาจาก อุปกรณ์ Google Home หรือ Google Nest ที่กำหนดไว้ใน Home Graph เดียวกัน เป็นอุปกรณ์เป้าหมาย

แอปการดำเนินการตามคำสั่งซื้อในพื้นที่

แอปการดำเนินการตามคำสั่งซื้อในพื้นที่มีตรรกะทางธุรกิจสำหรับประมวลผล Intent ที่ส่งจาก แพลตฟอร์ม Home ในพื้นที่แล้วเข้าถึงอุปกรณ์อัจฉริยะผ่านเครือข่าย LAN ทั้งนี้ เราคาดว่าจะไม่มีการดัดแปลงฮาร์ดแวร์เพื่อผสานรวมการดำเนินการตามคำสั่งซื้อในพื้นที่ แอปดำเนินการตามคำขอการดำเนินการสมาร์ทโฮมโดยการส่งคำสั่งการควบคุมไปยัง ผ่านโปรโตคอลเลเยอร์แอปพลิเคชัน ซึ่งรวมถึง HTTP, TCP หรือ UDP ในกรณีที่เส้นทางการดำเนินการตามคำสั่งซื้อในเครื่องล้มเหลว ระบบจะใช้การดำเนินการตามคำสั่งซื้อบนระบบคลาวด์ เป็นเส้นทางการดำเนินการสำรอง

Local Home SDK มีตัวเลือกหลัก 2 อย่างนี้เพื่อรองรับการสร้างแอป ชั้นเรียน:

  • DeviceManager มอบวิธีในการสื่อสารกับอุปกรณ์อัจฉริยะโดยใช้ คำขอ TCP, ซ็อกเก็ต UDP หรือ HTTP
  • App มอบวิธีการในการแนบตัวแฮนเดิลสำหรับ Intent ที่ Google ส่ง หลังจากพบอุปกรณ์ที่ควบคุมได้ในท้องถิ่น (IDENTIFY REACHABLE_DEVICES) คลาสนี้ยังทำตามคำสั่งของผู้ใช้ (EXECUTE) และ ตอบคำถามของผู้ใช้เกี่ยวกับสถานะปัจจุบันของอุปกรณ์ (QUERY)

ระหว่างการพัฒนา คุณจะสร้างและทดสอบแอปได้โดยโหลดแอปด้วยตัวเอง เซิร์ฟเวอร์โฮสติ้งหรือเครื่องสำหรับการพัฒนาซอฟต์แวร์ภายใน ในเวอร์ชันที่ใช้งานจริง Google จะโฮสต์ ในสภาพแวดล้อมแซนด์บ็อกซ์ของ JavaScript ที่ปลอดภัยในอุปกรณ์ Google Home หรือ Google Nest ของผู้ใช้

Report State API คือ ยังไม่รองรับการจำหน่ายในพื้นที่ Google อาศัย Fulfillment ระบบคลาวด์เพื่อดำเนินการตามคำขอเหล่านี้

วงจรแอปพลิเคชัน

แอปการดำเนินการตามคำสั่งซื้อในพื้นที่จะโหลดตามคำขอเมื่อแพลตฟอร์ม Home ในพื้นที่ค้นพบ อุปกรณ์เครื่องใหม่ที่ตรงกับการกำหนดค่าการสแกนโปรเจ็กต์หรือรอดำเนินการ จุดประสงค์ในการแสดงโฆษณาที่เกี่ยวข้องกับอุปกรณ์ที่ระบุก่อนหน้านี้

อุปกรณ์ Google Home หรือ Google Nest มีหน่วยความจำจำกัดและแอปดำเนินการตามคำสั่งซื้อในพื้นที่ อาจถูกยกเลิกได้ทุกเมื่อเนื่องจากหน่วยความจำไม่พอ วิธีนี้ เกิดขึ้นเมื่อแอปของคุณเริ่มใช้หน่วยความจำมากเกินไป หรือหากระบบจำเป็นต้องใช้ ที่ว่างสำหรับแอปอื่น แพลตฟอร์ม Home ในพื้นที่จะรีสตาร์ทแอปเฉพาะเมื่อมี Intent ใหม่ที่จะ มอบทรัพยากรหน่วยความจำที่เพียงพอเพื่อให้แอปทำงานได้

แพลตฟอร์ม Local Home จะยกเลิกการโหลดแอปของคุณหลังจากหมดเวลาการไม่มีความเคลื่อนไหวเมื่อผู้ใช้ ยกเลิกการลิงก์บัญชีหรือไม่มีอุปกรณ์ที่รองรับในพื้นที่แล้ว Fulfillment ที่เชื่อมโยงกับ agentUserId ของผู้ใช้

อุปกรณ์ที่รองรับ

แพลตฟอร์ม Home ในพื้นที่เรียกใช้แอปการดำเนินการตามคำสั่งซื้อในพื้นที่บนที่รองรับ อุปกรณ์ Google Home หรือ Google Nest ตารางต่อไปนี้จะอธิบายเกี่ยวกับอุปกรณ์ที่รองรับ และ ที่ใช้ในอุปกรณ์แต่ละเครื่อง ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อกำหนดของรันไทม์ได้ที่ สภาพแวดล้อมการดำเนินการ

อุปกรณ์ ประเภท สภาพแวดล้อม
Google Home ลำโพง Chrome
Google Home Mini ลำโพง Chrome
Google Home Max ลำโพง Chrome
Nest Mini ลำโพง Chrome
Nest Hub ดิสเพลย์ Chrome
Nest Hub Max ดิสเพลย์ Chrome
Nest Wifi เราเตอร์ Node.js
จุด Chrome

สภาพแวดล้อมการดำเนินการ

สภาพแวดล้อมการดำเนินการสำหรับแอปที่ดำเนินการตามคำสั่งซื้อในเครื่องจะขึ้นอยู่กับ device แพลตฟอร์ม Home ในพื้นที่รองรับรายการต่อไปนี้ สภาพแวดล้อมรันไทม์:

  • Chrome: แอปการดำเนินการตามคำสั่งซื้อในเครื่องจะทำงานในบริบทของ Chrome เบราว์เซอร์ window ที่ใช้งาน Chrome M80 ขึ้นไปโดยรองรับ ECMAScript เวอร์ชัน ES2018
  • Node.js: แอปการดำเนินการตามคำสั่งซื้อในเครื่องทำงานเป็นสคริปต์ภายใน Node.js กระบวนการทำงาน Node v10.x LTS ขึ้นไปโดยรองรับ ECMAScript เวอร์ชัน ES2018

โครงสร้างซอร์สโค้ด

เราขอแนะนำให้รวมทรัพยากร Dependency ไว้ในไฟล์ JavaScript ไฟล์เดียวโดยใช้ การกำหนดค่า Bundler จาก Local Home SDK และรวมซอร์สโค้ดของคุณเป็น นิพจน์ฟังก์ชันที่มีการเรียกใช้ทันที (IIFE)

เส้นทางการใช้งาน

หากต้องการใช้ Local Home SDK สำหรับการผสานรวมสมาร์ทโฮม คุณต้องทำดังนี้ ทำงานต่อไปนี้

1 ตั้งค่าการสแกน การกำหนดค่า กำหนดค่าคอนโซล Actions ด้วยพารามิเตอร์ที่จำเป็นสำหรับฟังก์ชัน Assistant เพื่อสำรวจอุปกรณ์ที่ควบคุมได้ในพื้นที่
2 อัปเดต ซิงค์การตอบกลับใน Fulfillment ระบบคลาวด์ ใน Fulfillment ระบบคลาวด์ ให้แก้ไข SYNC เครื่องจัดการคำขอเพื่อสนับสนุน ฟิลด์ otherDeviceIds ที่แพลตฟอร์มใช้ในการสร้าง Fulfillment แบบท้องถิ่น ในช่องดังกล่าว ให้ระบุรหัสของอุปกรณ์ที่สามารถ ควบคุมเฉพาะเครื่องได้
3 ใช้ แอปการดำเนินการตามคำสั่งซื้อในพื้นที่ ใช้ Local Home SDK เพื่อสร้างแอป JavaScript เพื่อ จัดการIDENTIFY EXECUTE และ QUERY Intent สำหรับอุปกรณ์ฮับหรือบริดจ์พร็อกซี คุณควร จัดการ Intent REACHABLE_DEVICES ได้ด้วย
4 ทดสอบและแก้ไขข้อบกพร่องของแอป ทดสอบการผสานรวม (หรือรับรองด้วยตนเอง) โดยใช้ ชุดทดสอบ Google Home

ก่อนเริ่มต้น