Local Home SDK จะช่วยปรับปรุงการผสานรวมสมาร์ทโฮมกับ Google Assistant โดยเพิ่มเส้นทางการตอบสนองในเครื่องเพื่อกำหนดเส้นทางIntent ของสมาร์ทโฮม
Local Home SDK มีความสามารถ 2 อย่าง ได้แก่ การดำเนินการในเครื่องและการค้นหาในเครื่อง
- การดำเนินการในเครื่องช่วยให้สามารถดำเนินการตามคำสั่งได้โดยการส่ง
EXEC
เจตนาผ่านเส้นทางการตอบสนองในเครื่องแทนการเรียกใช้ Cloud API เช่น คำขอ "เปิดไฟ" อาจได้รับการจัดการโดยการดำเนินการในเครื่อง - คำค้นหาในพื้นที่ช่วยให้จัดการคำค้นหาเกี่ยวกับสถานะของอุปกรณ์ได้โดยการส่ง
QUERY
เจตนาผ่านเส้นทางการดำเนินการในพื้นที่ ตัวอย่างเช่น Local Query จะดำเนินการตามคำค้นหา "ไฟเปิดอยู่ไหม" โดยไม่ต้อง เรียกใช้ Cloud API
SDK ช่วยให้คุณเขียนแอปการจัดการคำสั่งซื้อในร้านค้าโดยใช้ TypeScript หรือ JavaScript ซึ่งมีตรรกะทางธุรกิจของสมาร์ทโฮม อุปกรณ์ Google Home หรือ Google Nest สามารถโหลดและ เรียกใช้แอปในอุปกรณ์ได้ แอปของคุณสื่อสารกับอุปกรณ์อัจฉริยะที่มีอยู่โดยตรงผ่าน Wi-Fi ในเครือข่ายท้องถิ่น (LAN) เพื่อดำเนินการตามคำสั่งของผู้ใช้ผ่านโปรโตคอลที่มีอยู่
การผสานรวม SDK จะช่วยปรับปรุงประสิทธิภาพการผสานรวม Cloud-to-cloud รวมถึงลดเวลาในการตอบสนองและเพิ่มความน่าเชื่อถือ การดำเนินการตามคำสั่งในพื้นที่รองรับอุปกรณ์ทุกประเภทและลักษณะของอุปกรณ์ ยกเว้นอุปกรณ์ที่ใช้การยืนยันผู้ใช้รอง
ทำความเข้าใจวิธีการทำงาน
หลังจากได้รับคำตอบ SYNC
จาก Fulfillment ในระบบคลาวด์แล้ว แพลตฟอร์ม Local Home จะสแกนเครือข่ายในพื้นที่ของผู้ใช้
โดยใช้ 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 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 หรือคำขอ HTTPApp
: ระบุวิธีการแนบตัวแฮนเดิลสำหรับ Intent ที่ Google ส่ง หลังจากค้นพบอุปกรณ์ที่ควบคุมได้ในพื้นที่ (IDENTIFY
,REACHABLE_DEVICES
) คลาสนี้ยังดำเนินการตามคำสั่งของผู้ใช้ (EXECUTE
) และ ตอบคำถามของผู้ใช้เกี่ยวกับสถานะปัจจุบันของอุปกรณ์ (QUERY
)
ในระหว่างการพัฒนา คุณสามารถสร้างและทดสอบแอปได้โดยการโหลดแอปในเซิร์ฟเวอร์โฮสติ้งของคุณเองหรือเครื่องมือพัฒนาในเครื่อง ในสภาพแวดล้อมการผลิต Google จะโฮสต์แอปของคุณในสภาพแวดล้อมแซนด์บ็อกซ์ JavaScript ที่ปลอดภัยในอุปกรณ์ Google Home หรือ Google Nest ของผู้ใช้
ขณะนี้ API Report State ไม่รองรับการปฏิบัติตามคำสั่งในพื้นที่ Google อาศัยการปฏิบัติตามคำสั่งซื้อในระบบคลาวด์ของคุณเพื่อประมวลผลคำขอเหล่านี้
วงจรการใช้งานแอปพลิเคชัน
ระบบจะโหลดแอปการดำเนินการในพื้นที่ตามคำขอเมื่อแพลตฟอร์มบ้านอัจฉริยะในพื้นที่ค้นพบ อุปกรณ์ในพื้นที่ใหม่ที่ตรงกับการกำหนดค่าการสแกนโปรเจ็กต์ หรือมี Intent ที่รอดำเนินการซึ่งเกี่ยวข้องกับอุปกรณ์ที่ระบุไว้ก่อนหน้านี้
อุปกรณ์ Google Home หรือ Google Nest มีข้อจำกัดด้านหน่วยความจำ และระบบอาจปิดแอปการดำเนินการตามคำสั่งในพื้นที่ของคุณ ได้ทุกเมื่อเนื่องจากหน่วยความจำในระบบเต็ม ปัญหานี้อาจเกิดขึ้นหากแอปเริ่มใช้หน่วยความจำมากเกินไป หรือหากระบบต้อง จัดสรรพื้นที่สำหรับแอปอื่น แพลตฟอร์ม Local Home จะรีสตาร์ทแอปของคุณเมื่อมี 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 จัดเตรียมไว้ให้ และแพ็กเกจซอร์สโค้ดเป็น Immediately-invoked Function Expression (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 |
ก่อนเริ่มต้น
- ทำความคุ้นเคยกับข้อมูลพื้นฐานของการสร้างCloud-to-cloudการผสานรวม
- ใน Google Home Developer Console ให้ตรวจสอบว่าคุณมีโปรเจ็กต์สมาร์ทโฮมอยู่แล้วและได้กำหนดค่าการลิงก์บัญชีแล้ว
- ตรวจสอบว่าคุณเข้าสู่ระบบด้วยบัญชี Google เดียวกันใน Developer Console และใน Assistant บนอุปกรณ์ทดสอบ
- คุณจะต้องมีสภาพแวดล้อม Node.js เพื่อเขียนแอป ขอแนะนำให้ใช้ Node Version Manager ในการติดตั้ง Node.js และ npm
- หากต้องการใช้ Local Home SDK เวอร์ชันล่าสุด คุณจะต้องลงทะเบียนอุปกรณ์ทดสอบในโปรแกรม Cast Preview