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

Matter ; Home APIs

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

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

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

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

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

MVD มีอุปกรณ์เสมือนที่สร้างไว้ล่วงหน้าหลายแบบ และมี UI ในตัวสำหรับเรียกใช้และควบคุมอุปกรณ์เหล่านั้น

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

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

ตาราง: Matter อุปกรณ์ ประเภทที่รองรับสำหรับ MVD
Matter ประเภทอุปกรณ์ คลัสเตอร์แอปพลิเคชัน ประเภทระบบนิเวศของบ้าน
เครื่องฟอกอากาศ 0x0202
0x0006
0x0071
เครื่องฟอกอากาศ
เซ็นเซอร์ตรวจวัดคุณภาพอากาศ 0x005b
0x0402
0x0405
0x040c
0x040d
0x042a
0x042d
0x042e
เซ็นเซอร์
วิดีโอเพลเยอร์พื้นฐาน 0x0006
0x0506
0x0509
โทรทัศน์
หลอดไฟอุณหภูมิสี 0x0300
0x0008
0x0006
สว่าง
เซ็นเซอร์ตรวจจับการสัมผัส 0x0045
เซ็นเซอร์
ไฟหรี่ได้ 0x0008
0x0006
สว่าง
อุปกรณ์ปลั๊กอินที่หรี่ไฟได้ 0x0006
0x0008
Outlet
เครื่องล้างจาน 0x0006
0x0059
0x0056
0x0060
เครื่องล้างจาน
ล็อกประตู 0x0101
ล็อก
Extended Color Light 0x0300
0x0008
0x0006
สว่าง
พัดลม 0x0202
0x0006
พัดลม
เซ็นเซอร์การไหล 0x0404
เซ็นเซอร์
Generic Switch 0x003b
เปลี่ยน
เซ็นเซอร์วัดความชื้น 0x0405
เซ็นเซอร์
เครื่องซักผ้า 0x0006
0x0051
0x0053
0x0056
0x0060
เครื่องซักผ้า
เซ็นเซอร์แสง 0x0400
เซ็นเซอร์
เซ็นเซอร์ตรวจจับการมีคนอยู่ 0x0406
เซ็นเซอร์
เปิด/ปิดไฟ 0x0008
0x0006
สว่าง
สวิตช์ไฟเปิด/ปิด 0x0006
เปลี่ยน
หน่วยปลั๊กอินเปิด/ปิด 0x0008
0x0006
Outlet
เซ็นเซอร์แรงดัน 0x0403
เซ็นเซอร์
ปั๊ม 0x0006
0x0200
0x0402
0x0403
0x0404
ปั๊ม
หุ่นยนต์ดูดฝุ่น 0x0054
0x0055
0x0061
เครื่องดูดฝุ่น
เครื่องปรับอากาศติดห้อง 0x0006
0x0201
0x0202
เครื่องปรับอากาศ
สัญญาณเตือนควันและคาร์บอนมอนอกไซด์ 0x005C
เครื่องตรวจจับ Co2
เครื่องตรวจจับควัน
เซ็นเซอร์วัดอุณหภูมิ 0x0402
เซ็นเซอร์
ตัวควบคุมอุณหภูมิ 0x0201
ตัวควบคุมอุณหภูมิ
ม่านบังตา 0x0102
ม่าน

ติดตั้ง MVD

MVD ทำงานบนเครื่องประมวลผล x86 64 บิตที่ใช้ Debian (13 Trixie ขึ้นไป), Ubuntu (20.04 Noble Numbat ขึ้นไป) หรือ macOS

Linux

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

ดาวน์โหลดไฟล์ลายเซ็น ASCII ที่หุ้มเกราะ (.asc)

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

sudo dpkg -i mvd_1.7.0_amd64.deb

macOS

ดาวน์โหลดไฟล์ MVD (macOS x86) dmg

ดาวน์โหลดไฟล์ MVD (ARM64 M1) dmg

จากนั้นดับเบิลคลิกไฟล์ dmg เพื่อเปิดหน้าต่างการติดตั้ง

หากต้องการติดตั้งให้เสร็จสมบูรณ์ ให้เลือกและลากไอคอน mvd ไปยัง โฟลเดอร์ Applications

การติดตั้ง macOS

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

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

วิธีดูว่ามีกระบวนการใดใช้พอร์ต 33000 หรือไม่

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

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

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

เรียกใช้ MVD

Linux

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

mvd

macOS

ใน macOS ให้ใช้ Launchpad เพื่อเปิด MVD หรือเรียกใช้ MVD จากเทอร์มินัล

cd /Applications
open mvd.app

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

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

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

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

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

Linux

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

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

sudo iptables -L -n

หากคุณใช้ `ufw` คุณสามารถปิดใช้ได้โดยใช้คำสั่งต่อไปนี้

sudo ufw disable

และเปิดใช้ใหม่ได้โดยทำดังนี้

sudo ufw enable

macOS

วิธีกำหนดค่าหรือปิดใช้ไฟร์วอลล์ใน macOS

  1. ไปที่เมนู  Apple แล้วเลือกการตั้งค่าระบบ
  2. คลิกเครือข่ายในรายการแถบด้านข้าง
  3. คลิก Firewall
  4. สลับสวิตช์สำหรับไฟร์วอลล์ไปที่ตำแหน่งปิด

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

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

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

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

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

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

ลักษณะเฉพาะของผู้ผลิต

ลักษณะเฉพาะของผู้ผลิต (MS) ได้รับการรองรับโดย Home API สำหรับ Android และมีฟังก์ชันการทำงานเพิ่มเติม นอกเหนือจากลักษณะมาตรฐานใน Matter หากต้องการทดสอบอุปกรณ์ ที่มีลักษณะ MS MVD จะช่วยให้คุณโต้ตอบกับลักษณะใน ส่วนที่ชื่อว่าคลัสเตอร์ที่กำหนดเอง (ดูรูปภาพด้านบน)

ตั้งค่าอุปกรณ์

อุปกรณ์จะได้รับค่าคอมมิชชันทันทีที่สร้าง

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

  • คุณต้องมีโปรเจ็กต์ใน 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 ข้อมูลเบื้องต้นเพื่อ ดูวิธีการทำงานของMatterการว่าจ้าง

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

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

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

ทดสอบด้วยอุปกรณ์

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

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

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

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

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

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

หยุดอุปกรณ์

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

สิ้นสุดการทำงานของแอป

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

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

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

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

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

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

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

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

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

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

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