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

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

  1. ในสภาพแวดล้อมการโฮสต์ของคุณเอง ให้แสดงหน้า HTML ที่เรียกใช้ แอปการปฏิบัติตามคำสั่งในร้าน ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างไฟล์ HTML แบบคงที่ ที่เรียกใช้แอปการปฏิบัติตามคำสั่งในร้าน

    <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 ซึ่งเรียกใช้แอปการเติมเต็มในเครื่อง
  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 ซึ่งเรียกใช้แอปการจัดการคำสั่งซื้อในพื้นที่
  3. คลิกบันทึก Google อาจใช้เวลาถึง 30 นาทีในการ เผยแพร่การเปลี่ยนแปลงในคอนโซล
  4. รีบูตอุปกรณ์ Google Home หรือ Google Nest ที่ใช้ทดสอบ
  5. ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ เช่น หากอุปกรณ์ ใช้ลักษณะ OnOff คุณก็พูดว่า "Ok Google เปิดไฟ" ได้

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

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

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

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

หากต้องการเชื่อมต่อแอปการจัดการคำสั่งซื้อในร้านกับดีบักเกอร์ Chrome DevTools ให้ทำตามขั้นตอนต่อไปนี้

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: แอปการปฏิบัติตามข้อกำหนดในเครื่องใน 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 เพื่อโหลดคอนเทนเนอร์แอปการจัดการคำสั่งซื้อในพื้นที่อีกครั้ง ด้วยโค้ดล่าสุดจาก URL การพัฒนา การดำเนินการนี้จะไม่รีเซ็ตแพลตฟอร์ม บ้านในพื้นที่ ซึ่งอาจจำเป็นต้องรีทริกเกอร์ Intent ของแพลตฟอร์ม (เช่น IDENTIFY) ในแอปการดำเนินการในพื้นที่ หากต้องการรีเซ็ตแพลตฟอร์มบ้านในพื้นที่ ให้ รีบูตอุปกรณ์ Google Home หรือ Google Nest
  • ตรวจสอบว่าแอป JavaScript โหลดได้โดยไม่มีข้อผิดพลาด โดยให้ตรวจสอบส่วนคอนโซลของหน้าเครื่องมือสำหรับนักพัฒนาเว็บ หากมีปัญหา คุณจะเห็นข้อความเช่น "Uncaught TypeError: Cannot read property 'open' of null."
  • verificationId จากการตอบกลับ IDENTIFY ต้องตรงกับ otherDeviceIds รายการใดรายการหนึ่งจากการตอบกลับ SYNC
  • สำหรับEXECUTEแฮนเดิล ให้ตรวจสอบว่าอุปกรณ์รับคำสั่ง HTTP, TCP หรือ UDP ได้และทำงานตามที่คาดไว้
  • อย่าลืมส่งคืน Promise จากตัวแฮนเดิล
  • หลีกเลี่ยงการรักษาสถานะส่วนกลางในหน่วยความจำ ดูวงจรแอปพลิเคชัน
  • ข้อผิดพลาดที่แอปการจัดการคำสั่งซื้อในร้านแสดงจะปรากฏในบันทึกข้อผิดพลาดของโปรเจ็กต์

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

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

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