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