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

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

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

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

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

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

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

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

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

แพลตฟอร์มจะส่งเจตนา 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: การเพิ่มเส้นทางการตอบสนองในเครื่องสำหรับสมาร์ทโฮม Action

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

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

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

ขณะนี้ API Report State ยังไม่รองรับการปฏิบัติตามข้อกำหนดในพื้นที่ Google อาศัยการปฏิบัติตามคำสั่งซื้อในระบบคลาวด์ของคุณเพื่อประมวลผลคำขอเหล่านี้

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

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

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

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

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

แพลตฟอร์ม Local 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

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

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

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