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

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