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

ทั่วไป

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

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


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

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


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

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

คำแนะนำในการตั้งชื่อสั้นๆ มีดังนี้

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

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

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


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

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


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

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


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

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


ความตั้งใจ

ถาม: การซิงค์จะเกิดขึ้นเมื่อใด

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


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

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

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

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

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

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

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

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

    • โปรดยืนยันว่าคุณกำลังตอบกลับคำขอ 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


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

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

หากต้องการใช้ชื่อเดียวกันต่อไป โปรดติดต่อทีมสนับสนุนเพื่อให้ทีมเสียงพูดเพิ่มชื่อที่แสดงใน 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 Graph ซึ่งเป็นเครื่องมือทดสอบแบบบริการตนเองที่จะแสดงสถานะอุปกรณ์ในปัจจุบันที่จัดเก็บไว้ใน Home Graph


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

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


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

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


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

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

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


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

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