ทดสอบและแก้ไขข้อบกพร่องของแอป

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

  1. ในสภาพแวดล้อมการโฮสต์ของคุณเอง ให้แสดงหน้า HTML ที่เรียกใช้แอป Local Fulfillment ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างไฟล์ HTML แบบคงที่ที่เรียกใช้แอป Local 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>
  2. ทดสอบการควบคุมอุปกรณ์

  3. แก้ไขข้อบกพร่องจาก Chrome ใช้เบรกพอยต์และบันทึกเพื่อแก้ปัญหาการผสานรวม

  4. แก้ไขและคอมไพล์โค้ด TypeScript แล้วทำตามขั้นตอนเหล่านี้ซ้ำ

การทำซ้ำกระบวนการสร้างและทดสอบนี้จะช่วยให้คุณเห็นการเปลี่ยนแปลงที่เกิดขึ้นได้อย่างรวดเร็วเพื่อช่วยแก้ไขข้อบกพร่องในโค้ด

ทดสอบการควบคุมอุปกรณ์

ใน Google Home Developer Console คุณต้องระบุ URL ของเว็บแอป ซึ่งแสดง HTML ที่โหลดในอุปกรณ์ Google Home หรืออุปกรณ์ Google Nest ระหว่างการดำเนินการในพื้นที่

หากต้องการทดสอบการควบคุมอุปกรณ์ด้วยการดำเนินการในพื้นที่ ให้ทำตามขั้นตอนต่อไปนี้

Chrome

  1. ในหน้าการตั้งค่าและการกำหนดค่าของการผสานรวมระบบคลาวด์กับคลาวด์ใน Google Home Developer Console ให้เลื่อนไปที่การดำเนินการในพื้นที่ แล้วเปิดการตั้งค่า
  2. ในส่วน URL สำหรับการทดสอบ > URL สำหรับการทดสอบของ Chrome ให้ระบุ URL ของเซิร์ฟเวอร์การพัฒนาที่แสดง HTML ซึ่งเรียกใช้แอป Fulfillment ภายในเครื่อง
  3. คลิกบันทึก Google อาจใช้เวลาสูงสุด 30 นาทีในการเผยแพร่การเปลี่ยนแปลงคอนโซล
  4. รีบูตอุปกรณ์ Google Home หรือ Google Nest ที่ใช้ทดสอบ
  5. ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ เช่น หากอุปกรณ์ใช้ลักษณะ OnOff คุณอาจพูดว่า "Ok Google เปิดไฟ"

Node.js

  1. ในหน้าการตั้งค่าและการกำหนดค่าของ Google Home Developer Console ให้เลื่อนไปที่การดำเนินการในพื้นที่ แล้วเปิดการตั้งค่า
  2. ในส่วน URL สำหรับการทดสอบ > URL สำหรับการทดสอบของ Node ให้ระบุ URL ของเซิร์ฟเวอร์การพัฒนาที่แสดง JavaScript ซึ่งเรียกใช้แอป Fulfillment ในเครื่อง
  3. คลิกบันทึก Google อาจใช้เวลาสูงสุด 30 นาทีในการเผยแพร่การเปลี่ยนแปลงคอนโซล
  4. รีบูตอุปกรณ์ Google Home หรือ Google Nest ที่ใช้ทดสอบ
  5. ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ เช่น หากอุปกรณ์ใช้ลักษณะ OnOff คุณอาจพูดว่า "Ok Google เปิดไฟ"

ดูรายละเอียดเพิ่มเติมเกี่ยวกับรันไทม์ที่อุปกรณ์ใช้ได้ที่อุปกรณ์ที่รองรับ

แก้ไขข้อบกพร่องจาก Chrome

คุณแก้ไขข้อบกพร่องของแอป Local Fulfillment ได้โดยใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ก่อนที่จะแก้ไขข้อบกพร่อง โปรดตรวจสอบว่าได้ตั้งค่าสภาพแวดล้อมอย่างถูกต้องแล้ว โดยทำดังนี้

  • คุณได้ตั้งค่า URL สำหรับการพัฒนาในคอนโซลเป็น URL ที่อุปกรณ์ Google Home หรืออุปกรณ์ Google Nest เข้าถึงได้ (ไม่ว่าจะในเครือข่ายเฉพาะที่หรือใช้อินเทอร์เน็ต)
  • เครื่องของคุณเชื่อมต่อกับเครือข่ายเฉพาะที่เดียวกันกับอุปกรณ์ Google Home หรืออุปกรณ์ Google Nest ที่คุณกำลังทดสอบ
  • เครือข่ายของคุณไม่ได้บล็อกแพ็กเก็ตระหว่างอุปกรณ์
  • คุณเข้าสู่ระบบด้วยบัญชี Google เดียวกันใน Google Home Developer Console และในอุปกรณ์ Google Home หรือ Google Nest
  • คุณได้อัปเดตการตอบสนองการซิงค์ใน Fulfillment ของระบบคลาวด์แล้ว ควรแสดงผลค่าที่ถูกต้องอย่างน้อย 1 ค่าในช่อง otherDeviceIds
  • คุณได้ป้อนข้อมูลการกำหนดค่าการสแกนที่ถูกต้องใน Google Home Developer Console

หากต้องการเชื่อมต่อแอป Fulfillment ในพื้นที่กับโปรแกรมแก้ไขข้อบกพร่องของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ให้ทำตามขั้นตอนต่อไปนี้

