Local Home SDK ปรับปรุงการผสานรวมสมาร์ทโฮมกับ Google Assistant โดยเพิ่มเส้นทางการตอบสนองในเครื่องเพื่อกําหนดความตั้งใจของสมาร์ทโฮม
SDK ช่วยให้คุณเขียนแอปสําหรับการจําหน่ายในท้องถิ่นโดยใช้ TypeScript หรือ JavaScript ที่มีตรรกะของธุรกิจที่ชาญฉลาดที่บ้าน อุปกรณ์ Google Home หรือ Google Nest สามารถโหลดและเรียกใช้แอปในอุปกรณ์ได้ แอปจะสื่อสารกับอุปกรณ์อัจฉริยะที่มีอยู่โดยตรงผ่าน Wi-Fi ในเครือข่าย LAN (LAN) เพื่อดําเนินการตามคําสั่งของผู้ใช้มากกว่าโปรโตคอลที่มีอยู่
การผสานรวม SDK มีการปรับปรุงประสิทธิภาพสําหรับการดําเนินการสมาร์ทโฮม ซึ่งรวมถึงเวลาในการตอบสนองที่ต่ําลงและความน่าเชื่อถือที่สูงขึ้น การดําเนินการตามท้องถิ่นได้รับการสนับสนุนในอุปกรณ์ทุกประเภทและลักษณะเฉพาะของอุปกรณ์ ยกเว้นอุปกรณ์ที่ใช้การยืนยันผู้ใช้รอง
ทําความเข้าใจวิธีการทํางาน
หลังจากได้รับการตอบสนองจาก SYNC
จากการใช้งานระบบคลาวด์แล้ว แพลตฟอร์ม Local Home จะสแกนเครือข่าย LAN ของผู้ใช้โดยใช้ mDNS, UDP หรือ UPnP เพื่อค้นหาอุปกรณ์อัจฉริยะที่เชื่อมต่อกับ Assistant
แพลตฟอร์มจะส่ง Intent ของ IDENTIFY
เพื่อระบุว่าคุณควบคุมอุปกรณ์ได้หรือไม่ โดยเปรียบเทียบรหัสอุปกรณ์ในการตอบกลับของ IDENTIFY
กับการตอบกลับโดย SYNC
ก่อนหน้านี้ หากอุปกรณ์ที่ตรวจพบเป็น
ฮับหรือบริดจ์ แพลตฟอร์มจะส่ง Intent ของ REACHABLE_DEVICES
และถือว่าฮับเป็นอุปกรณ์พร็อกซีสําหรับการสื่อสารภายใน
เมื่อได้รับการตอบกลับเพื่อยืนยันอุปกรณ์ในเครือข่ายเดียวกัน แพลตฟอร์มจะสร้างเส้นทางการตอบสนองในเครื่องไปยังอุปกรณ์ Google Home หรือ Google Nest ของผู้ใช้ และหลังจากนั้นจะกําหนดเส้นทางของผู้ใช้สําหรับการตอบสนองในพื้นที่
เมื่อผู้ใช้เรียกใช้การดําเนินการสําหรับสมาร์ทโฮมที่มีเส้นทางการตอบสนองในเครื่อง Assistant จะส่ง Intent ของ EXECUTE
หรือ Intent ของ QUERY
ไปยังอุปกรณ์ Google Home หรือ Google Nest ไม่ใช่ Fulfillment ของระบบคลาวด์ จากนั้นอุปกรณ์จะเรียกใช้แอป Fulfillment ในท้องถิ่นเพื่อประมวลผล Intent

