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

SDK ของอุปกรณ์

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

ตาราง: การเปรียบเทียบเครื่องมือเสมือนของ 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
เซ็นเซอร์
ไฟที่หรี่ได้ 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

ตรวจสอบการใช้งานพอร์ต

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

หน้าจอการควบคุม
อุปกรณ์เสมือน

ค่าคอมมิชชันอุปกรณ์ของคุณ

อุปกรณ์จะใช้งานได้ทันทีที่สร้าง

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

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

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