ยินดีต้อนรับสู่ Google Home Developer Center แหล่งใหม่เรียนรู้วิธีพัฒนาการดําเนินการในบ้านอัจฉริยะ หมายเหตุ: คุณจะสร้างการดําเนินการต่างๆ ต่อไปในคอนโซลการดําเนินการ

การจําหน่ายในร้าน

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

Local Home SDK ปรับปรุงการผสานรวมสมาร์ทโฮมกับ Google Assistant โดยเพิ่มเส้นทางการตอบสนองในเครื่องเพื่อกําหนดความตั้งใจในบ้านอัจฉริยะ

SDK ให้คุณเขียนแอปเพื่อการดําเนินการตามคําสั่งซื้อในพื้นที่ได้โดยใช้ TypeScript หรือ JavaScript ที่มีตรรกะทางธุรกิจของบ้านอัจฉริยะ อุปกรณ์ Google Home หรือ Google Nest สามารถโหลดและเรียกใช้แอปในอุปกรณ์ได้ แอปของคุณจะสื่อสารกับอุปกรณ์อัจฉริยะที่มีอยู่โดยตรงผ่าน Wi-Fi ในเครือข่าย LAN (LAN) เพื่อดําเนินการตามคําสั่งของผู้ใช้ เหนือกว่าโปรโตคอลที่มีอยู่

การผสานรวม SDK จะช่วยปรับปรุงประสิทธิภาพให้แก่สมาร์ทโฮมของคุณ รวมถึงเวลาในการตอบสนองที่ลดลงและความน่าเชื่อถือที่สูงขึ้นด้วย การดําเนินการตามพื้นที่ใช้ได้กับอุปกรณ์ทุกประเภทและลักษณะเฉพาะของอุปกรณ์ ยกเว้นอุปกรณ์ที่ใช้การยืนยันผู้ใช้สํารอง

เริ่มสร้างสิ่งปลูกสร้าง ลองตัวอย่าง

ทําความเข้าใจวิธีการทํางาน

หลังจากได้รับการตอบสนองจาก SYNC จากการดําเนินการในระบบคลาวด์แล้ว แพลตฟอร์ม Google Home จะสแกนเครือข่าย LAN ในอุปกรณ์โดยใช้ mDNS, UDP หรือ UPnP เพื่อค้นหาอุปกรณ์อัจฉริยะที่เชื่อมต่อกับ Assistant

แพลตฟอร์มจะส่ง Intent ของ IDENTIFY เพื่อตรวจสอบว่าอุปกรณ์ควบคุมได้ในอุปกรณ์หรือไม่ โดยเปรียบเทียบรหัสอุปกรณ์ในการตอบกลับของ IDENTIFY กับการตอบกลับของ SYNC ก่อนหน้านี้ หากอุปกรณ์ที่ตรวจพบเป็นฮับหรือบริดจ์ แพลตฟอร์มจะส่ง Intent ของ REACHABLE_DEVICES จะถือว่าฮับเป็นอุปกรณ์พร็อกซีสําหรับการสื่อสารภายในเครื่อง

เมื่อได้รับการตอบกลับที่ยืนยันอุปกรณ์ในเครือข่ายเดียวกัน แพลตฟอร์มจะสร้างเส้นทางการตอบสนองในเครื่องไปยัง Google Home หรืออุปกรณ์ Google Nest ของผู้ใช้ และกําหนดเส้นทางคําสั่งของผู้ใช้สําหรับการดําเนินการตามคําสั่งซื้อในพื้นที่

เมื่อผู้ใช้ทริกเกอร์การดําเนินการสําหรับสมาร์ทโฮมที่มีเส้นทางการตอบสนองในเครื่อง Assistant จะส่งความตั้งใจ EXECUTE หรือความตั้งใจของ QUERY ไปยังอุปกรณ์ Google Home หรือ Google Nest ไม่ใช่การจําหน่ายระบบคลาวด์ จากนั้นอุปกรณ์จะเรียกใช้แอปการดําเนินการตามคําสั่งซื้อในพื้นที่เพื่อประมวลผลความตั้งใจ