ไม่ได้กําหนดแพลตฟอร์มของ Home Home ในการเลือกอุปกรณ์ Google Home หรือ Google Nest ที่จะทริกเกอร์คําสั่ง Intent ของ EXECUTE
และ QUERY
อาจมาจากอุปกรณ์ Google Home หรือ Google Nest ที่กําหนดไว้ในโครงสร้างของ Home Graph เดียวกันกับอุปกรณ์เป้าหมาย
แอปติดตามในพื้นที่
แอปการตอบสนองในพื้นที่มีตรรกะทางธุรกิจสําหรับประมวลผล Intent ที่ส่งโดยแพลตฟอร์ม Home ในพื้นที่และเข้าถึงอุปกรณ์อัจฉริยะผ่านเครือข่าย LAN คาดว่าฮาร์ดแวร์ของคุณจะไม่มีการผสานรวมฮาร์ดแวร์ที่ดําเนินการในเครื่อง แอปจะดําเนินการตามคําขอการดําเนินการสําหรับสมาร์ทโฮมด้วยการส่งคําสั่งควบคุมไปยังอุปกรณ์อัจฉริยะผ่านโปรโตคอลเลเยอร์แอปพลิเคชัน ซึ่งรวมถึง 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 สําหรับสถานะรายงานยังไม่ได้รับการสนับสนุนสําหรับการดําเนินการในพื้นที่ Google จะอาศัยการดําเนินการตามที่ดําเนินการบนระบบคลาวด์ในการประมวลผลคําขอเหล่านี้
อายุการใช้งานของแอปพลิเคชัน
แอปติดตามในท้องถิ่นจะโหลดตามคําขอเมื่อแพลตฟอร์ม Local Home พบอุปกรณ์ใหม่ๆ ในเครื่องที่ตรงกับการกําหนดค่าการสแกนโปรเจ็กต์ หรือมีความตั้งใจที่จะนําส่งที่เกี่ยวข้องกับอุปกรณ์ที่ระบุก่อนหน้านี้
อุปกรณ์ Google Home หรือ Google Nest ถูกจํากัดโดยหน่วยความจํา และแอปสําหรับการดําเนินการตามคําสั่งซื้อในท้องถิ่นอาจถูกยุติได้ทุกเมื่อเนื่องจากหน่วยความจําไม่พอในระบบ ซึ่งอาจเกิดขึ้นในกรณีที่แอปเริ่มใช้หน่วยความจํามากเกินไป หรือหากระบบต้องใช้พื้นที่ให้แอปอีกแอปหนึ่ง แพลตฟอร์ม Local Home จะรีสตาร์ทแอปเมื่อมีเป้าหมายใหม่ๆ เพื่อให้บริการและมีทรัพยากรหน่วยความจําเพียงพอให้แอปทํางาน
แพลตฟอร์ม "อยู่บ้าน" จะโหลดแอปของคุณหลังจากหมดเวลาระยะหมดเวลาเมื่อผู้ใช้ยกเลิกการลิงก์บัญชี หรือไม่มีอุปกรณ์ที่รองรับการดําเนินการในท้องถิ่นที่เกี่ยวข้องกับ agentUserId
ของผู้ใช้อีกต่อไป
อุปกรณ์ที่รองรับ
แพลตฟอร์ม Local Home จะเรียกใช้แอปการจําหน่ายในท้องถิ่นบนอุปกรณ์ Google Home หรือ Google Nest ที่รองรับ ตารางต่อไปนี้จะอธิบายเกี่ยวกับอุปกรณ์ที่รองรับ และรันไทม์ที่ใช้ในแต่ละเครื่อง ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อกําหนดของรันไทม์ได้ที่สภาพแวดล้อมการดําเนินการ
อุปกรณ์ | Type | สภาพแวดล้อม |
---|---|---|
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 |
สภาพแวดล้อมการดำเนินการ
สภาพแวดล้อมการดําเนินการสําหรับแอปสําหรับการดําเนินการตามคําสั่งซื้อในท้องถิ่นจะขึ้นอยู่กับอุปกรณ์ แพลตฟอร์มในเครื่องต้องรองรับ สภาพแวดล้อมรันไทม์ต่อไปนี้
- 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 | กําหนดค่าการสแกน | กําหนดค่าคอนโซล Actions ด้วยพารามิเตอร์ที่จําเป็นเพื่อให้ Assistant ค้นพบอุปกรณ์ที่ควบคุมได้ในระบบ |
2 | อัปเดตการตอบสนอง SYNC ในการตอบสนองด้วยระบบคลาวด์ | ในการตอบสนองด้วยระบบคลาวด์ ให้แก้ไขเครื่องจัดการคําขอ SYNC เพื่อรองรับช่อง
otherDeviceIds ที่แพลตฟอร์มใช้ในการสร้างเส้นทางการดําเนินการในเครื่อง ในช่องดังกล่าว ให้ระบุรหัสของอุปกรณ์ที่ควบคุมในเครื่องได้
|
3 | ใช้แอปการดําเนินการตามท้องถิ่น | ใช้ Local Home SDK เพื่อสร้างแอป JavaScript เพื่อรองรับ Intent ของ IDENTIFY ,
EXECUTE และ
QUERY สําหรับอุปกรณ์พร็อกซี Hub หรือ Bridge คุณควรจัดการกับ Intent REACHABLE_DEVICES
|
4 | ทดสอบและแก้ไขข้อบกพร่องของแอป | ทดสอบการผสานรวม (หรือรับรองด้วยตนเอง) โดยใช้ชุดทดสอบ Google Home |
ข้อควรทราบก่อนที่จะเริ่มต้น
- ทําความคุ้นเคยกับพื้นฐานของการสร้างการดําเนินการสมาร์ทโฮม
- ในคอนโซลการดําเนินการ ให้ตรวจสอบว่าคุณมีโปรเจ็กต์สมาร์ทโฮมที่มีอยู่และกําหนดค่าการลิงก์บัญชีแล้ว
- ตรวจสอบว่าคุณลงชื่อเข้าสู่ระบบด้วยบัญชี Google เดียวกันในคอนโซล Actions และ Assistant ในอุปกรณ์ทดสอบ
- คุณต้องมีสภาพแวดล้อม Node.js ในการเขียนแอป สําหรับการติดตั้ง Node.js และ npm ขอแนะนําให้ใช้เครื่องมือจัดการเวอร์ชันโหนด
- หากต้องการทํางานร่วมกับ Local Home SDK เวอร์ชันล่าสุด คุณต้องลงทะเบียนอุปกรณ์ทดสอบของคุณในโปรแกรมทดลองใช้ Cast