Thiết bị ảo quan trọng

Thiết bị ảo Matter rất hữu ích cho việc phát triển và kiểm thử các giải pháp Matter, đồng thời có thể được thiết lập bằng Google Home app (GHA) và điều khiển bằng GHAGoogle Assistant, giống như các thiết bị Matter thực.

Đối với nhà phát triển ứng dụng và những người cần kiểm thử hoặc mô phỏng một thiết bị ảo Matter nhưng không có đủ tài nguyên để tạo thiết bị Matter vật lý hoặc ảo của riêng mình, Google cung cấp Matter Virtual Device (MVD). MVD là một công cụ độc lập, gọn nhẹ dành cho máy tính chạy Linux hoặc macOS, mô phỏng nhiều loại thiết bị Matter ảo và cung cấp giao diện người dùng đồ hoạ để kiểm soát và hiển thị trạng thái của thiết bị Matter ảo.

Không giống như thiết bị Matter vật lý, MVD không dựa vào Bluetooth® năng lượng thấp (BLE) hoặc Thread® để tham gia một mạng Matter. Thay vào đó, thiết bị sẽ sử dụng kết nối mạng Wi-Fi hiện có của máy Linux hoặc macOS để thiết lập.

So với các công cụ khác

MVD khác với Virtual Device Controller (VDC) ở chỗ đây là một giải pháp độc lập, kết hợp thiết bị ảo với giao diện người dùng để kiểm soát thiết bị đó. Ngược lại, VDC được dùng để điều khiển một thiết bị Matter ảo riêng biệt.

MVD chứa một số thiết bị ảo được tạo sẵn và có giao diện người dùng tích hợp để chạy cũng như kiểm soát các thiết bị đó.

Thiết bị được hỗ trợ

MVD hỗ trợ các loại thiết bị Matter sau:

Bảng: Matter các loại thiết bị được hỗ trợ cho MVD
Matter Loại thiết bị Cụm Ứng dụng Loại hệ sinh thái nhà
Máy lọc không khí 0x0202
0x0006
0x0071
Máy lọc không khí
Cảm biến chất lượng không khí 0x005b
0x0402
0x0405
0x040c
0x040d
0x042a
0x042d
0x042e
Cảm biến
Trình phát video cơ bản 0x0006
0x0506
0x0509
Truyền hình
Đèn có nhiệt độ màu 0x0300
0x0008
0x0006
Light
Cảm biến tiếp xúc 0x0045
Cảm biến
Đèn có thể điều chỉnh độ sáng 0x0008
0x0006
Light
Thiết bị có thể điều chỉnh độ sáng 0x0006
0x0008
Ổ cắm
Máy rửa bát 0x0006
0x0059
0x0056
0x0060
Máy rửa bát
Khoá cửa 0x0101
Khoá
Đèn có dải màu mở rộng 0x0300
0x0008
0x0006
Light
Quạt 0x0202
0x0006
Fan
Cảm biến lưu lượng 0x0404
Cảm biến
Generic Switch 0x003b
Switch
Cảm biến độ ẩm 0x0405
Cảm biến
Máy giặt 0x0006
0x0051
0x0053
0x0056
0x0060
Máy giặt
Cảm biến ánh sáng 0x0400
Cảm biến
Cảm biến phát hiện người trong nhà 0x0406
Cảm biến
Bật/Tắt đèn 0x0008
0x0006
Light
Công tắc đèn bật/tắt 0x0006
Switch
Thiết bị bổ trợ bật/tắt 0x0008
0x0006
Ổ cắm
Cảm biến áp suất 0x0403
Cảm biến
Bơm 0x0006
0x0200
0x0402
0x0403
0x0404
Pump
Rô-bốt hút bụi 0x0054
0x0055
0x0061
Vacuum
Máy điều hoà không khí trong phòng 0x0006
0x0201
0x0202
Máy điều hoà không khí
Chuông báo khói và khí CO 0x005C
Thiết bị phát hiện CO2
Thiết bị phát hiện khói
Cảm biến nhiệt độ 0x0402
Cảm biến
Máy điều nhiệt 0x0201
Máy điều nhiệt
Phụ kiện cho cửa sổ 0x0102
Rèm cửa

Cài đặt MVD

MVD chạy trên các máy có bộ xử lý x86 64 bit chạy Debian (13 Trixie trở lên), Ubuntu (20.04 Noble Numbat trở lên) hoặc macOS.

Linux

Tải gói MVD Debian (.deb) xuống

Tải tệp chữ ký ASCII được mã hoá (.asc) xuống

Sau đó, hãy chạy dpkg để cài đặt gói Debian (.deb) MVD:

sudo dpkg -i mvd_1.6.0_amd64.deb

macOS

Tải tệp dmg MVD (macOS x86) xuống

Tải tệp dmg MVD (ARM64 M1) xuống

Sau đó, nhấp đúp vào tệp dmg để mở cửa sổ cài đặt.

