คำถามที่พบบ่อยเกี่ยวกับสมาร์ทโฮม

ทั่วไป

คำถาม: เราควรนำโครงสร้างพื้นฐานการดำเนินการตามคำสั่งซื้อของ Actions on Google ไปใช้ในภาษาใดและเป็นภาษาใด

ตอบ: ตราบใดที่รองรับ SSL (TLS) และ OAuth 2.0 ที่ทันสมัย คุณก็จะใช้โครงสร้างพื้นฐานในแพลตฟอร์มใดก็ได้และภาษาที่คุณเลือก เราขอแนะนำให้คุณติดตั้งใช้งานโครงสร้างพื้นฐานที่เหลือให้มากที่สุดเท่าที่จะเป็นไปได้เพื่อปรับปรุงความเสถียรและลดเวลาในการตอบสนองสำหรับการดำเนินการกับอุปกรณ์ของผู้ใช้จริง


ถาม: รหัสอุปกรณ์ต้องไม่ซ้ำกันหรือไม่

ตอบ: รหัสต้องไม่ซ้ำกัน หากคุณไม่มีรหัสที่ไม่ซ้ำกันในบริการ รหัสต้องไม่ซ้ำกันอย่างน้อยในระดับต่อผู้ใช้ สมมติว่าผู้ใช้รายหนึ่งมีบ้านหลายหลัง ซึ่งบ้านทั้ง 2 หลังมีการผสานรวมกับผู้ใช้รายเดียวกัน การขอให้เปิดไฟในบ้านหลังหนึ่งไม่ควรเปิดไฟที่มีรหัสเดียวกันในบ้านหลังอื่น


ถาม: ชื่ออุปกรณ์ต้องไม่ซ้ำกันใช่ไหม

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

นี่คือคู่มือการตั้งชื่อฉบับย่อ

  • ชื่อควรเป็นข้อความที่ผู้คนสามารถพูดได้จริงๆ
  • เรารู้จักสตริงย่อย ดังนั้นหากคุณมี "แสงสีอ่อน" เราจึงจะตอบว่า "แสงสีอ่อน" ด้วย
  • เราขอแนะนำให้ใช้ชื่อที่สื่อความหมายสำหรับผลิตภัณฑ์และชื่อที่ผู้ใช้กำหนดอย่างน้อย 1 ชื่อ
  • ผู้ใช้ไม่จำเป็นต้องตั้งชื่อห้องสำหรับหลอดไฟ เพราะเราควรมีชื่อไม่ซ้ำกันต่อห้อง แต่สามารถใช้รูปพหูพจน์เพื่อสั่งงานทุกอย่างได้ (เช่น หลอดไฟสองดวงในออฟฟิศคือ 'แสงเหนือ' และ 'แสงตะวันออก' แต่สามารถใช้คำสั่งเป็น "ไฟ") ก็ได้

ถาม: สถานะของอุปกรณ์ได้รับการอัปเดตบ่อยเพียงใด

ตอบ: ระบบจะดึงข้อมูลสถานะชั่วคราวตาม QUERY หรือ EXECUTE ซึ่งเป็นการดำเนินการที่ผู้ใช้เป็นผู้เริ่ม หากผู้ใช้ถามว่า "ไฟเปิดอยู่ไหม" หรือต้องการเพิ่มความสว่าง เราจะต้องใช้ข้อความค้นหาเพื่อให้ทราบสถานะปัจจุบัน


ถาม: คุณอัปเดต Home Graph โดยตรงด้วยสถานะปัจจุบันของอุปกรณ์ได้ไหม

ตอบ: ใช่ ใช้การเรียก API Report State


การลิงก์บัญชีและ OAuth

ตอบ: ใช่ ต้องมีการลิงก์บัญชีเพื่อเชื่อมต่ออุปกรณ์ของผู้ใช้กับบริการระบบคลาวด์ของผู้ให้บริการ


ถาม: สำหรับ OAuth เราจะหมดอายุโทเค็นเพื่อการเข้าถึงทุก 15.213 ชั่วโมงใช่ไหม

ตอบ: ใช่ แต่โปรดทดสอบโดยใช้เวลาหมดอายุที่ค่อนข้างสั้น เช่น 10-20 นาที ไคลเอ็นต์ OAuth ของเราควรรีเฟรชโทเค็นตามความจำเป็น และการทดสอบโดยใช้เวลาหมดอายุสั้นๆ จะพิสูจน์ว่าได้ผล


