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

แก้ปัญหาข้อผิดพลาดในการผสานรวม

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

Google Cloud Platform (GCP) มีเครื่องมือที่ช่วยให้คุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ด้วย Google Cloud Monitoring และแก้ไขข้อบกพร่องของบันทึกข้อผิดพลาด Google Cloud Logging ได้ เมื่อใดก็ตามที่เกิดความล้มเหลวขึ้นเมื่อตอบสนองความตั้งใจของผู้ใช้ ไปป์ไลน์ Google Home Analytics จะบันทึกความล้มเหลวดังกล่าวไว้ในเมตริก และเผยแพร่บันทึกข้อผิดพลาดในบันทึกของโปรเจ็กต์

การแก้ปัญหาข้อผิดพลาดมี 2 ขั้นตอนดังนี้

  1. ตรวจสอบสถานะของโปรเจ็กต์ด้วยเมตริกสมาร์ทโฮม
  2. ตรวจสอบปัญหาโดยตรวจสอบคําอธิบายข้อผิดพลาดโดยละเอียดในบันทึกข้อผิดพลาด

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

ข้อผิดพลาดในการตรวจสอบ

คุณใช้ Google Cloud Monitoring dashboard เพื่อเข้าถึงเมตริกโปรเจ็กต์ได้ มีแผนภูมิสําคัญๆ ที่มีประโยชน์สําหรับการตรวจสอบคุณภาพและการแก้ไขข้อบกพร่อง

  • แผนภูมิอัตราความสําเร็จเป็นแผนภูมิแรกที่จะเริ่มเมื่อคุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงในแผนภูมินี้อาจระบุการหยุดทํางานของฐานผู้ใช้บางส่วนหรือทั้งหมด เราขอแนะนําให้ติดตามแผนภูมินี้อย่างใกล้ชิดเพื่อหาความผิดปกติหลังจากการเปลี่ยนแปลงแต่ละครั้งหรืออัปเดตโปรเจ็กต์
  • แผนภูมิรายละเอียดข้อผิดพลาดมีประโยชน์มากที่สุดเมื่อแก้ปัญหาเกี่ยวกับการผสานรวม สําหรับข้อผิดพลาดทั้งหมดที่ไฮไลต์ในแผนภูมิเปอร์เซ็นต์ความสําเร็จ รหัสข้อผิดพลาดจะแสดงในรายละเอียดข้อผิดพลาด คุณดูข้อผิดพลาดที่ Google Home platform แจ้งได้และวิธีแก้ปัญหาในตารางด้านล่าง

รหัสข้อผิดพลาดของแพลตฟอร์ม

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

รหัสข้อผิดพลาด คำอธิบาย
BACKEND_FAILURE_URL_ERROR Google ได้รับรหัสข้อผิดพลาด HTTP 4xx ที่ไม่ใช่ 401 จากบริการ

ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกของสมาร์ทโฮม
BACKEND_FAILURE_URL_UNREACHABLE Google ได้รับรหัสข้อผิดพลาด HTTP 5xx จากบริการ

ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกของสมาร์ทโฮม
GAL_BAD_3P_RESPONSE Google แยกวิเคราะห์การตอบกลับจากบริการลิงก์บัญชีไม่ได้เนื่องจากมีรูปแบบหรือค่าที่ไม่ถูกต้องในเพย์โหลด

ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกข้อผิดพลาดในบริการลิงก์บัญชี
GAL_INTERNAL เกิดข้อผิดพลาดภายใน Google เมื่อ Google พยายามเรียกโทเค็นเพื่อการเข้าถึง

หากอัตราข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม
GAL_INVALID_ARGUMENT เกิดข้อผิดพลาดภายใน Google เมื่อ Google พยายามเรียกโทเค็นเพื่อการเข้าถึง

หากอัตราข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม
GAL_NOT_FOUND โทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชของผู้ใช้ที่เก็บไว้ใน Google เป็นโมฆะและจะรีเฟรชไม่ได้แล้ว ผู้ใช้ต้องลิงก์บัญชีอีกครั้งเพื่อใช้บริการต่อไป

