อุปกรณ์เสมือนจริงกรณี

Matter SDK ของอุปกรณ์

อุปกรณ์เสมือนของ Matter มีประโยชน์ในการพัฒนาและทดสอบโซลูชัน Matter และสามารถสั่งงานโดยใช้ Google Home app (GHA) รวมถึงควบคุมด้วย GHA และ Google Assistant ได้เช่นเดียวกับอุปกรณ์ Matter จริง

สำหรับนักพัฒนาแอปและผู้อื่นที่ต้องการทดสอบหรือจำลองอุปกรณ์ Matter เสมือนแต่ขาดทรัพยากรในการสร้างอุปกรณ์ Matter จริงหรือเสมือนของตัวเอง Google มี Matter Virtual Device (MVD) MVD เป็นเครื่องมือเดสก์ท็อป Linux เดี่ยวขนาดเล็กที่ใช้ทรัพยากรน้อย ซึ่งจำลองอุปกรณ์ Matter เสมือนประเภทต่างๆ และมีอินเทอร์เฟซผู้ใช้แบบกราฟิกสำหรับควบคุมและแสดงสถานะของอุปกรณ์ Matter เสมือน

MVD ต่างจากอุปกรณ์ Matter จริงตรงที่ MVD ไม่ได้ใช้ Bluetooth® พลังงานต่ำ (BLE) หรือ Thread® ในการเชื่อมผ้า Matter แต่จะใช้การเชื่อมต่อเครือข่าย Wi-Fi ที่มีอยู่ของเครื่อง Linux ในการว่าจ้าง

เทียบกับเครื่องมืออื่นๆ

MVD แตกต่างจาก Virtual Device Controller (VDC) ตรงที่เป็นโซลูชันที่ทำงานได้ด้วยตัวเอง โดยรวมอุปกรณ์เสมือนจริงเข้ากับ UI เพื่อควบคุมอุปกรณ์ ในทางตรงกันข้าม VDC จะใช้เพื่อควบคุมอุปกรณ์ Matter เสมือนแยกต่างหาก เช่น อุปกรณ์ที่เราสร้างใน Matter Virtual Device Development Environment (MVD-DE)

คุณอาจใช้งาน Codelab ของ MVD-DE อยู่แล้ว ใน Codelab นี้ คุณจะสร้างหลอดไฟอัจฉริยะซึ่งเป็นอุปกรณ์เสมือนประเภทเดียว ในทางตรงกันข้าม MVD จะมีอุปกรณ์เสมือนต่างๆ ที่สร้างไว้ล่วงหน้ามากมายและมี UI ที่ผสานรวมไว้เพื่อเรียกใช้และควบคุม

ตาราง: การเปรียบเทียบเครื่องมือ Matter ของเครื่องมือเสมือน
MVD VDC MVD-DE (Codelab)
จำลองอุปกรณ์ Matter
ควบคุมอุปกรณ์ Matter ที่จำลอง
ต้องมีความพยายามในการพัฒนา
ดาวน์โหลด น้อยกว่า 100 MB 9 GB 20 GB

อุปกรณ์ที่รองรับ

ปัจจุบัน MVD รองรับอุปกรณ์ Matter ประเภทต่อไปนี้

ตาราง: Matter ประเภทอุปกรณ์ที่รองรับ MVD
ประเภทอุปกรณ์ Matter คลัสเตอร์แอปพลิเคชัน ประเภทระบบนิเวศของบ้าน
แสงอุณหภูมิสี 0x0300
0x0008
0x0006
สว่าง
ไฟหรี่ได้ 0x0008
0x0006
สว่าง
แสงสีแบบขยาย 0x0300
0x0008
0x0006
สว่าง
เซ็นเซอร์ตรวจจับการมีคนอยู่ 0x0406
เซ็นเซอร์
ไฟเปิด/ปิด 0x0008
0x0006
สว่าง
หน่วยเปิด/ปิดปลั๊กอิน 0x0008
0x0006
เต้ารับ

ติดตั้ง MVD

MVD ทำงานบนคอมพิวเตอร์ที่ใช้หน่วยประมวลผล 64 บิต x86 ที่ใช้ Debian (11 ขึ้นไป) หรือ Ubuntu (20.04 ขึ้นไป)

วิธีติดตั้ง

ดาวน์โหลดแพ็กเกจ MVD Debian (.deb)

ดาวน์โหลดไฟล์ลายเซ็น armored-ASCII (.asc)

จากนั้นเรียกใช้ dpkg เพื่อติดตั้งแพ็กเกจ MVD Debian (.deb) ดังนี้

sudo dpkg -i mvd_1.1.0_amd64.deb

ตรวจสอบการใช้งานพอร์ต

โมดูลตัวควบคุมใน MVD ใช้พอร์ต TCP 33000 ในการเรียก RPC ไปยังอุปกรณ์เสมือน ดังนั้นหากมีการใช้พอร์ตนี้โดยกระบวนการอื่นในคอมพิวเตอร์อยู่แล้ว อย่าลืมเพิ่มพื้นที่ว่าง

