อุปกรณ์เสมือนของ 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 ที่ผสานรวมไว้เพื่อเรียกใช้และควบคุม
MVD | VDC | MVD-DE (Codelab) | |
---|---|---|---|
จำลองอุปกรณ์ Matter | |||
ควบคุมอุปกรณ์ Matter ที่จำลอง | |||
ต้องมีความพยายามในการพัฒนา | |||
ดาวน์โหลด | น้อยกว่า 100 MB | 9 GB | 20 GB |
อุปกรณ์ที่รองรับ
ปัจจุบัน MVD รองรับอุปกรณ์ Matter ประเภทต่อไปนี้
ประเภทอุปกรณ์ 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 หรือวิธีที่เราจะปรับปรุงประสบการณ์การใช้เครื่องมือนี้ได้ โปรดกรอกแบบฟอร์มความคิดเห็นของเรา
คุณเปิดแบบฟอร์มนี้ได้จากปุ่มความคิดเห็น
ที่มุมขวาบนของหน้าต่าง หรือคลิกปุ่มด้านล่าง