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

Device SDK

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 แบบรวมเพื่อเรียกใช้และควบคุมอุปกรณ์เหล่านั้น

ตาราง: การเปรียบเทียบเครื่องมือสำหรับอุปกรณ์ Matter เสมือน
MVD VDC MVD-DE (Codelab)
จำลองอุปกรณ์ Matter
ควบคุมอุปกรณ์ Matter ที่จำลอง
ความทุ่มเทในการพัฒนา
ดาวน์โหลด น้อยกว่า 100 MB 9 GB 20 GB

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

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

ตาราง: ประเภทอุปกรณ์ Matter ที่รองรับสำหรับ MVD
Matter ประเภทอุปกรณ์ คลัสเตอร์แอปพลิเคชัน ประเภทระบบนิเวศในบ้าน
วิดีโอเพลเยอร์พื้นฐาน 0x0006
0x0506
0x0509
ทีวี
หลอดไฟปรับอุณหภูมิสี 0x0300
0x0008
0x0006
เบา
เซ็นเซอร์ตรวจจับการสัมผัส 0x0045
Sensor
หลอดไฟหรี่ไฟได้ 0x0008
0x0006
เบา
ล็อกประตู 0x0101
ล็อก
ไฟสีแบบขยาย 0x0300
0x0008
0x0006
เบา
พัดลม 0x0202
0x0006
Fan
เซ็นเซอร์การไหล 0x0404
Sensor
สวิตช์ทั่วไป 0x003b
เปลี่ยน
เซ็นเซอร์วัดความชื้น 0x0405
Sensor
เซ็นเซอร์แสง 0x0400
Sensor
เซ็นเซอร์ตรวจจับการมีคนอยู่ 0x0406
Sensor
ไฟเปิด/ปิด 0x0008
0x0006
เบา
สวิตช์เปิด/ปิดไฟ 0x0006
เปลี่ยน
หน่วยปลั๊กอินเปิด/ปิด 0x0008
0x0006
Outlet
เซ็นเซอร์แรงดัน 0x0403
Sensor
ปั๊ม 0x0006
0x0200
0x0402
0x0403
0x0404
ปั๊มน้ำ
หุ่นยนต์ดูดฝุ่น 0x0054
0x0055
0x0061
เครื่องดูดฝุ่น
เครื่องปรับอากาศในห้องพัก 0x0006
0x0201
0x0202
Ac
สัญญาณเตือนควันและคาร์บอนมอนอกไซด์ 0x005C
ควัน
เซ็นเซอร์อุณหภูมิ 0x0402
Sensor
ตัวควบคุมอุณหภูมิ 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.4.0_amd64.deb

macOS

ดาวน์โหลดไฟล์ DMG ของ MVD (macOS x86)

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

จากนั้นดับเบิลคลิกไฟล์ 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. คลิกไฟร์วอลล์
  4. สลับสวิตช์ไฟร์วอลล์ไปที่ตำแหน่งปิด

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

หลังจากกำหนดค่าอุปกรณ์แล้ว ให้คลิกสร้างอุปกรณ์ เมื่อสร้างอุปกรณ์แล้ว หน้าจอตัวควบคุมจะปรากฏขึ้น คุณอาจเห็นตัวควบคุมอย่างน้อย 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 หรือวิธีที่เราปรับปรุงประสบการณ์การใช้งานเครื่องมือของคุณได้ โปรดกรอกแบบฟอร์มความคิดเห็น

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

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