Để hoàn tất quá trình cài đặt, hãy chọn và kéo biểu tượng mvd vào thư mục Applications:

Cài đặt macOS

Kiểm tra mức sử dụng cổng

Mô-đun bộ điều khiển trong MVD sử dụng cổng TCP 33000 để thực hiện các lệnh gọi RPC đến thiết bị ảo. Vì vậy, nếu cổng này đã được một quy trình khác sử dụng trên máy tính, hãy nhớ giải phóng cổng này.

Để xem có quy trình nào đang sử dụng cổng 33000 hay không:

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

Bạn có thể huỷ mọi quy trình bằng cổng TCP 33000 chỉ bằng một lệnh:

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

Chạy MVD

Linux

Trên Linux, hãy chạy MVD từ thư mục ứng dụng hoặc từ thiết bị đầu cuối:

mvd

macOS

Trên macOS, hãy dùng Launchpad để mở MVD hoặc chạy MVD từ thiết bị đầu cuối:

cd /Applications
open mvd.app

Định cấu hình thiết bị

Màn hình chính sẽ xuất hiện khi bạn chạy ứng dụng và cho phép bạn định cấu hình một thiết bị ảo:

  • Loại thiết bị: Chọn loại thiết bị (ví dụ: Đèn, Công tắc, Cảm biến, v.v.).
  • Tên thiết bị: Đặt cho thiết bị một tên thân thiện với người dùng.
  • Phân biệt: Một số có 12 bit được dùng để phân biệt giữa nhiều quảng cáo thiết bị có thể tính phí hoa hồng. (Mặc định: 3840).
  • Matter Cổng: Cổng để Matter thiết lập và giao tiếp thông qua mạng IP. Theo mặc định, Matter sử dụng cổng TCP/UDP 5540, nhưng bạn có thể định cấu hình thiết bị ảo để sử dụng một cổng khác, miễn là không có dịch vụ nào khác đang sử dụng cổng đó.
  • Mã nhà cung cấp: Chỉ mã nhà cung cấp thử nghiệm 0xFFF1 được hỗ trợ.
  • Mã sản phẩm: Chỉ hỗ trợ mã sản phẩm kiểm thử 0x8000 đến 0x801F.

Màn hình cấu hình Thiết bị ảo

Định cấu hình tường lửa

Linux

Nếu bạn đang chạy tường lửa trên máy tính, hãy tắt tường lửa hoặc cho phép các kết nối TCP/UDP đến trên cổng Matter.

Để xem các quy tắc tường lửa netfilter hiện đang hoạt động, hãy chạy:

sudo iptables -L -n

Nếu đang dùng `ufw`, bạn có thể tắt bằng lệnh:

sudo ufw disable

Bạn có thể bật lại tính năng này bằng cách:

sudo ufw enable

macOS

Cách định cấu hình hoặc tắt tường lửa trên macOS:

  1. Chuyển đến trình đơn  Apple rồi chọn System Settings (Cài đặt hệ thống).
  2. Nhấp vào Mạng trong danh sách ở thanh bên.
  3. Nhấp vào Tường lửa.
  4. Chuyển nút Tường lửa sang vị trí Tắt.

Chạy thiết bị

Sau khi định cấu hình thiết bị, hãy nhấp vào Tạo thiết bị. Khi thiết bị được tạo, màn hình Controller (Bộ điều khiển) sẽ xuất hiện. Tuỳ thuộc vào loại thiết bị mà bạn đã chọn, bạn có thể thấy một hoặc nhiều chế độ kiểm soát sau đây:

  • Bật/Tắt: Thường có trên hầu hết các thiết bị.
  • Cấp độ: Ví dụ: đèn có thể có thanh trượt cấp độ để điều chỉnh độ sáng.
  • Màu sắc: Ví dụ: đèn màu có thể có chế độ điều khiển này.
  • Số người: Cảm biến số người cung cấp chế độ kiểm soát này để mô phỏng trạng thái có người hoặc không có người.

Tất cả thiết bị ảo đều có các chế độ điều khiển sau:

  • QRCode: Hiện mã QR dùng để thiết lập.
  • Khởi động lại: Khởi động lại thiết bị ảo. Thiết bị tạm thời bị ngắt kết nối khỏi mạng.
  • Đặt lại: Đặt lại thiết bị hiện tại về trạng thái ban đầu và xoá tất cả trạng thái, bao gồm cả trạng thái thiết lập, trạng thái điều khiển hiện tại, v.v.
  • Xoá: Xoá thiết bị và quay lại màn hình Tạo thiết bị.

Màn hình điều khiển thiết bị ảo

Uỷ quyền thiết bị

Bạn có thể đưa thiết bị vào hoạt động ngay sau khi tạo.

