เราขอแนะนำให้คุณสร้างแอป Fulfillment ในพื้นที่ตามขั้นตอนที่อธิบายก่อนหน้านี้ จากนั้นทดสอบการผสานรวมสมาร์ทโฮมในสภาพแวดล้อมโฮสติ้งของคุณเองโดยทำตามขั้นตอนต่อไปนี้
ในสภาพแวดล้อมโฮสติ้งของคุณเอง ให้แสดงหน้า HTML ที่เรียกใช้แอป Fulfillment ในพื้นที่ ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างไฟล์ HTML แบบคงที่ที่เรียกใช้แอป Fulfillment ภายใน
<html> <head> <!-- Local Home SDK --> <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script> <!-- Local app under development --> <script src="local_execution.js"></script> </head> </html>
แก้ไขข้อบกพร่องจาก Chrome ใช้เบรกพอยท์และบันทึกเพื่อ แก้ปัญหาการผสานรวม
แก้ไขและคอมไพล์โค้ด TypeScript ของคุณ จากนั้นทำซ้ำขั้นตอนเหล่านี้
เมื่อทำซ้ำขั้นตอนการสร้างและทดสอบนี้ คุณจะเห็นการเปลี่ยนแปลงทำงานจริงได้อย่างรวดเร็วและง่ายขึ้นในการตรวจพบและแก้ปัญหาเกี่ยวกับโค้ดของคุณ
ทดสอบระบบควบคุมอุปกรณ์
ในคอนโซลการดำเนินการ คุณต้องระบุ URL ของเว็บแอปซึ่งจะแสดง HTML ที่โหลดในอุปกรณ์ Google Home หรือ Google Nest ระหว่าง Fulfillment ภายในเครื่อง
หากต้องการทดสอบการควบคุมอุปกรณ์ด้วย Fulfillment ภายในเครื่อง ให้ทำตามขั้นตอนต่อไปนี้
Chrome
- เปิดโปรเจ็กต์สมาร์ทโฮมในคอนโซลการดำเนินการ
- คลิกการดำเนินการที่การนำทางด้านซ้าย
- ในส่วนกำหนดค่า SDK หน้าแรกในเครื่อง (ไม่บังคับ) > ป้อน URL การทดสอบสำหรับ Chrome ให้ระบุ URL ของเซิร์ฟเวอร์การพัฒนาที่แสดง HTML ที่เรียกใช้แอป Fulfillment ในเครื่อง
- คลิกบันทึก Google อาจใช้เวลาถึง 30 นาทีในการเผยแพร่การเปลี่ยนแปลงในคอนโซลของคุณ
- รีบูตอุปกรณ์ Google Home หรือ Google Nest ทดสอบ
- ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ ตัวอย่างเช่น หากอุปกรณ์ใช้รูปแบบ OnOff คุณอาจพูดว่า "Ok Google เปิดไฟ"
Node.js
- เปิดโปรเจ็กต์สมาร์ทโฮมในคอนโซลการดำเนินการ
- คลิกการดำเนินการที่การนำทางด้านซ้าย
- ในส่วนกำหนดค่า SDK หน้าแรกในเครื่อง (ไม่บังคับ) > ป้อน URL การทดสอบสำหรับโหนด ให้ระบุ URL เซิร์ฟเวอร์การพัฒนาที่แสดง JavaScript ที่เรียกใช้แอป Fulfillment ในเครื่อง
- คลิกบันทึก Google อาจใช้เวลาถึง 30 นาทีในการเผยแพร่การเปลี่ยนแปลงในคอนโซลของคุณ
- รีบูตอุปกรณ์ Google Home หรือ Google Nest ทดสอบ
- ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ ตัวอย่างเช่น หากอุปกรณ์ใช้รูปแบบ OnOff คุณอาจพูดว่า "Ok Google เปิดไฟ"
โปรดดูรายละเอียดเพิ่มเติมว่าอุปกรณ์ใช้รันไทม์ใดที่หัวข้ออุปกรณ์ที่รองรับ
การแก้ไขข้อบกพร่องจาก Chrome
คุณแก้ไขข้อบกพร่องของแอป Fulfillment ในเครื่องได้โดยใช้ Chrome DevTools ก่อนที่จะแก้ไขข้อบกพร่องได้ ให้ตรวจสอบว่าได้ตั้งค่าสภาพแวดล้อมอย่างถูกต้องแล้ว ดังนี้
- คุณตั้งค่า URL การพัฒนาในคอนโซลเป็น URL ที่อุปกรณ์ Google Home หรือ Google Nest เข้าถึงได้ (ในเครือข่ายเฉพาะที่หรือผ่านอินเทอร์เน็ต)
- เครื่องของคุณเชื่อมต่อกับ LAN เดียวกันกับอุปกรณ์ Google Home หรือ Google Nest ที่คุณทดสอบ
- เครือข่ายของคุณจะไม่บล็อกแพ็กเก็ตระหว่างอุปกรณ์
- คุณลงชื่อเข้าใช้ด้วยบัญชี Google เดียวกันในคอนโซล Actions และในอุปกรณ์ Google Home หรือ Google Nest
- คุณได้อัปเดตการตอบสนอง SYNC ใน Fulfillment ระบบคลาวด์แล้ว
ซึ่งควรแสดงผลค่าที่ถูกต้องอย่างน้อย 1 ค่าในช่อง
otherDeviceIds
- คุณป้อนข้อมูลการกำหนดค่าการสแกนที่ถูกต้องในคอนโซลการดำเนินการ
หากต้องการเชื่อมต่อแอป Fulfillment ในเครื่องกับโปรแกรมแก้ไขข้อบกพร่องของ Chrome DevTools ให้ทำตามขั้นตอนต่อไปนี้
Chrome
- ติดตั้งและเปิดใช้เบราว์เซอร์ Google Chrome ในเครื่องการพัฒนาในพื้นที่
- ในช่องที่อยู่ของเบราว์เซอร์ Chrome ให้เปิดเครื่องมือตรวจสอบ Chrome โดยป้อน
chrome://inspect#devices
คุณจะเห็นรายการอุปกรณ์ในหน้าดังกล่าว และไฟล์ HTML ควรแสดงใต้ชื่ออุปกรณ์ Google Home หรือ Google Nest สำหรับทดสอบ - คลิกลิงก์ตรวจสอบสีน้ำเงินใต้ HTML เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เปลี่ยนไปที่แท็บคอนโซล แพลตฟอร์ม Local Home จะแสดงเวอร์ชันแอปและเวอร์ชัน Local Home SDK ในบันทึกของคอนโซล หากเห็นบันทึก แสดงว่า Google โหลดแอปสำเร็จและเชื่อมต่อกับแอปได้ หากไม่มี ให้รีบูตอุปกรณ์ Google Home หรือ Google Nest
Node.js
- ติดตั้งและเปิดใช้เบราว์เซอร์ Google Chrome ในเครื่องการพัฒนาในพื้นที่
- ระบุที่อยู่ IP ของเครื่องของอุปกรณ์ทดสอบ
- ในช่องที่อยู่ของเบราว์เซอร์ Chrome ให้เปิดเครื่องมือตรวจสอบ Chrome โดยป้อน
chrome://inspect#devices
- เลือกกำหนดค่า... เพื่อเปิดการตั้งค่าการค้นพบเป้าหมาย
- ป้อน
DEVICE_IP_ADDRESS:9222
ในรายการ แล้วคลิกเสร็จสิ้น - คลิกลิงก์ตรวจสอบสีน้ำเงินใต้สคริปต์เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เปลี่ยนไปที่แท็บคอนโซล แพลตฟอร์ม Local Home จะแสดงเวอร์ชันแอปและเวอร์ชัน Local Home SDK ในบันทึกของคอนโซล หากเห็นบันทึก แสดงว่า Google โหลดแอปสำเร็จและเชื่อมต่อกับแอปได้ หากไม่มี ให้รีบูตอุปกรณ์ Google Home หรือ Google Nest
โปรดดูรายละเอียดเพิ่มเติมว่าอุปกรณ์ใช้รันไทม์ใดที่หัวข้ออุปกรณ์ที่รองรับ
เคล็ดลับในการแก้ไขข้อบกพร่อง
ข้อมูลเพิ่มเติมที่ควรทราบระหว่างการแก้ไขข้อบกพร่องมีดังนี้
- อย่าลิงก์อุปกรณ์ Google Home หรือ Google Nest หลายเครื่องกับบัญชีทดสอบในเครือข่ายภายในเดียวกัน คุณไม่สามารถควบคุมอุปกรณ์ Google Home หรือ Google Nest ที่จะกำหนดเป้าหมายด้วยคำสั่งการตอบสนองในเครื่อง
- รีเฟรชหน้าใน Chrome DevTools เพื่อโหลดคอนเทนเนอร์ของแอป Fulfillment ในเครื่องซ้ำด้วยโค้ดล่าสุดจาก URL การพัฒนาของคุณ การดำเนินการนี้ไม่ได้รีเซ็ตแพลตฟอร์ม Local Home ซึ่งอาจจำเป็นต้องทริกเกอร์ Intent ของแพลตฟอร์มอีกครั้ง (เช่น
IDENTIFY
) ในแอป Fulfillment ในเครื่อง หากต้องการรีเซ็ตแพลตฟอร์ม Local Home ให้รีบูตอุปกรณ์ Google Home หรือ Google Nest - ตรวจสอบว่าแอป JavaScript โหลดโดยไม่มีข้อผิดพลาด โดยตรวจสอบที่ส่วนคอนโซลในหน้าเครื่องมือสำหรับนักพัฒนาเว็บ หากมีปัญหา คุณจะเห็น
ข้อความลักษณะนี้:
Uncaught TypeError: Cannot read property ‘open’ of null.
verificationId
จากการตอบกลับIDENTIFY
ต้องตรงกับotherDeviceIds
รายการใดรายการหนึ่งจากการตอบกลับSYNC
- สำหรับตัวแฮนเดิล
EXECUTE
โปรดตรวจสอบว่าอุปกรณ์รับคำสั่ง HTTP, TCP หรือ UDP ได้และทำงานได้ตามที่คาดไว้ - อย่าลืมคืนค่า
Promise
จากเครื่องจัดการ - หลีกเลี่ยงการคงสถานะส่วนกลางในหน่วยความจำ โปรดดูวงจรแอปพลิเคชัน
- ข้อผิดพลาดที่แอป Fulfillment ภายในเครื่องแสดงจะปรากฏในบันทึกข้อผิดพลาดของโปรเจ็กต์
เตรียมพร้อมและเปิดตัวเป็นเวอร์ชันที่ใช้งานจริง
เมื่อพร้อมที่จะเปิดการดำเนินการสำหรับสมาร์ทโฮม ให้ทำตามขั้นตอนต่อไปนี้
- เปิดเทอร์มินัล ในไดเรกทอรีของโปรเจ็กต์ ให้เรียกใช้คำสั่ง
npm run build
คำสั่งนี้จะสร้างกลุ่ม JavaScript ต่อไปนี้สำหรับแอปภายใต้ไดเรกทอรีdist
project-directory/ └── dist ├── web │ └── bundle.js └── node └── bundle.js
- ในคอนโซล ให้อัปโหลดแอป JavaScript โดยคลิกพัฒนา > การดำเนินการ ในส่วนกำหนดค่า Local Home SDK ให้คลิกอัปโหลดไฟล์ JavaScript
- ในกล่องโต้ตอบอัปโหลดไฟล์ ให้อัปโหลดไฟล์กลุ่มที่คุณสร้างไว้ก่อนหน้านี้ ตรวจสอบว่าได้อัปโหลดไฟล์แพ็กเกจทั้ง 2 เวอร์ชัน (โหนด เว็บ) เพื่อให้กำหนดค่าการดำเนินการให้ทำงานได้อย่างถูกต้องในสภาพแวดล้อมรันไทม์ทั้งหมดที่ Fulfillment ภายในเครื่องรองรับ
- อัปโหลด JavaScript ที่กำหนดเป้าหมายไปยัง Node.js: อัปโหลดไฟล์
bundle.js
จากไดเรกทอรีdist/node
- อัปโหลด JavaScript ที่กำหนดเป้าหมายไปยัง Chrome (เบราว์เซอร์): อัปโหลดไฟล์
bundle.js
จากไดเรกทอรีdist/web
- อัปโหลด JavaScript ที่กำหนดเป้าหมายไปยัง Node.js: อัปโหลดไฟล์
- ทดสอบการดำเนินการในอุปกรณ์ที่พร้อมใช้งาน Assistant เพื่อยืนยันว่าการดำเนินการทำงานได้ตามที่คาดหวังในสภาพแวดล้อมการใช้งานจริง ดูข้อมูลเพิ่มเติมได้ที่ทดสอบและแชร์การดำเนินการในสมาร์ทโฮม
- เมื่อคุณพอใจกับวิธีการทำงานของการดำเนินการแล้ว ให้ส่งการดำเนินการนั้นไปยัง Google เพื่อทำให้ใช้งานได้จริงโดยทำตามวิธีการในเปิดใช้การดำเนินการสมาร์ทโฮม ซึ่งรวมถึงการทำตามขั้นตอนการทดสอบด้วยตนเองและการขอรับการรับรอง