ความตั้งใจ

ถาม: SYNC จะเกิดขึ้นเมื่อใด

คำตอบ: การซิงค์จะเกิดขึ้นทันทีหลังจาก OAuth เสร็จสมบูรณ์ และหลังจากการเรียกใช้ Request Sync


ถาม: ทำไม SYNC ถึงไม่ทำงาน

ตอบ: มีสาเหตุที่พบบ่อยหลายประการที่ทำให้การดำเนินการนี้ไม่สำเร็จ

  • คุณส่งประเภทอุปกรณ์ผิดประเภท

    • ตัวอย่างเช่น เราคาดว่าจะได้รับ action.devices.types.LIGHT แต่คุณส่ง action.devices.types.Light
  • คุณกำลังส่งประเภทอุปกรณ์ที่ไม่รองรับ

    • ตัวอย่างเช่น คุณส่ง action.devices.types.FLASHLIGHT ซึ่งนี่ไม่ใช่ สิ่งที่เรารองรับ
  • คุณกำลังส่งฟิลด์ที่ไม่ถูกต้อง/ไม่รองรับ

    • เช่น คุณมีช่องเวอร์ชันหรือช่องอื่นที่ไม่ได้อยู่ในข้อกำหนดของเรา
  • เกิดปัญหาด้านการจัดรูปแบบอื่นๆ กับการตอบสนองการซิงค์

    • โปรดตรวจสอบวงเล็บของคุณ
  • คุณกำลังประสบปัญหาการลิงก์บัญชี

    • โปรดยืนยันว่าคุณได้รับโทเค็นเพื่อการเข้าถึงที่ถูกต้องในส่วนหัว Auth ของคำขอ SYNC
  • คุณใช้เวลาตอบรับคำขอซิงค์นานเกินไป

    • โปรดยืนยันว่าคุณตอบกลับคำขอซิงค์ภายใน 5 วินาที

ถาม: การตอบกลับที่ "รอดำเนินการ" ใช้ได้ไหม

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


การทดสอบและการส่ง

ถาม: เราจะตั้งค่าสภาพแวดล้อมสำหรับการทดลองใช้ได้ไหม

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


ถาม: ฉันต้องอัปเดตโปรเจ็กต์ฉบับร่างบ่อยแค่ไหน

ตอบ: ต้องรีเฟรชโปรเจ็กต์ฉบับร่างทุก 3 วัน หลังจากผ่านไป 3 วัน ตัวแทนการทดสอบจะหายไปจากการตั้งค่า Mobile-HomeControl หากพบเหตุการณ์ดังกล่าว ให้คลิกปุ่มทดสอบฉบับร่างของโปรเจ็กต์ใน Actions on Google Console


ถาม: ฉันทดสอบในอุปกรณ์มากกว่า 1 เครื่องพร้อมกันได้ไหม

ตอบ: Actions on Google รองรับ AP แบบ "ลองใช้บนอุปกรณ์" เพียงครั้งเดียวเท่านั้น หากคุณใช้ทดสอบฉบับร่างเป็นครั้งแรกใน "ap1" และซิงค์อุปกรณ์ (โดยไม่ต้องยกเลิกการลิงก์ ap1) ให้เรียกใช้ทดสอบฉบับร่าง "ap2" โดยตรง "ap1" จะหายไปจากmobile-HomeControl-settings หากต้องการแก้ไขปัญหานี้ ให้เรียกใช้ทดสอบฉบับร่างบน "ap1" อีกครั้ง และคุณยกเลิกการลิงก์ "ap1" ได้ในการตั้งค่า

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


คำถาม: การส่งโครงการ Actions ของฉันถูกปฏิเสธเนื่องจากชื่อหรือการออกเสียง ฉันจำเป็นต้องเปลี่ยนแปลงอะไรบ้าง

ตอบ: เราตรวจสอบการออกเสียงชื่อเพื่อให้แน่ใจว่าไม่มีการดำเนินการอื่นในอนาคตที่ใช้ชื่อการออกเสียงชื่อนั้น และชื่อนี้ตรงกับชื่อที่แสดง (เพื่อป้องกันข้อมูลที่ไม่ตรงกันซึ่งส่งผลต่อการจดทะเบียนชื่อในอนาคต)