รูปนี้แสดงโฟลว์การดําเนินการสําหรับการดําเนินการตามคําสั่งซื้อในพื้นที่ เส้นทางการดําเนินการจะบันทึกความตั้งใจของผู้ใช้จากโทรศัพท์ด้วย Google Assistant จากนั้น Google Cloud จะประมวลผลความตั้งใจของผู้ใช้จากนั้น Google Home จะสั่งงานจากภายในอุปกรณ์ Google Home โดยตรงและคําสั่งจะออกไปยังฮับอุปกรณ์โดยตรงหรือไปยังอุปกรณ์โดยตรง ระบบคลาวด์ของนักพัฒนาซอฟต์แวร์พร้อมใช้งานเป็นระบบคลาวด์สํารอง
รูปที่ 1: การเพิ่มเส้นทางการตอบสนองในเครื่องสําหรับการดําเนินการในบ้านอัจฉริยะ

แพลตฟอร์ม Google Home ไม่ตัดสินว่าจะใช้อุปกรณ์ Google Home หรือ Google Nest ใดเพื่อเรียกใช้คําสั่ง Intent ของ EXECUTE และ QUERY อาจมาจากอุปกรณ์ Google Home หรือ Google Nest ที่กําหนดไว้ในโครงสร้างกราฟบ้านเดียวกันกับอุปกรณ์เป้าหมาย

แอปสําหรับการดําเนินการตามคําสั่งซื้อในร้าน

แอปสําหรับการดําเนินการตามคําสั่งซื้อในพื้นที่มีตรรกะทางธุรกิจเพื่อประมวลผลความตั้งใจที่ส่งมาจากแพลตฟอร์ม Home Home และเข้าถึงอุปกรณ์อัจฉริยะผ่านเครือข่าย LAN คาดว่าฮาร์ดแวร์ของคุณจะไม่รองรับการดําเนินการตามคําสั่งซื้อในเครื่อง แอปจะดําเนินการตามคําขอสมาร์ทโฮมด้วยการส่งคําสั่งควบคุมไปยังอุปกรณ์อัจฉริยะผ่านโปรโตคอลเลเยอร์แอปพลิเคชัน ซึ่งรวมถึง HTTP, TCP หรือ UDP ในกรณีที่เส้นทางการตอบสนองในเครื่องไม่สําเร็จ ระบบจะใช้การดําเนินการตามระบบคลาวด์เป็นเส้นทางการดําเนินการสํารอง

Local Home SDK รองรับ 2 คลาสหลักต่อไปนี้ซึ่งจะช่วยสร้างแอป

  • DeviceManager: มีวิธีสื่อสารกับอุปกรณ์อัจฉริยะโดยใช้ TCP, ซ็อกเก็ต UDP หรือคําขอ HTTP
  • App: มีวิธีแนบเครื่องจัดการสําหรับ Intent ที่ Google ส่งหลังจากพบอุปกรณ์ที่ควบคุมได้ในเครื่อง (IDENTIFY, REACHABLE_DEVICES) ชั้นเรียนนี้ยังดําเนินการตามคําสั่งของผู้ใช้ (EXECUTE) และตอบคําถามผู้ใช้เกี่ยวกับสถานะอุปกรณ์ปัจจุบัน (QUERY)

ระหว่างการพัฒนา คุณสามารถสร้างและทดสอบแอปได้โดยโหลดแอปบนเซิร์ฟเวอร์ ที่โฮสต์หรือเครื่องพัฒนาซอฟต์แวร์ภายในของคุณเอง ในเวอร์ชันที่ใช้งานจริง Google จะโฮสต์แอปของคุณในสภาพแวดล้อมแซนด์บ็อกซ์ JavaScript ที่ปลอดภัยในอุปกรณ์ Google Home หรือ Google Nest ของผู้ใช้

ขณะนี้ยังไม่รองรับ State State API สําหรับการดําเนินการตามคําสั่งซื้อในพื้นที่ Google ต้องอาศัยการดําเนินการตามระบบคลาวด์ของคุณเพื่อประมวลผลคําขอเหล่านี้

