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

กรณี SDK ของอุปกรณ์

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

ตาราง: การเปรียบเทียบเครื่องมือ 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
เซ็นเซอร์
สวิตช์ทั่วไป 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 โดยทำดังนี้

ติดตั้ง 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

กำหนดค่าอุปกรณ์

หน้าจอหลักจะปรากฏขึ้นเมื่อเปิดใช้งานและช่วยให้คุณกำหนดค่าอุปกรณ์เสมือนได้:

  • ประเภทอุปกรณ์: เลือกประเภทอุปกรณ์ (เช่น หลอดไฟ สวิตช์ เซ็นเซอร์ และอื่นๆ)
  • ชื่ออุปกรณ์: ตั้งชื่ออุปกรณ์ที่ใช้งานง่าย
  • 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 มีดังนี้

  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 ได้อีกด้วย

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

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

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