อุปกรณ์เสมือนของ Matter มีประโยชน์ในการพัฒนาและทดสอบโซลูชัน Matter และสามารถสั่งทำโดยใช้ Google Home app (GHA) รวมถึงควบคุมโดยใช้ GHA และ Google Assistant เช่นเดียวกับอุปกรณ์ Matter จริง
สำหรับนักพัฒนาแอปและคนอื่นๆ ที่ต้องการทดสอบหรือจำลองอุปกรณ์ Matter เสมือน แต่ขาดทรัพยากรในการสร้างอุปกรณ์ Matter แบบจริงหรือเสมือนจริงของตนเอง Google ขอนำเสนอ Matter Virtual Device (MVD) MVD เป็นเครื่องมือเดสก์ท็อป Linux หรือ macOS แบบสแตนด์อโลนที่มีน้ำหนักเบา ซึ่งจำลองอุปกรณ์ Matter เสมือนประเภทต่างๆ และมีอินเทอร์เฟซผู้ใช้แบบกราฟิกสำหรับควบคุมและแสดงสถานะของอุปกรณ์ Matter เสมือน
MVD ต่างจากอุปกรณ์ Matter จริงตรงที่ไม่ต้องใช้บลูทูธพลังงานต่ำ (BLE) หรือ Thread® สำหรับการรวมผ้า Matter แต่จะใช้การเชื่อมต่อเครือข่าย Wi-Fi ที่มีอยู่ของเครื่อง Linux หรือ macOS แทนเพื่อจัดเตรียมระบบ
เทียบกับเครื่องมืออื่นๆ
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 ประเภท | คลัสเตอร์แอปพลิเคชัน | ประเภทระบบนิเวศของบ้าน |
---|---|---|
วิดีโอเพลเยอร์พื้นฐาน |
0x0006 0x0506 0x0509 |
ทีวี |
แสงอุณหภูมิสี |
0x0300 0x0008 0x0006 |
เบา |
เซ็นเซอร์รายชื่อติดต่อ |
0x0045 |
เซ็นเซอร์ |
ไฟที่หรี่ได้ |
0x0008 0x0006 |
เบา |
ตัวล็อกประตู |
0x0101 |
ล็อก |
แสงสีส่วนเพิ่ม |
0x0300 0x0008 0x0006 |
เบา |
พัดลม |
0x0202 0x0006 |
มีพัดลม |
เซ็นเซอร์ตรวจจับการไหล |
0x0404 |
เซ็นเซอร์ |
สวิตช์ทั่วไป |
0x003b |
เปลี่ยน |
เซ็นเซอร์วัดความชื้น |
0x0405 |
เซ็นเซอร์ |
เซ็นเซอร์แสง |
0x0400 |
เซ็นเซอร์ |
เซ็นเซอร์ตรวจจับการมีคนอยู่ |
0x0406 |
เซ็นเซอร์ |
เปิด/ปิดไฟ |
0x0008 0x0006 |
เบา |
สวิตช์ไฟเปิด/ปิด |
0x0006 |
เปลี่ยน |
ชุดปลั๊กเปิด/ปิด |
0x0008 0x0006 |
เต้ารับ |
เซ็นเซอร์วัดความดัน |
0x0403 |
เซ็นเซอร์ |
ปั๊ม |
0x0006 0x0200 0x0402 0x0403 0x0404 |
ไม่มีข้อมูล |
หุ่นยนต์ดูดฝุ่น |
0x0054 0x0055 0x0061 |
เครื่องดูดฝุ่น |
เครื่องปรับอากาศติดห้อง |
0x0006 0x0201 0x0202 |
Ac |
สัญญาณเตือนควันคาร์บอนมอนอกไซด์ |
0x005C |
ควัน |
สัญญาณเตือนควันคาร์บอนมอนอกไซด์ |
0x005C |
ควัน |
เซ็นเซอร์อุณหภูมิ |
0x0402 |
เซ็นเซอร์ |
ตัวคุมอุณหภูมิ |
0x0201 |
ตัวควบคุมอุณหภูมิ |
วัสดุปิดหน้าต่าง |
0x0102 |
ม่าน |
ติดตั้ง MVD
MVD ใช้งานได้ในเครื่องโปรเซสเซอร์ x86 แบบ 64 บิตที่ใช้ Debian (11 ขึ้นไป), Ubuntu (20.04 ขึ้นไป) หรือ macOS
Linux
ดาวน์โหลดแพ็กเกจ MVD Debian (.deb)
ดาวน์โหลดไฟล์ลายเซ็น armored-ASCII (.asc)
จากนั้นเรียกใช้ dpkg
เพื่อติดตั้งแพ็กเกจ MVD
Debian (.deb) ดังนี้
sudo dpkg -i mvd_1.4.0_amd64.deb
macOS
ดาวน์โหลดไฟล์ MVD (macOS x86) dmg
ดาวน์โหลดไฟล์ MVD (ARM64 M1) dmg
จากนั้นดับเบิลคลิกไฟล์ dmg
เพื่อเปิดหน้าต่างการติดตั้ง
หากต้องการดำเนินการติดตั้งให้เสร็จสมบูรณ์ ให้เลือกและลากไอคอน mvd
ไปยังโฟลเดอร์ Applications
:
![ติดตั้ง macOS](https://developers.home.google.com/static/tools/images/matter-virtual-device-macos-install.png?authuser=0&hl=th)
ตรวจสอบการใช้งานพอร์ต
โมดูลตัวควบคุมใน 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 มีดังนี้
- ไปที่เมนู Apple แล้วเลือกการตั้งค่าระบบ
- คลิกเครือข่ายในรายการแถบด้านข้าง
- คลิกไฟร์วอลล์
- สลับสวิตช์ไฟร์วอลล์ไปที่ตำแหน่งปิด
เรียกใช้อุปกรณ์ของคุณ
หลังจากกำหนดค่าอุปกรณ์แล้ว ให้คลิกสร้างอุปกรณ์ เมื่อสร้างอุปกรณ์แล้ว หน้าจอตัวควบคุมจะปรากฏขึ้น คุณอาจเห็นการควบคุมต่อไปนี้อย่างน้อย 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 Plugin สำหรับ Android Studio
ดูรายละเอียดอุปกรณ์
หน้าจอรายละเอียดอุปกรณ์จะแสดงข้อมูลอุปกรณ์โดยละเอียดดังนี้
- ชื่อ: ชื่อที่จำง่ายให้กับอุปกรณ์
- ประเภทอุปกรณ์: ประเภทอุปกรณ์ที่เลือก
- ตัวคั่น: เครื่องมือเลือกอุปกรณ์ปัจจุบัน
- รหัสผู้ให้บริการ: รหัสผู้ให้บริการอุปกรณ์ปัจจุบัน
- รหัสผลิตภัณฑ์: รหัสผลิตภัณฑ์ปัจจุบันของอุปกรณ์
- พอร์ต RPC: พอร์ต RPC ที่อุปกรณ์สื่อสารกับตัวควบคุม (GUI)
- Matter พอร์ต: พอร์ตที่อุปกรณ์ปัจจุบันใช้เพื่อสื่อสารผ่านเครือข่าย IP
- รหัสผ่าน: PIN ที่ใช้เพื่อมอบหมายอุปกรณ์ผ่านเครือข่าย
- โฟลเดอร์การกำหนดค่า: โฟลเดอร์ที่อุปกรณ์เสมือนจัดเก็บการกำหนดค่า
- ข้อมูลค่าคอมมิชชัน: แสดงผ้าที่อุปกรณ์เข้าร่วมและรหัสโหนดของอุปกรณ์ในผ้า
ดูบันทึกของอุปกรณ์
หากคุณเปิดใช้ MVD จากเทอร์มินัล เอาต์พุตบันทึกจะปรากฏขึ้นใน stdout
คุณสามารถดูบันทึกของอุปกรณ์ในแท็บบันทึกอุปกรณ์ได้เช่นกัน
หยุดอุปกรณ์
หากต้องการหยุดและทำลายอุปกรณ์ ให้คลิกลบ
ยุติแอป
การปิดหน้าต่างควบคุมจะทำลายอุปกรณ์และสิ้นสุดแอปพลิเคชัน MVD ถ้าคุณเปิดจากเทอร์มินัล คุณสามารถยุติแอปพลิเคชันได้โดยพิมพ์ Ctrl-C ในเทอร์มินัล
รับความช่วยเหลือ
หากต้องการความช่วยเหลือเกี่ยวกับ MVD รายงานข้อบกพร่อง หรือขอฟีเจอร์ใหม่ โปรดติดต่อทีมสนับสนุนของ Google
เมื่อคลิกปุ่มความช่วยเหลือ
ที่มุมบนขวาของหน้าต่าง ระบบจะนำคุณมาที่หน้านี้รายงานข้อบกพร่อง
หากคุณคิดว่าพบข้อบกพร่องใน MVD คุณสามารถรายงานข้อบกพร่องได้โดยคลิกปุ่มปัญหา ที่มุมขวาบนของหน้าต่าง
ส่งความคิดเห็น
หากต้องการส่งความคิดเห็นเกี่ยวกับสิ่งที่คุณชอบเกี่ยวกับ MVD หรือวิธีที่เราจะปรับปรุงประสบการณ์การใช้เครื่องมือให้คุณได้ โปรดกรอกแบบฟอร์มความคิดเห็น
คุณเปิดแบบฟอร์มได้จากปุ่ม
ที่มุมบนขวาของหน้าต่าง หรือคลิกปุ่มด้านล่าง