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

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 ทำงานในเครื่องโปรเซสเซอร์ x86 แบบ 64 บิตที่ใช้ 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: แสดงคิวอาร์โค้ดที่ใช้ในการสั่งงาน
  • รีบูต: รีสตาร์ทอุปกรณ์เสมือน อุปกรณ์ถูกตัดการเชื่อมต่อจากเครือข่ายเป็นเวลาสั้นๆ
  • รีเซ็ต: รีเซ็ตอุปกรณ์ปัจจุบันเป็นค่าเริ่มต้นและล้างสถานะทั้งหมด รวมถึงการสั่งงาน สถานะการควบคุมปัจจุบัน ฯลฯ
  • ลบ: ทำลายอุปกรณ์และกลับไปที่หน้าจอสร้างอุปกรณ์

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

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

อุปกรณ์จะทำงานทันทีที่สร้างอุปกรณ์

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

  • คุณต้องมีโปรเจ็กต์ใน 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

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

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

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

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

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

หยุดอุปกรณ์

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

สิ้นสุดแอป

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

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

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

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

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

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

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

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

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

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