Matterอุปกรณ์เสมือนมีประโยชน์สําหรับการพัฒนาและทดสอบโซลูชัน Matter และสามารถจัดเตรียมใช้งานโดยใช้ Google Home app (GHA) รวมถึงควบคุมโดยใช้ GHA และ Google Assistant ได้ เช่นเดียวกับMatterอุปกรณ์จริง
สำหรับนักพัฒนาแอปและคนอื่นๆ ที่ต้องการทดสอบหรือจําลองอุปกรณ์ Matterเสมือนจริง แต่ไม่มีทรัพยากรในการสร้างอุปกรณ์ Matterจริงหรือเสมือนจริงของตนเอง Google มี Matter Virtual Device (MVD) ให้ MVD เป็นเครื่องมือเดสก์ท็อป Linux หรือ macOS แบบสแตนด์อโลนที่มีน้ำหนักเบา ซึ่งจำลองอุปกรณ์ Matter เสมือนจริงประเภทต่างๆ และมีอินเทอร์เฟซผู้ใช้แบบกราฟิกเพื่อควบคุมและแสดงสถานะของอุปกรณ์ Matter เสมือนจริง
MVD ไม่ได้ใช้บลูทูธพลังงานต่ำ (BLE) หรือ Thread® เพื่อเข้าร่วมเครือข่าย Matter ต่างจากอุปกรณ์ Matter จริง แต่จะใช้การเชื่อมต่อเครือข่าย Wi-Fi ที่มีอยู่ของเครื่องโฮสต์ซึ่งใช้ Linux หรือ macOS แทน
เมื่อเทียบกับเครื่องมืออื่นๆ
MVD แตกต่างจาก Virtual Device Controller (VDC) ตรงที่เป็นโซลูชันแบบสแตนด์อโลน ซึ่งรวมอุปกรณ์เสมือนเข้ากับ UI สำหรับการควบคุม ในทางตรงกันข้าม VDC ใช้เพื่อควบคุมอุปกรณ์ Matter เสมือนแยกต่างหาก เช่น อุปกรณ์ที่เราสร้างใน Matter Virtual Device Development Environment (MVD-DE)
คุณอาจเคยทํางานกับ MVD-DE codelab อยู่แล้ว ใน Codelab นี้ คุณจะได้สร้างอุปกรณ์เสมือนประเภทเดียว ซึ่งเป็นหลอดไฟอัจฉริยะ ในทางตรงกันข้าม MVD มีอุปกรณ์เสมือนจริงที่สร้างขึ้นล่วงหน้าหลายแบบและมี UI แบบรวมเพื่อเรียกใช้และควบคุมอุปกรณ์เสมือนจริงเหล่านั้น
MVD | VDC | MVD-DE (Codelab) | |
---|---|---|---|
จำลองอุปกรณ์ Matter | |||
ควบคุมอุปกรณ์ Matter ที่จำลอง | |||
ความทุ่มเทในการพัฒนา | |||
ดาวน์โหลด | น้อยกว่า 100 MB | 9 GB | 20 GB |
อุปกรณ์ที่รองรับ
MVD รองรับMatterประเภทอุปกรณ์ต่อไปนี้
Matter ประเภทอุปกรณ์ | คลัสเตอร์แอปพลิเคชัน | ประเภทระบบนิเวศในบ้าน |
---|---|---|
เครื่องฟอกอากาศ |
0x0202 0x0006 0x0071 |
เครื่องฟอกอากาศ |
เซ็นเซอร์คุณภาพอากาศ |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
เซ็นเซอร์ |
วิดีโอเพลเยอร์พื้นฐาน |
0x0006 0x0506 0x0509 |
ทีวี |
หลอดไฟปรับอุณหภูมิสี |
0x0300 0x0008 0x0006 |
เบา |
เซ็นเซอร์ตรวจจับการสัมผัส |
0x0045 |
เซ็นเซอร์ |
หรี่ไฟได้ |
0x0008 0x0006 |
เบา |
ล็อกประตู |
0x0101 |
ล็อก |
ไฟสีแบบขยาย |
0x0300 0x0008 0x0006 |
เบา |
พัดลม |
0x0202 0x0006 |
Fan |
เซ็นเซอร์การไหล |
0x0404 |
เซ็นเซอร์ |
สวิตช์ทั่วไป |
0x003b |
เปลี่ยน |
เซ็นเซอร์วัดความชื้น |
0x0405 |
เซ็นเซอร์ |
เซ็นเซอร์แสง |
0x0400 |
เซ็นเซอร์ |
เซ็นเซอร์ตรวจจับการมีคนอยู่ |
0x0406 |
เซ็นเซอร์ |
ไฟเปิด/ปิด |
0x0008 0x0006 |
เบา |
สวิตช์เปิด/ปิดไฟ |
0x0006 |
เปลี่ยน |
หน่วยปลั๊กอินเปิด/ปิด |
0x0008 0x0006 |
Outlet |
เซ็นเซอร์แรงดัน |
0x0403 |
เซ็นเซอร์ |
ปั๊ม |
0x0006 0x0200 0x0402 0x0403 0x0404 |
ปั๊มน้ำ |
หุ่นยนต์ดูดฝุ่น |
0x0054 0x0055 0x0061 |
เครื่องดูดฝุ่น |
เครื่องปรับอากาศในห้องพัก |
0x0006 0x0201 0x0202 |
Ac |
สัญญาณเตือนควันและคาร์บอนมอนอกไซด์ |
0x005C |
ควัน |
เซ็นเซอร์อุณหภูมิ |
0x0402 |
เซ็นเซอร์ |
ตัวควบคุมอุณหภูมิ |
0x0201 |
ตัวควบคุมอุณหภูมิ |
อุปกรณ์ตกแต่งหน้าต่าง |
0x0102 |
ม่าน |
ติดตั้ง MVD
MVD ทำงานบนเครื่องที่ใช้โปรเซสเซอร์ x86 64 บิตที่ใช้ Debian (11 ขึ้นไป), Ubuntu (20.04 ขึ้นไป) หรือ macOS
Linux
ดาวน์โหลดแพ็กเกจ MVD Debian (.deb)
ดาวน์โหลดไฟล์ลายเซ็น ASCII ที่เข้ารหัส (.asc)
จากนั้นเรียกใช้ dpkg
เพื่อติดตั้งแพ็กเกจ MVD
Debian (.deb)
sudo dpkg -i mvd_1.5.0_amd64.deb
macOS
ดาวน์โหลดไฟล์ DMG ของ MVD (macOS x86)
ดาวน์โหลดไฟล์ dmg ของ MVD (ARM64 M1)
จากนั้นดับเบิลคลิกไฟล์ 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
กำหนดค่าอุปกรณ์
หน้าจอหลักจะปรากฏขึ้นเมื่อเปิดใช้งานและให้คุณกำหนดค่าอุปกรณ์เสมือนได้ ดังนี้
- ประเภทอุปกรณ์: เลือกประเภทอุปกรณ์ (เช่น หลอดไฟ สวิตช์ เซ็นเซอร์ และอื่นๆ)
- ชื่ออุปกรณ์: ตั้งชื่ออุปกรณ์ให้ใช้งานง่าย
- ตัวแยก: ตัวเลข 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: แสดงคิวอาร์โค้ดที่ใช้สำหรับการจัดเตรียม
- รีบูต: รีสตาร์ทอุปกรณ์เสมือน อุปกรณ์ถูกตัดการเชื่อมต่อจากเครือข่ายชั่วคราว
- รีเซ็ต: รีเซ็ตอุปกรณ์ปัจจุบันเป็นค่าเริ่มต้นและล้างสถานะทั้งหมด ซึ่งรวมถึงการจัดเตรียม สถานะการควบคุมปัจจุบัน และอื่นๆ
- ลบ: ทำลายอุปกรณ์และกลับไปที่หน้าจอสร้างอุปกรณ์
เตรียมอุปกรณ์ให้พร้อมใช้งาน
อุปกรณ์จะเรียกเก็บค่าคอมมิชชันได้ทันทีที่สร้าง
ข้อกําหนดเบื้องต้นในการเตรียมอุปกรณ์มีดังนี้
คุณต้องมีโปรเจ็กต์ใน 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 หรือวิธีที่เราปรับปรุงประสบการณ์การใช้งานเครื่องมือของคุณได้ โปรดกรอกแบบฟอร์มความคิดเห็น
คุณเปิดแบบฟอร์มได้จากปุ่มความคิดเห็น
ที่มุมขวาบนของหน้าต่าง หรือคลิกปุ่มด้านล่าง