หากอัตราข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม
GAL_PERMISSION_DENIED เกิดข้อผิดพลาดภายใน Google เมื่อไม่ได้รับอนุญาตให้แชร์โทเค็น

หากอัตราข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม
GAL_REFRESH_IN_PROGRESS โทเค็นเพื่อการเข้าถึงของผู้ใช้หมดอายุและการพยายามรีเฟรชพร้อมกันอยู่ระหว่างดําเนินการ

กรณีนี้ไม่ใช่ปัญหาและไม่จําเป็นต้องดําเนินการใดๆ
INVALID_AUTH_TOKEN Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ

โทเค็นเพื่อการเข้าถึงจะไม่หมดอายุ แต่บริการทําให้เป็นโมฆะ ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกของสมาร์ทโฮม
INVALID_JSON แยกวิเคราะห์หรือทําความเข้าใจการตอบสนองของ JSON ไม่ได้

ตรวจสอบโครงสร้างของการตอบกลับ JSON เพื่อดูไวยากรณ์ที่ไม่ถูกต้อง เช่น วงเล็บไม่ตรงกัน คอมมาขาดหายไป อักขระไม่ถูกต้อง
OPEN_AUTH_FAILURE โทเค็นเพื่อการเข้าถึงของผู้ใช้หมดอายุและ Google รีเฟรชไม่ได้ หรือ Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ

หากอัตราที่มากขึ้นของรหัสนี้ ให้ตรวจสอบว่าคุณมีอัตราข้อผิดพลาดที่เกี่ยวข้องกับความตั้งใจของสมาร์ทโฮมเพิ่มขึ้นหรือรีเฟรชคําขอโทเค็นด้วย
PARTNER_RESPONSE_INVALID_ERROR_CODE การตอบกลับจะระบุรหัสข้อผิดพลาดที่ไม่รู้จัก

หากการตอบกลับคําขอบ่งบอกถึงข้อผิดพลาด ให้ใช้รหัสที่ได้จากรหัสข้อผิดพลาดที่รองรับ
PARTNER_RESPONSE_INVALID_PAYLOAD แยกวิเคราะห์ช่องการตอบกลับ payload เป็นออบเจ็กต์ JSON ไม่ได้

ตรวจสอบว่าช่องเพย์โหลดในการตอบกลับคําขอมีวงเล็บที่ตรงกันและมีโครงสร้างที่ถูกต้องเป็นช่อง JSON
PARTNER_RESPONSE_INVALID_STATUS การตอบกลับไม่ได้ระบุสถานะหรือบ่งชี้สถานะที่ไม่ถูกต้อง

การตอบกลับคําขอใช้ Intent ควรระบุสถานะเป็น SUCCESS, OFFLINE, ERROR, EXCEPTIONS ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดและข้อยกเว้น
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES ไม่มี Intent อย่างน้อย 1 รายการในคําขอในคําขอ

ตรวจสอบว่าการตอบสนองของการดําเนินการมีโครงสร้างที่ถูกต้องและผลลัพธ์ของ Intent ทั้งหมดจากคําขอมีอยู่ในการตอบกลับ
PARTNER_RESPONSE_MISSING_DEVICE ไม่มีอุปกรณ์ที่แสดงในคําขออย่างน้อย 1 เครื่องในการตอบสนอง

ยืนยันว่าการตอบกลับการดําเนินการได้รับการจัดโครงสร้างอย่างถูกต้อง และรหัสอุปกรณ์ทั้งหมดจากคําขอมีอยู่ในการตอบกลับ
PARTNER_RESPONSE_MISSING_PAYLOAD การตอบกลับไม่มีช่อง payload

อย่าลืมระบุช่องเพย์โหลดในการตอบกลับคําขอ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการตอบกลับการดําเนินการอย่างถูกต้อง
PARTNER_RESPONSE_NOT_OBJECT แยกวิเคราะห์การตอบกลับเป็นออบเจ็กต์ JSON ไม่ได้

