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

Local Home SDK ช่วยปรับปรุงการผสานรวมสมาร์ทโฮมกับ Google Assistant โดยเพิ่มเส้นทางการตอบสนองในเครื่องเพื่อกำหนดIntent ของสมาร์ทโฮม

Local Home SDK มีความสามารถ 2 อย่าง ได้แก่ การดำเนินการในเครื่องและการค้นหาในเครื่อง

  • การดำเนินการในเครื่องช่วยให้สามารถดำเนินการตามคําสั่งได้โดยส่งEXEC Intent ผ่านเส้นทางการตอบสนองในเครื่องแทนการเรียก API ของคลาวด์ เช่น คําขอ "เปิดไฟ" อาจได้รับการจัดการโดยการดำเนินการในเครื่อง
  • คำค้นหาในพื้นที่ช่วยให้สามารถจัดการการค้นหาเกี่ยวกับสถานะของอุปกรณ์ได้โดยส่ง Intent QUERY ผ่านเส้นทางการตอบสนองในพื้นที่ ตัวอย่างเช่น การค้นหาในเครื่องจะดำเนินการตามคําค้นหา "ไฟเปิดอยู่ไหม" โดยไม่ต้องเรียกใช้ API บนระบบคลาวด์

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

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

เริ่มสร้าง ลองใช้ตัวอย่าง

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

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

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

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

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

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

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

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

แอปการตอบสนองในเครื่องมีตรรกะทางธุรกิจเพื่อประมวลผล Intent ที่ส่งโดยแพลตฟอร์มสมาร์ทโฮมในพื้นที่และเข้าถึงอุปกรณ์อัจฉริยะผ่านเครือข่าย LAN คุณไม่จำเป็นต้องแก้ไขฮาร์ดแวร์เพื่อผสานรวมการดำเนินการตามคำสั่งซื้อในพื้นที่ แอปจะดำเนินการตามคำขอการผสานรวม Cloud-to-cloud โดยส่งคำสั่งควบคุมไปยังอุปกรณ์อัจฉริยะผ่านโปรโตคอลชั้นแอปพลิเคชัน ซึ่งรวมถึง 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 อาศัยการดำเนินการตามคำขอเหล่านี้จากบริการประมวลผลคำสั่งซื้อในระบบคลาวด์ของคุณ

วงจรการใช้งานแอปพลิเคชัน

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

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

แพลตฟอร์ม Home ในพื้นที่จะยกเลิกการโหลดแอปของคุณหลังจากหมดเวลาที่ไม่ได้ใช้งานเมื่อผู้ใช้ยกเลิกการลิงก์บัญชี หรือไม่มีอุปกรณ์ที่รองรับการดำเนินการตามคำสั่งซื้อในพื้นที่ซึ่งเชื่อมโยงกับ 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

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

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

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

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

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

เส้นทางการติดตั้งใช้งาน

หากต้องการใช้ Local Home SDK สำหรับการผสานรวมบ้านอัจฉริยะ คุณต้องดำเนินการต่อไปนี้

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

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