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

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

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

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

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

แพลตฟอร์ม 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 หรือคําขอ HTTP
  • App: มีวิธีแนบเครื่องจัดการสําหรับ 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

ข้อควรทราบก่อนเริ่มต้น