วงจรแอปพลิเคชัน

แอปสําหรับการดําเนินการตามคําสั่งซื้อในเครื่องจะโหลดแบบตามคําขอเมื่อแพลตฟอร์ม Local Home พบอุปกรณ์ใหม่ๆ ในเครื่องที่ตรงกับการกําหนดค่าการสแกนโปรเจ็กต์ หรือมีความตั้งใจที่จะนําส่งที่เกี่ยวข้องกับอุปกรณ์ที่ระบุก่อนหน้านี้

อุปกรณ์ Google Home หรือ Google Nest ถูกจํากัดหน่วยความจํา และแอปดําเนินการตามคําสั่งซื้อในเครื่องอาจถูกยกเลิกได้ทุกเมื่อเนื่องจากหน่วยความจําในระบบ ปัญหานี้อาจเกิดขึ้นหากแอปเริ่มใช้หน่วยความจํามากเกินไป หรือหากระบบต้องเพิ่มพื้นที่ให้กับแอปอื่น แพลตฟอร์ม 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

สภาพแวดล้อมการดำเนินการ

สภาพแวดล้อมการเรียกใช้สําหรับแอปการจําหน่ายในพื้นที่จะขึ้นอยู่กับอุปกรณ์ของคุณ แพลตฟอร์ม Home Home รองรับสภาพแวดล้อมรันไทม์ต่อไปนี้

  • Chrome: แอปการดําเนินการในเครื่องจะทํางานในบริบทของเบราว์เซอร์ Chrome window ที่ใช้ Chrome M80 ขึ้นไป และรองรับ ECMAScript เวอร์ชัน ES2018
  • Node.js: แอปการดําเนินการในเครื่องจะทํางานเป็นสคริปต์ภายในกระบวนการของ Node.js ที่ใช้ Node v10.x LTS ขึ้นไปพร้อมการรองรับ ECMAScript เวอร์ชัน ES2018

โครงสร้างซอร์สโค้ด

เราขอแนะนําให้รวมทรัพยากร Dependency ไว้ในไฟล์ JavaScript ไฟล์เดียวโดยใช้การกําหนดค่า Bundler ซึ่งจัดเตรียมโดย Home Home SDK และรวมซอร์สโค้ดไว้ใน JavaScript Function Expression (IIFE)

เส้นทางการใช้งาน

หากต้องการใช้ SDK ของ Home Home สําหรับการผสานรวมสมาร์ทโฮม คุณจะต้องดําเนินการต่อไปนี้

1 ตั้งค่าการกําหนดค่าการสแกน กําหนดค่าคอนโซล Actions ด้วยพารามิเตอร์ที่จําเป็นสําหรับ Assistant เพื่อให้ค้นพบอุปกรณ์ที่ควบคุมได้ในเครื่อง
2 อัปเดตการตอบกลับด้วย SYNC สําหรับการดําเนินการตามข้อกําหนดของระบบคลาวด์ ในการดําเนินการตามคําสั่งซื้อระบบคลาวด์ ให้แก้ไขเครื่องจัดการคําขอ SYNC เพื่อรองรับช่อง otherDeviceIds ที่แพลตฟอร์มใช้ในการสร้างเส้นทางการดําเนินการตามคําสั่งซื้อ ในช่องดังกล่าว ให้ระบุรหัสของอุปกรณ์ที่ควบคุมได้ในเครื่อง
3 ใช้งานแอปการดําเนินการตามคําสั่งซื้อในพื้นที่ ใช้ SDK ของ Home Home เพื่อสร้างแอป JavaScript เพื่อจัดการ Intent ของ IDENTIFY, EXECUTE และ QUERY สําหรับอุปกรณ์ฮับหรือพร็อกซีบริดจ์ คุณควรจัดการ Intent ของ REACHABLE_DEVICES ด้วย
4 ทดสอบและแก้ไขข้อบกพร่องของแอป ทดสอบการผสานรวม (หรือรับรองตนเอง) โดยใช้ชุดทดสอบ Google Home

ก่อนเริ่มต้น