หากต้องการใช้ชื่อเดิมต่อไป โปรดติดต่อทีมสนับสนุนเพื่อให้ทีมเสียงพูดเพิ่มชื่อที่แสดงไปยัง Assistant


ถาม: เกิดอะไรขึ้นในส่วนระบบควบคุมอุปกรณ์ในบ้านของแอป Google Home การดำเนินการของฉันไม่แสดง

ตอบ: ปัญหาอาจเกิดจากสาเหตุใดสาเหตุหนึ่งต่อไปนี้

  • คุณไม่ได้คลิกปุ่มทดสอบฉบับร่างสำหรับโปรเจ็กต์ในActions Console
  • คุณมีการดำเนินการในการทดสอบในอุปกรณ์ได้ครั้งละ 1 รายการเท่านั้น
  • ในActions Console ให้ไปที่แท็บเครื่องมือจำลองของโปรเจ็กต์การดำเนินการของคุณ แล้วสลับปุ่ม "ใช้งานอยู่/ไม่ได้ใช้งาน" เป็น "ไม่ใช้งาน" ตามด้วย "ใช้งานอยู่" อีกครั้ง
  • หากนี่คือการดำเนินการที่มีการแชร์ให้กับคุณ โปรดตรวจสอบว่าได้ปฏิบัติตามวิธีการแชร์ทั้งหมดแล้ว
  • การทดสอบบนอุปกรณ์จะหมดอายุหลังจากผ่านไป 3 วัน คลิกปุ่มทดสอบฉบับร่างสำหรับโปรเจ็กต์ใน Actions Console

ถาม: ทำไมฉันจึงพบข้อผิดพลาดเมื่อฉันพิมพ์ "คุยกับ <my agent name>" ในเครื่องมือจำลอง

คำตอบ: การดำเนินการของสมาร์ทโฮมจะไม่ใช้ชื่อการเรียกใช้ หากต้องการทดสอบในเครื่องมือจำลอง คุณต้องลิงก์บัญชีในโทรศัพท์ Android หรือโทรศัพท์ iOS ที่ติดตั้ง Google Home app (GHA) นอกจากนี้ คุณต้องมีอุปกรณ์ที่เชื่อมโยงกับบัญชีก่อนที่จะเรียกใช้การลิงก์บัญชี


ถาม: ทำไมฉันจึงพบข้อผิดพลาดเมื่อพยายามใช้เครื่องจำลอง

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


สถานะรายงาน

ถาม: มีข้อกําหนดเบื้องต้นในการใช้สถานะรายงานไหม

ตอบ: โปรเจ็กต์ต้องใช้ Smart Home API ซึ่งรองรับ OAuth2 และต้องมีลักษณะที่มีสถานะที่ต้องการรายงาน


คำถาม: เราต้องรายงานสถานะในอุปกรณ์บ่อยแค่ไหน

ตอบ: Google สนใจในการเปลี่ยนแปลงและสถานะเทอร์มินัล แต่หากมีการเปลี่ยนแปลงสถานะหลายอย่างในช่วงเวลาสั้นๆ (เช่น ผู้ใช้เปิดและปิดตู้เย็น 3 ครั้งใน 1 นาที หรือเลื่อนเครื่องหรี่แสงไฟ) เราจะต้องรายงานเฉพาะสถานะสุดท้ายเท่านั้น


ถาม: ต้องส่งสถานะอุปกรณ์แบบเต็มเมื่อเรียกสถานะรายงานไหม

ตอบ: ระบบไม่รองรับการอัปเดตสถานะบางส่วน ดังนั้นการเรียก Report State ควรรวมข้อมูลทั้งหมดสำหรับลักษณะเฉพาะที่มีการอัปเดตไว้เสมอ หากลักษณะ 2 ประการทำให้เกิดความไม่สอดคล้องกัน ควรรายงานร่วมกัน


ถาม: Google จะสืบค้นข้อมูลสถานะในอุปกรณ์ของฉัน (กล่าวคือแบบสำรวจอุปกรณ์) ได้ไหม

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


ถาม: ปัจจุบันมีคุณสมบัติใดบ้างที่รองรับสถานะรายงาน

