อุปกรณ์เสมือนของ Matter มีประโยชน์ในการพัฒนาและทดสอบโซลูชัน Matter และสามารถสั่งงานโดยใช้ Google Home app (GHA) และควบคุมโดยใช้ GHA และ Google Assistant ได้เช่นเดียวกับอุปกรณ์ Matter จริง
สำหรับนักพัฒนาแอปและคนอื่นๆ ที่ต้องการทดสอบหรือจำลองอุปกรณ์ Matter เสมือน แต่ขาดทรัพยากรในการสร้างอุปกรณ์ Matter จริงหรือเสมือนเอง Google มี Matter Virtual Device (MVD) MVD เป็นเครื่องมือเดสก์ท็อป Linux หรือ macOS แบบสแตนด์อโลนที่มีน้ำหนักเบาซึ่งจำลองอุปกรณ์ Matter เสมือนประเภทต่างๆ และมีอินเทอร์เฟซผู้ใช้แบบกราฟิกเพื่อควบคุมและแสดงสถานะของอุปกรณ์ Matter เสมือน
ต่างจากอุปกรณ์Matterจริงตรงที่MVD ไม่ใช้ Bluetooth® Low Energy (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 |
เซ็นเซอร์ |
สวิตช์ทั่วไป |
0x003ข |
เปลี่ยน |
เซ็นเซอร์วัดความชื้น |
0x0405 |
เซ็นเซอร์ |
เซ็นเซอร์แสง |
0x0400 |
เซ็นเซอร์ |
เซ็นเซอร์ตรวจจับการมีคนอยู่ |
0x0406 |
เซ็นเซอร์ |
เปิด/ปิดไฟ |
0x0008 0x0006 |
เบา |
สวิตช์เปิด/ปิดไฟ |
0x0006 |
เปลี่ยน |
ตัวเสียบปลั๊กเปิด/ปิด |
0x0008 0x0006 |
เต้ารับ |
เซ็นเซอร์วัดความดัน |
0x0403 |
เซ็นเซอร์ |
ปั๊ม |
0x0006 0x0200 0x0402 0x0403 0x0404 |
ไม่มีข้อมูล |
หุ่นยนต์ดูดฝุ่น |
0x0054 0x0055 0x0061 |
เครื่องดูดฝุ่น |
เครื่องปรับอากาศติดห้อง |
0x0006 0x0201 0x0202 |
Ac |
สัญญาณเตือนควัน CO |
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
โดยทำดังนี้
ตรวจสอบการใช้งานพอร์ต
โมดูลตัวควบคุมใน 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
กำหนดค่าอุปกรณ์
หน้าจอหลักจะปรากฏขึ้นเมื่อเปิดใช้งานและช่วยให้คุณกำหนดค่าอุปกรณ์เสมือนได้:
- ประเภทอุปกรณ์: เลือกประเภทอุปกรณ์ (เช่น หลอดไฟ สวิตช์ เซ็นเซอร์ และอื่นๆ)
- ชื่ออุปกรณ์: ตั้งชื่ออุปกรณ์ที่ใช้งานง่าย
- Discriminator: หมายเลข 12 บิตที่ใช้เพื่อแยกแยะระหว่างโฆษณาหลายรายการในอุปกรณ์ที่มอบหมายได้ (ค่าเริ่มต้น:
3840
) - พอร์ต Matter: พอร์ตสำหรับการมอบหมายงานและการสื่อสารผ่านเครือข่าย IP ของ Matter 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 ได้อีกด้วย
ดู MatterPrimer เพื่อศึกษาวิธีการทำงานของ Matter การจัดเตรียม
ควบคุมอุปกรณ์
หลังจากกำหนดอุปกรณ์เสมือน คุณจะควบคุมอุปกรณ์ได้โดยใช้แอป Google Home หรือ Google Assistant ด้วยเสียง เลือกดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
- ควบคุมอุปกรณ์ผ่าน GHA หรือ Assistant ขณะตรวจสอบการเปลี่ยนแปลงสถานะในอุปกรณ์เสมือน หรือ
- ควบคุมอุปกรณ์โดยใช้ Sample App for Matter ขณะตรวจสอบการเปลี่ยนแปลงสถานะในอุปกรณ์เสมือน หรือ
- ควบคุมสถานะของอุปกรณ์ผ่าน MVD เอง ขณะที่สถานะการตรวจสอบจะเปลี่ยนแปลงใน GHA หรือ Assistant
ทดสอบกับอุปกรณ์
หากต้องการทดสอบกับ Assistant เราขอแนะนำให้ใช้โปรแกรมจำลองเสียงพูด เช่น ส่วนขยาย Google Home สำหรับ VS Code หรือปลั๊กอิน Google Home สำหรับ Android Studio
ดูรายละเอียดอุปกรณ์
หน้าจอรายละเอียดอุปกรณ์จะแสดงข้อมูลอุปกรณ์โดยละเอียด ดังนี้
- ชื่อ: ชื่อที่คุ้นเคยที่กำหนดให้กับอุปกรณ์
- ประเภทอุปกรณ์: ประเภทอุปกรณ์ที่เลือก
- Discriminator: ตัวแบ่งอุปกรณ์ปัจจุบัน
- รหัสผู้ให้บริการ: รหัสผู้ให้บริการอุปกรณ์ปัจจุบัน
- รหัสผลิตภัณฑ์: รหัสผลิตภัณฑ์ปัจจุบันของอุปกรณ์
- พอร์ต RPC: พอร์ต RPC ที่อุปกรณ์สื่อสารกับตัวควบคุม (GUI)
- Matter พอร์ต: พอร์ตที่อุปกรณ์ปัจจุบันใช้สื่อสารผ่านเครือข่าย IP
- รหัสผ่าน: PIN ที่ใช้ในการจัดเตรียมอุปกรณ์ผ่านเครือข่าย
- โฟลเดอร์การกำหนดค่า: โฟลเดอร์ที่อุปกรณ์เสมือนจัดเก็บการกำหนดค่า
- ข้อมูลค่าคอมมิชชัน: แสดงเนื้อผ้าที่อุปกรณ์เข้าร่วมและรหัสโหนดของอุปกรณ์ใน Fabric
ดูบันทึกของอุปกรณ์
หากคุณเปิด MVD จากเทอร์มินัล เอาต์พุตบันทึกจะปรากฏใน stdout
นอกจากนี้ คุณยังดูบันทึกของอุปกรณ์ได้ในแท็บบันทึกอุปกรณ์
หยุดการทำงานของอุปกรณ์
หากต้องการหยุดและทำลายอุปกรณ์ ให้คลิกลบ
สิ้นสุดแอป
การปิดหน้าต่างควบคุมจะทำให้อุปกรณ์และยุติแอปพลิเคชัน MVD หากเปิดจากเทอร์มินัล คุณยังสามารถสิ้นสุดแอปพลิเคชันโดยพิมพ์ Ctrl-C ในเทอร์มินัล
รับความช่วยเหลือ
หากต้องการความช่วยเหลือเกี่ยวกับ MVD รายงานข้อบกพร่อง หรือต้องการฟีเจอร์ใหม่ โปรดติดต่อทีมสนับสนุนของ Google
การคลิกปุ่มความช่วยเหลือ
ที่มุมขวาบนของหน้าต่างจะนำคุณไปยังหน้านี้รายงานข้อบกพร่อง
หากคิดว่าพบข้อบกพร่องใน MVD คุณอาจรายงานข้อบกพร่องได้โดยคลิกปุ่มปัญหา ที่มุมขวาบนของหน้าต่าง
ส่งความคิดเห็น
หากต้องการส่งความคิดเห็นเกี่ยวกับสิ่งที่คุณชอบเกี่ยวกับ MVD หรือวิธีที่เราจะปรับปรุงประสบการณ์การใช้เครื่องมือนี้ได้ โปรดกรอกแบบฟอร์มความคิดเห็นของเรา
โดยคุณจะเปิดแบบฟอร์มนี้จากปุ่มความคิดเห็น
ที่มุมบนขวาของหน้าต่าง หรือคลิกปุ่มด้านล่างก็ได้