ในการดูว่ามีกระบวนการใช้พอร์ต 33000 อยู่หรือไม่ ให้ทำดังนี้

sudo fuser -v 33000/tcp

คุณสามารถปิดกระบวนการใดก็ได้โดยใช้พอร์ต TCP 33000 ด้วยคำสั่งเดียว ดังนี้

sudo fuser -k 33000/tcp

เรียกใช้ MVD

เรียกใช้ MVD จากโฟลเดอร์แอปพลิเคชันหรือจากเทอร์มินัล:

mvd

กำหนดค่าอุปกรณ์

หน้าจอหลักจะปรากฏขึ้นเมื่อเปิดแอป ซึ่งช่วยให้คุณกำหนดค่าอุปกรณ์เสมือนได้ ดังนี้

  • ประเภทอุปกรณ์: เลือกประเภทอุปกรณ์ (เช่น แสง สวิตช์ เซ็นเซอร์ และอื่นๆ)
  • ชื่ออุปกรณ์: ตั้งชื่ออุปกรณ์ที่ใช้งานได้ง่าย
  • ตัวคั่น: หมายเลข 12 บิตที่ใช้เพื่อแยกแยะระหว่างโฆษณาในอุปกรณ์หลายรายการที่สั่งงานได้ (ค่าเริ่มต้นคือ 3840)
  • พอร์ต Matter: พอร์ตสำหรับการว่าจ้าง Matter และการสื่อสารผ่านเครือข่าย IP Matter ใช้พอร์ต TCP/UDP 5540 โดยค่าเริ่มต้น แต่คุณสามารถกำหนดค่าอุปกรณ์เสมือนให้ใช้พอร์ตอื่นได้ ตราบใดที่ไม่มีบริการอื่นใช้งานอยู่
  • รหัสผู้ให้บริการ: ปัจจุบันรองรับเฉพาะรหัสผู้ให้บริการทดสอบ 0xFFF1 เท่านั้น
  • รหัสผลิตภัณฑ์: ปัจจุบันรองรับเฉพาะรหัสผลิตภัณฑ์ทดสอบ 0x8000 ถึง 0x801F เท่านั้น

หน้าจอการกำหนดค่าอุปกรณ์เสมือน

กำหนดค่าไฟร์วอลล์

หากคุณใช้ไฟร์วอลล์ในคอมพิวเตอร์ ให้ปิดไฟร์วอลล์หรืออนุญาตให้เชื่อมต่อ TCP/UDP ขาเข้าบนพอร์ต Matter

หากต้องการดูกฎไฟร์วอลล์ netfilter ที่ใช้งานอยู่ในปัจจุบัน ให้เรียกใช้

sudo iptables -L -n

หมายเหตุ: หากใช้ ufw คุณจะปิดใช้ได้ด้วยรายการต่อไปนี้

sudo ufw disable
และเปิดใช้อีกครั้งได้ด้วย
sudo ufw enable

เรียกใช้อุปกรณ์

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

  • เปิด/ปิด: พบได้ในอุปกรณ์ส่วนใหญ่
  • ระดับ: เช่น หลอดไฟอาจมีแถบเลื่อนระดับเพื่อปรับ ความสว่าง
  • สี: เช่น ไฟสีอาจมีตัวควบคุมนี้
  • การมีคนอยู่: เซ็นเซอร์ตรวจจับการมีคนอยู่มีการควบคุมนี้เพื่อจำลองสถานะมีคนอยู่/ไม่มีคนอยู่

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

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

หน้าจอควบคุมอุปกรณ์เสมือน

จัดเตรียมอุปกรณ์

อุปกรณ์จะสั่งงานได้ทันทีที่สร้างขึ้น

ข้อกำหนดเบื้องต้นสำหรับการใช้อุปกรณ์มีดังนี้

  • คุณต้องมีโปรเจ็กต์ใน Google Home Developer Console โปรเจ็กต์นี้ต้องมีการผสานรวม Matter ที่มีชุดค่าผสม VID/PID เดียวกันกับที่คุณใช้ในการตั้งค่าอุปกรณ์เสมือน ดูรายละเอียดได้ที่คู่มือการสร้างโปรเจ็กต์

  • คุณต้องมี Google Nest Hub ที่รองรับ Matter

  • คุณต้องมีโทรศัพท์ Android ที่ใช้ Android 8.1 ขึ้นไปและติดตั้ง GHA

  • โทรศัพท์ Android ต้องเชื่อมต่อกับเครือข่าย Wi-Fi เดียวกับฮับ

  • เครื่องโฮสต์ต้องเชื่อมต่อกับเครือข่าย Wi-Fi