โปรดตรวจสอบช่องทั้งหมดในการตอบสนองคําขอเพื่อดูอักขระที่ไม่ต้องการ วงเล็บไม่ตรงกัน หรือข้อผิดพลาดในการจัดรูปแบบ ระบบอาจไม่รองรับอักขระ Unicode บางตัว และตรวจดูว่าการตอบกลับของคุณจัดโครงสร้างเป็นออบเจ็กต์ JSON อย่างถูกต้อง
RESPONSE_TIMEOUT คําขอหมดเวลาขณะรอการตอบกลับ

ช่วงเวลาในการส่งคําขอคือ 9 วินาทีนับจากวันที่ส่งคําขอ โปรดส่งคําตอบภายในระยะเวลานี้
RESPONSE_UNAVAILABLE ไม่ได้รับการตอบสนอง หรือการตอบกลับไม่ได้ระบุสถานะ

การตอบสนองคําขอดําเนินการตามความตั้งใจควรจัดโครงสร้างตามเอกสารสมาร์ทโฮมและระบุสถานะ

ข้อมูลบันทึกการค้นหา

เมื่อคุณคุ้นเคยกับการตรวจสอบการผสานรวมโดยใช้เมตริกแล้ว ขั้นตอนต่อไปคือการแก้ปัญหาข้อผิดพลาดบางอย่างโดยใช้ Cloud Logging บันทึกข้อผิดพลาดคือรายการที่คล้ายกับ JSON ซึ่งมีช่องที่มีข้อมูลที่เป็นประโยชน์ เช่น เวลา รหัสข้อผิดพลาด และรายละเอียดเกี่ยวกับ Intent ของบ้านอัจฉริยะ

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

การค้นหาบันทึกในระบบคลาวด์

คุณสามารถใช้ปุ่มค้นหาเพื่อช่วยในการสร้างตัวกรองที่กําหนดเอง

สร้างการค้นหาบันทึกของ Cloud

หากต้องการระบุช่วงเวลา ให้คลิกปุ่มเลือกช่วงเวลา แล้วเลือกตัวเลือกที่มีให้ การดําเนินการนี้จะกรองบันทึกและแสดงบันทึกที่มีต้นกําเนิดในช่วงเวลาที่เลือก

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

ใช้ปุ่มความรุนแรงเพื่อกรองตามระดับกรณีฉุกเฉิน ข้อมูล การแก้ไขข้อบกพร่อง และบันทึกระดับความรุนแรงอื่นๆ

คุณยังใช้ช่องการค้นหาใน Logs Explorer เพื่อป้อนรายการที่กําหนดเองได้ด้วย เครื่องมือค้นหาที่ช่องนี้ใช้รองรับทั้งคําค้นหาพื้นฐาน เช่น การจับคู่สตริง และคําค้นหาขั้นสูงเพิ่มเติม เช่น การเปรียบเทียบ (<, >=, !=) และผู้ให้บริการบูลีน (AND, OR, NOT)

ตัวอย่างเช่น รายการที่กําหนดเองด้านล่างจะแสดงผลข้อผิดพลาดที่มาจากอุปกรณ์ LIGHT ประเภท

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

ไปที่ไลบรารีการค้นหาเพื่อดูตัวอย่างเพิ่มเติมสําหรับการค้นหาบันทึกอย่างมีประสิทธิภาพ

การแก้ไขการทดสอบ

เมื่อพบข้อผิดพลาดและใช้การอัปเดตเพื่อแก้ไข เราขอแนะนําให้ทดสอบการแก้ไขโดยละเอียดด้วย Google Home Test Suite คู่มือผู้ใช้มีวิธีการใช้ Test Suite ซึ่งจะแนะนําการทดสอบการเปลี่ยนแปลงของคุณอย่างมีประสิทธิภาพ

แหล่งข้อมูลการเรียนรู้

เอกสารนี้อธิบายขั้นตอนการแก้ปัญหาเกี่ยวกับการดําเนินการในบ้านอัจฉริยะ นอกจากนี้ คุณยังตรวจสอบ Codelab เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องได้ดังนี้