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