Chrome

  1. ติดตั้งและเปิดเบราว์เซอร์ Google Chrome ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ในเครื่อง
  2. ในช่องที่อยู่ของเบราว์เซอร์ Chrome ให้เปิดเครื่องมือตรวจสอบของ Chrome โดยป้อน chrome://inspect#devices คุณควรเห็นรายการอุปกรณ์ในหน้าเว็บ และไฟล์ HTML ควรแสดงอยู่ใต้ชื่ออุปกรณ์ Google Home หรือ Google Nest ที่ใช้ทดสอบ
  3. คลิกลิงก์ตรวจสอบสีน้ำเงินใต้ HTML เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เปลี่ยนไปที่แท็บคอนโซล แพลตฟอร์ม Local Home จะแสดงเวอร์ชันแอปและเวอร์ชัน Local Home SDK ในบันทึกคอนโซล หากเห็นบันทึก แสดงว่า Google โหลดแอปของคุณเรียบร้อยแล้วและเชื่อมต่อกับแอปได้ หากไม่ ให้รีบูตอุปกรณ์ Google Home หรือ Google Nest
  4. รูปที่ 1: แอป Fulfillment ในเครื่องใน chrome://inspect

Node.js

  1. ติดตั้งและเปิดเบราว์เซอร์ Google Chrome ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ในเครื่อง
  2. ระบุที่อยู่ IP ในเครื่องของอุปกรณ์ทดสอบ
  3. ในช่องที่อยู่ของเบราว์เซอร์ Chrome ให้เปิดเครื่องมือตรวจสอบของ Chrome โดยป้อน chrome://inspect#devices
  4. เลือกกำหนดค่า... เพื่อเปิดการตั้งค่าการค้นหาเป้าหมาย
  5. รูปที่ 2: การตั้งค่าการค้นหาเป้าหมายใน chrome://inspect
  6. ป้อน DEVICE_IP_ADDRESS:9222 ในรายการ แล้วคลิกเสร็จสิ้น
  7. คลิกลิงก์ตรวจสอบสีน้ำเงินใต้สคริปต์เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เปลี่ยนไปที่แท็บคอนโซล แพลตฟอร์ม Local Home จะแสดงเวอร์ชันแอปและเวอร์ชัน Local Home SDK ในบันทึกคอนโซล หากเห็นบันทึก แสดงว่า Google โหลดแอปของคุณสำเร็จและเชื่อมต่อกับแอปได้ หากไม่ ให้รีบูตอุปกรณ์ Google Home หรือ Google Nest

ดูรายละเอียดเพิ่มเติมเกี่ยวกับรันไทม์ที่อุปกรณ์ใช้ได้ที่อุปกรณ์ที่รองรับ

เคล็ดลับการแก้ไขข้อบกพร่อง

สิ่งที่ควรคำนึงถึงเพิ่มเติมระหว่างการแก้ไขข้อบกพร่องมีดังนี้

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

เตรียมพร้อมและเปิดตัวเป็นเวอร์ชันที่ใช้งานจริง

เมื่อพร้อมที่จะเปิดตัวการดำเนินการสำหรับสมาร์ทโฮมแล้ว ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดเทอร์มินัล เรียกใช้คำสั่ง npm run build ในไดเรกทอรีโปรเจ็กต์ คำสั่งนี้จะสร้างแพ็กเกจ JavaScript ต่อไปนี้สำหรับแอปของคุณในไดเรกทอรี dist
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. ในหน้าการตั้งค่าและการกำหนดค่าของ Google Home Developer Console ให้เลื่อนไปที่การดำเนินการในพื้นที่ แล้วเปิดการตั้งค่า
  3. ใช้ปุ่มอัปโหลด JavaScript เพื่ออัปโหลดไฟล์แพ็กเกจที่สร้างไว้ก่อนหน้านี้
    รูปที่ 3: อัปโหลดแอป JavaScript
    ตรวจสอบว่าได้อัปโหลดไฟล์ Bundle ทั้ง 2 เวอร์ชัน (Node, Web) เพื่อให้กำหนดค่าการดำเนินการให้ทำงานได้อย่างถูกต้องในสภาพแวดล้อมรันไทม์ทั้งหมดที่การดำเนินการตามคำสั่งซื้อในพื้นที่รองรับ
    1. อัปโหลด JavaScript ที่กำหนดเป้าหมายเป็น Node.js: อัปโหลดไฟล์ bundle.js จากไดเรกทอรี dist/node
    2. อัปโหลด JavaScript ที่กำหนดเป้าหมายเป็น Chrome (เบราว์เซอร์): อัปโหลดไฟล์ bundle.js จากไดเรกทอรี dist/web
  4. ทดสอบการดำเนินการในอุปกรณ์ที่พร้อมใช้งาน Assistant เพื่อยืนยันว่าทำงานตามที่คาดไว้ในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ ดูข้อมูลเพิ่มเติมได้ที่ทดสอบและแชร์ Action สำหรับสมาร์ทโฮม
  5. เมื่อพอใจกับวิธีการทำงานของ Action แล้ว ให้ส่ง Action ไปยัง Google เพื่อทำให้ใช้งานได้จริงโดยทำตามวิธีการในหัวข้อเปิดใช้งาน Action สำหรับสมาร์ทโฮม ซึ่งรวมถึงการทำตามขั้นตอนการทดสอบด้วยตนเองและคำขอการรับรองให้เสร็จสมบูรณ์