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 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 มีข้อจำกัดด้านหน่วยความจำ และระบบอาจปิดแอปการดำเนินการในพื้นที่ของคุณ ได้ทุกเมื่อเนื่องจากหน่วยความจำในระบบเต็ม ปัญหานี้อาจเกิดขึ้นหากแอปเริ่มใช้หน่วยความจำมากเกินไป หรือหากระบบต้อง เพิ่มพื้นที่ว่างสำหรับแอปอื่น แพลตฟอร์มบ้านอัจฉริยะจะรีสตาร์ทแอปของคุณก็ต่อเมื่อมี 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 |
ก่อนเริ่มต้น
- ทำความคุ้นเคยกับข้อมูลพื้นฐานของการสร้างCloud-to-cloudการผสานรวม
- ใน Google Home Developer Console ให้ตรวจสอบว่าคุณมีโปรเจ็กต์สมาร์ทโฮมอยู่แล้วและได้กำหนดค่าการลิงก์บัญชีแล้ว
- ตรวจสอบว่าคุณเข้าสู่ระบบด้วยบัญชี Google เดียวกันใน Developer Console และใน Assistant บนอุปกรณ์ทดสอบ
- คุณต้องมีสภาพแวดล้อม Node.js เพื่อเขียนแอป ขอแนะนำให้ใช้ Node Version Manager ในการติดตั้ง Node.js และ npm
- หากต้องการใช้ Local Home SDK เวอร์ชันล่าสุด คุณจะต้องลงทะเบียนอุปกรณ์ทดสอบในโปรแกรม Cast Preview