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

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

  1. ในสภาพแวดล้อมโฮสติ้งของคุณเอง ให้แสดงหน้า 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>
    
    
  2. ทดสอบระบบควบคุมอุปกรณ์

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

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

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

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

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

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

Chrome

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

Node.js

  1. เปิดโปรเจ็กต์สมาร์ทโฮมในคอนโซลการดำเนินการ
  2. คลิกการดำเนินการที่การนำทางด้านซ้าย
  3. ในส่วนกำหนดค่า SDK หน้าแรกในเครื่อง (ไม่บังคับ) > ป้อน URL การทดสอบสำหรับโหนด ให้ระบุ URL เซิร์ฟเวอร์การพัฒนาที่แสดง JavaScript ที่เรียกใช้แอป Fulfillment ในเครื่อง
  4. คลิกบันทึก Google อาจใช้เวลาถึง 30 นาทีในการเผยแพร่การเปลี่ยนแปลงในคอนโซลของคุณ
  5. รีบูตอุปกรณ์ Google Home หรือ Google Nest ทดสอบ
  6. ออกคำสั่งไปยังอุปกรณ์อัจฉริยะ ตัวอย่างเช่น หากอุปกรณ์ใช้รูปแบบ 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

  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 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 ภายในเครื่องแสดงจะปรากฏในบันทึกข้อผิดพลาดของโปรเจ็กต์

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

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

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