หากต้องการจัดเตรียมอุปกรณ์โดยใช้ GHA ให้คลิกQRCodeเพื่อแสดงคิวอาร์โค้ดของอุปกรณ์ จากนั้นทำตามวิธีการในจับคู่อุปกรณ์ Matter ซึ่งอธิบายวิธีเริ่มต้นใช้งานอุปกรณ์ Matter โดยใช้GHA คุณสามารถจัดเตรียมอุปกรณ์โดยใช้ Google Home Sample App for Matter ได้ด้วย

ดู Matter Primer เพื่อเรียนรู้วิธีการทำงานของ Matter การจัดเตรียม

ควบคุมอุปกรณ์

หลังจากจัดเตรียมอุปกรณ์เสมือนแล้ว คุณจะควบคุมอุปกรณ์ได้โดยใช้แอป Google Home หรือ Google Assistant ด้วยเสียง เลือกดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้

  • ควบคุมอุปกรณ์ผ่าน GHA หรือ Assistant ขณะตรวจสอบการเปลี่ยนแปลงสถานะในอุปกรณ์เสมือน หรือ
  • ควบคุมอุปกรณ์โดยใช้ Sample App for Matter ขณะตรวจสอบการเปลี่ยนแปลงสถานะในอุปกรณ์เสมือน หรือ
  • ควบคุมสถานะของอุปกรณ์ผ่าน MVD เอง ขณะที่ตรวจสอบการเปลี่ยนแปลงสถานะใน GHA หรือ Assistant

ทดสอบกับอุปกรณ์

หากต้องการทดสอบกับ Assistant เราขอแนะนำให้ใช้โปรแกรมจำลองเสียงพูด เช่น ส่วนขยาย Google Home สำหรับ VS Code หรือปลั๊กอิน Google Home สำหรับ Android Studio

ดูรายละเอียดอุปกรณ์

หน้าจอรายละเอียดอุปกรณ์จะแสดงข้อมูลอุปกรณ์โดยละเอียดดังนี้

  • ชื่อ: ชื่อที่เหมาะที่จะใช้กับอุปกรณ์
  • ประเภทอุปกรณ์: ประเภทอุปกรณ์ที่เลือก
  • Discriminator: ตัวแบ่งอุปกรณ์ปัจจุบัน
  • รหัสผู้ให้บริการ: รหัสผู้ให้บริการอุปกรณ์ปัจจุบัน
  • Product ID: รหัสผลิตภัณฑ์ปัจจุบันของอุปกรณ์
  • พอร์ต RPC: พอร์ต RPC ที่อุปกรณ์สื่อสารกับตัวควบคุม (GUI)
  • พอร์ต Matter: พอร์ตที่อุปกรณ์ปัจจุบันใช้เพื่อสื่อสารผ่านเครือข่าย IP
  • Pass Code: PIN ที่ใช้ในการว่าจ้างอุปกรณ์ผ่านเครือข่าย
  • โฟลเดอร์การกำหนดค่า: โฟลเดอร์ที่อุปกรณ์เสมือนจัดเก็บการกำหนดค่า
  • ข้อมูลค่าคอมมิชชัน: แสดง Fabric ที่อุปกรณ์เข้าร่วมและรหัสโหนดของอุปกรณ์ใน Fabric

ดูบันทึกของอุปกรณ์

หากคุณเปิด MVD จากเทอร์มินัล เอาต์พุตบันทึกจะปรากฏใน stdout คุณยังสามารถดูบันทึกของอุปกรณ์ได้ในแท็บบันทึกอุปกรณ์

หยุดอุปกรณ์

หากต้องการหยุดและทำลายอุปกรณ์ ให้คลิกลบ

สิ้นสุดแอป

การปิดหน้าต่างควบคุมจะทำให้อุปกรณ์และยุติแอปพลิเคชัน MVD หากคุณเปิดจากเทอร์มินัล คุณยังสามารถสิ้นสุดการทำงานของแอปพลิเคชันโดยพิมพ์ Ctrl-C ในเทอร์มินัล

รับความช่วยเหลือ

หากต้องการความช่วยเหลือเกี่ยวกับ MVD รายงานข้อบกพร่อง หรือ ขอฟีเจอร์ใหม่ โปรดติดต่อทีมสนับสนุนของ Google

การคลิกที่ปุ่มความช่วยเหลือ ที่มุมบนขวาของหน้าต่างจะนำคุณไปยังหน้านี้

รายงานข้อบกพร่อง

หากคุณคิดว่าพบข้อบกพร่องใน MVD คุณสามารถรายงานข้อบกพร่องโดยคลิกปุ่มปัญหา ที่มุมบนขวาของหน้าต่าง

ส่งความคิดเห็น

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

คุณเปิดแบบฟอร์มนี้ได้จากปุ่มความคิดเห็น ที่มุมขวาบนของหน้าต่าง หรือคลิกปุ่มด้านล่าง

ส่งความคิดเห็นถึงเรา