Có một số điều kiện tiên quyết để đưa thiết bị vào hoạt động:

  • Bạn phải có một dự án trong Google Home Developer Console. Dự án này phải chứa một chế độ tích hợp Matter có cùng tổ hợp VID/PID với tổ hợp mà bạn đã dùng khi thiết lập thiết bị ảo. Hãy xem hướng dẫn tạo dự án để biết thông tin chi tiết.

  • Bạn phải có Google Nest Hub hỗ trợ Matter

  • Bạn phải có điện thoại Android chạy Android 8.1 trở lên và đã cài đặt GHA.

  • Điện thoại Android phải được kết nối với cùng mạng Wi-Fi với trung tâm.

  • Máy chủ lưu trữ phải được kết nối với mạng Wi-Fi.

Để thiết lập thiết bị bằng GHA, hãy nhấp vào QRCode (Mã QR) để hiển thị mã QR của thiết bị, sau đó làm theo hướng dẫn trong phần Ghép nối thiết bị Matter. Phần này giải thích cách thiết lập thiết bị Matter bằng GHA. Bạn cũng có thể thiết lập thiết bị bằng Google Home Sample App for Matter.

Xem Matter Hướng dẫn cơ bản của chúng tôi để tìm hiểu cách hoạt động của Matter quy trình Thiết lập.

Điều khiển thiết bị

Sau khi thiết lập một thiết bị ảo, bạn có thể điều khiển thiết bị đó bằng Ứng dụng Google Home hoặc Trợ lý Google bằng giọng nói. Bạn có thể:

  • Điều khiển thiết bị thông qua GHA hoặc Assistant trong khi theo dõi các thay đổi về trạng thái trên thiết bị ảo, hoặc
  • Điều khiển thiết bị bằng Sample App for Matter trong khi theo dõi các thay đổi về trạng thái trên thiết bị ảo,hoặc
  • Kiểm soát trạng thái thiết bị thông qua chính MVD trong khi theo dõi các thay đổi về trạng thái trong GHA hoặc Assistant.

Kiểm thử bằng thiết bị

Để kiểm thử bằng Assistant, bạn nên sử dụng một trình mô phỏng câu lệnh như Tiện ích Google Home cho VS Code hoặc Trình bổ trợ Google Home cho Android Studio.

Xem thông tin chi tiết về thiết bị

Màn hình Device detail (Thông tin chi tiết về thiết bị) cho biết thông tin chi tiết về thiết bị:

  • Tên: Tên thân thiện được đặt cho thiết bị.
  • Loại thiết bị: Loại thiết bị được chọn.
  • Thuộc tính phân biệt: Thuộc tính phân biệt hiện tại của thiết bị.
  • Mã nhận dạng nhà cung cấp: Mã nhận dạng hiện tại của nhà cung cấp thiết bị.
  • Mã sản phẩm: Mã sản phẩm hiện tại của thiết bị.
  • Cổng RPC: Cổng RPC mà thiết bị giao tiếp với bộ điều khiển (GUI).
  • Matter Cổng: Cổng mà thiết bị hiện tại dùng để giao tiếp qua mạng IP.
  • Mã truy cập: Mã PIN dùng để thiết lập thiết bị thông qua mạng.
  • Thư mục cấu hình: Thư mục mà thiết bị ảo lưu trữ cấu hình.
  • Thông tin về hoa hồng: Cho biết(các) nhóm mà thiết bị đã tham gia và mã nhận dạng nút của thiết bị trong nhóm.

Xem nhật ký thiết bị

Nếu bạn khởi chạy MVD từ thiết bị đầu cuối, thì đầu ra nhật ký sẽ xuất hiện trên stdout. Bạn cũng có thể xem nhật ký thiết bị trên thẻ Nhật ký thiết bị.

Dừng thiết bị

Để dừng và xoá thiết bị, hãy nhấp vào Xoá.

Chấm dứt ứng dụng

Việc đóng cửa sổ điều khiển sẽ huỷ thiết bị và chấm dứt ứng dụng MVD. Nếu khởi chạy từ dòng lệnh, bạn cũng có thể chấm dứt ứng dụng bằng cách nhập Ctrl-C trong dòng lệnh.

Nhận trợ giúp

Để được trợ giúp về MVD, báo cáo lỗi hoặc yêu cầu một tính năng mới, hãy liên hệ với người hỗ trợ của Google mà bạn biết.

Khi nhấp vào nút trợ giúp ở góc trên cùng bên phải của cửa sổ, bạn sẽ được chuyển đến trang này.

Báo cáo lỗi

Nếu cho rằng bạn đã tìm thấy lỗi trong MVD, bạn có thể báo cáo lỗi bằng cách nhấp vào nút Vấn đề ở góc trên cùng bên phải của cửa sổ.

Gửi phản hồi

Để gửi ý kiến về những điểm bạn thích ở MVD hoặc cách chúng tôi có thể cải thiện trải nghiệm của bạn khi sử dụng công cụ này, hãy hoàn thành Biểu mẫu phản hồi của chúng tôi.

Bạn có thể mở biểu mẫu này bằng cách nhấp vào nút phản hồi ở góc trên bên phải của cửa sổ hoặc bằng cách nhấp vào nút bên dưới.

Gửi ý kiến phản hồi cho chúng tôi