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 uỷ quyền bằng Google Home app (GHA) và được kiểm soát bằng GHA và Google Assistant, giống như các thiết bị Matter thực.
Đối với các nhà phát triển ứng dụng và những bên khác cần kiểm thử hoặc mô phỏng thiết bị Matter ảo nhưng thiếu tài nguyên để tạo thiết bị Matter thực hoặc ảo của riêng mình, Google cung cấp Matter Virtual Device (MVD). MVD là một công cụ máy tính Linux hoặc macOS độc lập nhẹ, mô phỏng nhiều loại thiết bị Matter ảo, đồng thời 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ư một thiết bị Matter thực, MVD không dựa vào Bluetooth® năng lượng thấp (BLE) hoặc Thread® để kết hợp vải Matter. Thay vào đó, hệ thống sẽ sử dụng kết nối mạng Wi-Fi hiện có của máy chủ lưu trữ Linux hoặc máy macOS để vận hành.
So sánh 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 một thiết bị ảo với một 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, chẳng hạn như thiết bị mà chúng ta tạo trong Matter Virtual Device Development Environment (MVD-DE).
Có thể bạn đã từng tham gia lớp học lập trình MVD-DE. Trong lớp học lập trình này, bạn sẽ tạo một loại thiết bị ảo duy nhất, đó là bóng đèn thông minh. Ngược lại, MVD chứa một số thiết bị ảo tạo sẵn khác và có một giao diện người dùng tích hợp để chạy và kiểm soát các thiết bị đó.
MVD | VDC | MVD-DE (Lớp học lập trình) | |
---|---|---|---|
Mô phỏng thiết bị theo chuẩn Matter | |||
Điều khiển thiết bị theo chuẩn Matter được mô phỏng | |||
Cần nỗ lực phát triển | |||
Tải xuống | dưới 100 MB | 9 GB | 20 GB |
Thiết bị được hỗ trợ
MVD hỗ trợ các loại thiết bị Matter sau:
Matter loại thiết bị | Cụm ứng dụng | Loại hệ sinh thái nhà |
---|---|---|
Trình phát video cơ bản |
0x0006 0x0506 0x0509 |
TV |
Đèn đo nhiệt độ màu |
0x0300 0x0008 0x0006 |
Nhỏ |
Cảm biến tiếp xúc |
0x0045 |
Sensor |
Ánh sáng có thể điều chỉnh độ sáng |
0x0008 0x0006 |
Nhỏ |
Khoá cửa |
0x0101 |
Khoá |
Ánh sáng màu mở rộng |
0x0300 0x0008 0x0006 |
Nhỏ |
Người hâm mộ |
0x0202 0x0006 |
Quạt |
Cảm biến lưu lượng |
0x0404 |
Sensor |
Chuyển đổi chung |
0x003b |
Switch |
Cảm biến độ ẩm |
0x0405 |
Sensor |
Cảm biến ánh sáng |
0x0400 |
Sensor |
Cảm biến phát hiện người trong nhà |
0x0406 |
Sensor |
Bật/tắt đèn |
0x0008 0x0006 |
Nhỏ |
Công tắc đèn bật/tắt |
0x0006 |
Switch |
Bộ cắm bật/tắt |
0x0008 0x0006 |
Ổ cắm |
Cảm biến áp suất |
0x0403 |
Sensor |
Bơm |
0x0006 0x0200 0x0402 0x0403 0x0404 |
Không áp dụng |
Rô bốt hút bụi |
0x0054 0x0055 0x0061 |
Hút bụi |
Điều hoà không khí trong phòng |
0x0006 0x0201 0x0202 |
Ac |
Chuông báo khói khí CO |
0x005C |
Khói |
Chuông báo khói khí CO |
0x005C |
Khói |
Cảm biến nhiệt độ |
0x0402 |
Sensor |
Máy điều nhiệt |
0x0201 |
Máy điều nhiệt |
Bọc cửa sổ |
0x0102 |
Mành cửa |
Cài đặt MVD
MVD chạy trên các máy xử lý 64 bit x86 chạy Debian (11 trở lên), Ubuntu (20.04 trở lên) hoặc macOS.
Linux
Tải gói MVD Debian (.deb) xuống
Tải tệp chữ ký ASCII có giáp (.asc) xuống
Sau đó, chạy dpkg
để cài đặt gói Debian (.deb) MVD:
sudo dpkg -i mvd_1.4.0_amd64.deb
macOS
Tải tệp gây hại MVD (macOS x86) xuống
Tải tệp gây hại 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](https://developers.home.google.com/static/tools/images/matter-virtual-device-macos-install.png?authuser=7&hl=vi)
Kiểm tra việ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 đang được một quy trình khác trên máy tính của bạn sử dụng, hãy nhớ giải phóng cổng đó.
Cách 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ể dừng bất kỳ quy trình nào bằng cách sử dụng cổng TCP 33000 bằng một lệnh duy nhất:
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ừ cửa sổ dòng lệnh:
mvd
macOS
Trên macOS, hãy sử dụng Launchpad để mở MVD hoặc chạy MVD trên cửa sổ dòng lệnh:
cd /Applications
open mvd.app
Định cấu hình thiết bị của bạn
Màn hình chính xuất hiện khi khởi động và cho phép bạn định cấu hình thiết bị ảo:
- Device Type (Loại thiết bị): Chọn loại thiết bị (ví dụ: Light, Switch, Cảm biến, v.v.).
- Tên thiết bị: Đặt tên thân thiện với người dùng cho thiết bị.
- Phân biệt: Một số 12 bit dùng để phân biệt giữa nhiều quảng cáo trên thiết bị có thể trả phí. (Mặc định:
3840
). - Cổng Matter: Cổng để Matter vận hành 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ỉ hỗ trợ mã nhà cung cấp thử nghiệm
0xFFF1
. - Mã sản phẩm: Chỉ hỗ trợ các mã sản phẩm thử nghiệm từ
0x8000
đến0x801F
.
Định cấu hình tường lửa của bạn
Linux
Nếu bạn có tường lửa đang chạy trong máy tính, hãy tắt tường lửa đó hoặc cho phép kết nối TCP/UDP đến trên cổng Matter.
Để xem các quy tắc tường lửa netfilter đang hoạt động hiện tại, hãy chạy:
sudo iptables -L -n
Nếu đang sử dụng `ufw`, bạn có thể tắt tính năng này bằng:
sudo ufw disable
Bạn có thể bật lại tính năng này bằng:
sudo ufw enable
macOS
Cách định cấu hình hoặc tắt tường lửa trên macOS:
- Chuyển đến trình đơn Apple rồi chọn System Settings (Cài đặt hệ thống).
- Nhấp vào Mạng trong danh sách thanh bên.
- Nhấp vào Firewall (Tường lửa).
- Gạt nút chuyển Tường lửa sang vị trí Tắt.
Chạy thiết bị
Sau khi thiết bị được định cấu hình, hãy nhấp vào Tạo thiết bị. Khi thiết bị được tạo, màn hình Controller sẽ xuất hiện. Tuỳ thuộc vào loại thiết bị đã chọn, bạn có thể thấy một hoặc nhiều chế độ điều khiển sau:
- Bật/tắt: Phổ biến với phần lớn các thiết bị.
- Cấp độ: Ví dụ: đèn có thể có thanh trượt mức độ để điều chỉnh độ sáng.
- Màu: Ví dụ như đèn màu có thể có chế độ điều khiển này.
- Số người lưu trú: Cảm biến có người lưu trú cung cấp chế độ kiểm soát này để mô phỏng trạng thái có người ở nhà hoặc không có người.
Tất cả thiết bị ảo đều có các chế độ kiểm soát sau:
- QRCode: Cho biết mã QR dùng để vận hành.
- Khởi động lại: Khởi động lại thiết bị ảo. Thiết bị sẽ ngắt kết nối với mạng trong giây lát.
- Đặt lại: Đặt lại thiết bị hiện tại về trạng thái ban đầu và xoá mọi trạng thái, bao gồm cả trạng thái vận hành, trạng thái điều khiển hiện tại, v.v.
- Xoá: Huỷ bỏ thiết bị và quay lại màn hình Tạo thiết bị.
Ủy quyền cho thiết bị của bạn
Thiết bị có thể hoạt động ngay sau khi tạo.
Bạn cần đáp ứng một số điều kiện tiên quyết để vận hành thiết bị:
Bạn phải có một dự án trong Google Home Developer Console. Dự án này phải chứa một yêu cầu tích hợp Matter có cùng tổ hợp VID/PID với tổ hợp VID/PID mà bạn đã sử dụng để thiết lập thiết bị ảo. Vui lòng xem hướng dẫn tạo dự án để biết thông tin chi tiết.
Bạn phải có một 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ột mạng Wi-Fi với trung tâm.
Máy chủ phải được kết nối với mạng Wi-Fi.
Để vận hành thiết bị bằng GHA, hãy nhấp vào QRCode để hiển thị mã QR của thiết bị, sau đó làm theo hướng dẫn trong bài viết Ghép nối thiết bị Matter để giải thích cách tích hợp thiết bị Matter bằng GHA. Bạn cũng có thể kích hoạt phí cho thiết bị bằng cách dùng Google Home Sample App for Matter.
Hãy xem Matter Primer của chúng tôi để tìm hiểu cách hoạt động của tính năng Ủy quyền Matter.
Control the device
Sau khi kích hoạt 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 thông qua 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 của 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ử với thiết bị
Để kiểm thử bằng Assistant, bạn nên sử dụng trình mô phỏng cách phát âm, chẳng hạn như Tiện ích Google Home cho Mã VS 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 details (Thông tin về thiết bị) hiển thị 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ị đã chọn.
- Đối tượng phân biệt: Người phân biệt thiết bị hiện tại.
- Mã nhà cung cấp: Mã nhà cung cấp thiết bị hiện tại.
- 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).
- Cổng Matter: Cổng mà thiết bị hiện tại dùng để giao tiếp thông qua mạng IP.
- Pass Code: Mã PIN dùng để cấp phép cho thiết bị thông qua mạng.
- Configuration Folder (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ề phí hoa hồng: Cho biết(các) loại vải mà thiết bị đã kết nối và mã nút của thiết bị tương ứng.
Xem nhật ký thiết bị
Nếu bạn 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ị trong thẻ Nhật ký thiết bị.
Dừng thiết bị
Để dừng và huỷ bỏ thiết bị, hãy nhấp vào Delete (Xoá).
Chấm dứt ứng dụng
Thao tác đóng cửa sổ điều khiển sẽ huỷ bỏ thiết bị và chấm dứt ứng dụng MVD. Nếu chạy từ thiết bị đầu cuối, bạn cũng có thể chấm dứt ứng dụng bằng cách nhập Ctrl-C vào cửa sổ 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 liên hệ của Nhóm hỗ trợ Google.
Nhấp vào nút trợ giúp
ở góc trên bên phải cửa sổ sẽ đưa bạn đến trang này.Báo cáo lỗi
Nếu cho rằng đã phát hiện lỗi trong MVD, bạn có thể báo cáo lỗi bằng cách nhấp vào nút Issue (Vấn đề) ở góc trên bên phải cửa sổ.
Gửi phản hồi
Để gửi suy nghĩ về điều bạn thích về MVD hoặc cách chúng tôi có thể cải thiện trải nghiệm của bạn với 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ể khởi chạy biểu mẫu qua nút phản hồi
ở góc trên bên phải cửa sổ hoặc bằng cách nhấp vào nút bên dưới.