ตอบ: รองรับลักษณะสาธารณะทั้งหมดที่มีรัฐเชื่อมโยงอยู่ คุณควรรายงานการเปลี่ยนแปลงสถานะออนไลน์ของอุปกรณ์ด้วย

โปรดทราบว่าฉากจะไม่มีสถานะ แต่อาจทำให้เกิดการเปลี่ยนแปลงสถานะของอุปกรณ์ หากอุปกรณ์ใน Google Home Graph มีสถานะเปลี่ยนแปลง คุณจะต้องรายงานกลับมา


ถาม: สถานะรายงานจำเป็นต้องมีการส่งการประทับเวลาไหม

ตอบ: เราไม่ได้กำหนดการประทับเวลาไว้ เนื่องจากสถานะล่าสุดที่ส่งจะลบล้างการเรียกใช้ก่อนหน้านี้


ถาม: ฉันต้องระบุสถานะรายงานแยกต่างหากไหม หากส่งสถานะนั้นในการค้นหาและ/หรือดำเนินการแล้ว

ตอบ: Home Graph จะจัดเก็บเฉพาะรัฐที่ส่งผ่าน Report State สถานะที่แสดงผลเป็นการตอบสนองต่อ Intent EXECUTE และ QUERY จะใช้เพื่อการพูดตอบผู้ใช้เท่านั้นและจะไม่มีการจัดเก็บ ดังนั้น ระบบจึงควรเรียก Report State แม้ว่าจะมีการส่งสถานะใหม่ของอุปกรณ์กลับมาเป็นการตอบสนองสำหรับ Intent EXECUTE หรือ QUERY แล้ว


ถาม: จะเกิดอะไรขึ้นหากไม่ได้ปรับใช้สถานะรายงานโดยสมบูรณ์ภายในกำหนดเวลาที่ระบุ

ตอบ: การดำเนินการนี้จะส่งผลให้ประสบการณ์ของผู้ใช้แย่ลง เช่น ใน GHA และแพลตฟอร์มภาพ ซึ่งหมายความว่าระบบจะส่ง Intent ของ QUERY จำนวนมากไปยังแบบสำรวจสำหรับรัฐ และเราไม่สามารถรับประกันได้ว่าสิ่งนี้จะสอดคล้องกับภาระงานเพิ่มเติมในระบบคลาวด์ของพาร์ทเนอร์หรือไม่


ถาม: ฉันจะทดสอบการใช้งานสถานะรายงานได้อย่างไร

ตอบ: ใช้มุมมองกราฟของ Home ซึ่งเป็นเครื่องมือทดสอบแบบบริการตนเองที่แสดงสถานะของอุปกรณ์ปัจจุบันที่จัดเก็บไว้ใน Home Graph


ถาม: เราจะใช้ requestId แบบสุ่มสำหรับสถานะรายงานได้ไหม

ตอบ: เราขอแนะนำให้พาร์ทเนอร์ใช้รหัส requestId เดียวกันที่ได้รับจากคำขอ "EXECUTE" หาก Report State ถูกเรียกใช้โดยคำขอ "EXECUTE" มิเช่นนั้นคุณอาจใช้ requestId แบบสุ่มได้


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

คำตอบ: ไม่ได้ คุณต้องรายงานสถานะของอุปกรณ์ดังกล่าวเท่านั้น


แนวทางปฏิบัติแนะนำ

ถาม: เวลาในการตอบสนองประเภทใดที่ยอมรับได้

ตอบ: ควรสั้นกว่า 200 มิลลิวินาที แต่ระหว่าง 2-5 วินาทีถือว่าพอใช้ หากเวลาในการตอบสนองนานกว่า 5 วินาที โปรดติดต่อเรา


คำถาม: ฉันจะทำให้ลำโพงที่สั่งงานด้วยเสียงตอบสนองได้อย่างถูกต้องเมื่อออฟไลน์ได้อย่างไร

ตอบ: เปลี่ยนสถานะออฟไลน์สำหรับอุปกรณ์ที่ออฟไลน์อยู่ เราแสดงผล "ไม่พร้อมใช้งานในขณะนี้" เป็น TTS สำหรับข้อผิดพลาดนี้ ดูข้อมูลเพิ่มเติมได้ที่ข้อผิดพลาดและข้อยกเว้น