Thiết bị ảo quan trọng

SDK thiết bị

Các 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. Các thiết bị này có thể được ủy quyền bằng cách sử dụng Google Home app (GHA), đồng thời được điều khiển bằng GHAGoogle Assistant, giống như các thiết bị Matter thực tế.

Đối với các nhà phát triển ứng dụng và những người 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 để xây dựng thiết bị Matter thực tế 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 để bàn Linux hoặc macOS độc lập nhẹ, mô phỏng nhiều loại thiết bị Matter ảo và cung cấp giao diện người dùng đồ hoạ để điều khiển và hiển thị các trạng thái của thiết bị Matter ảo.

Không giống như 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 nối một kết cấu Matter. Thay vào đó, hệ thống này sử dụng kết nối mạng Wi-Fi hiện có của máy chủ Linux hoặc macOS để chạy thử.

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

MVD khác với Virtual Device Controller (VDC) vì đâ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 tôi xây dựng trong Matter Virtual Device Development Environment (MVD-DE).

Có thể bạn đã từng làm việc với 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 bóng đèn thông minh cho thiết bị ảo. Ngược lại, MVD chứa một số thiết bị ảo tạo sẵn và bao gồm 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ị đó.

Bảng: So sánh công cụ thiết bị Matter ảo
MVD VDC MVD-DE (Lớp học lập trình)
Mô phỏng một 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:

Bảng: Matter loại thiết bị được hỗ trợ cho MVD
Matter loại thiết bị (Các) 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 báo nhiệt độ màu 0x0300
0x0008
0x0006
Nhỏ
Cảm biến tiếp xúc 0x0045
Sensor
Đèn có thể điều chỉnh độ sáng 0x0008
0x0006
Nhỏ
Khoá cửa 0x0101
Khoá
Đèn 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 độ sáng 0x0400
Sensor
Cảm biến có người trong nhà 0x0406
Sensor
Đèn bật/tắt 0x0008
0x0006
Nhỏ
Công tắc bật/tắt đèn 0x0006
Switch
Bộ cắm điện bật/tắt 0x0008
0x0006
Đầu cắm
Cảm biến áp suất 0x0403
Sensor
Bơm 0x0006
0x0200
0x0402
0x0403
0x0404
Không áp dụng
Robot hút bụi 0x0054
0x0055
0x0061
Hút chân không
Điều hoà không khí trong phòng 0x0006
0x0201
0x0202
Ac
Chuông báo khói 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
Che chắn cửa sổ 0x0102
Rèm

Cài đặt MVD

MVD chạy trên các máy có bộ xử lý x86 64 bit 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 (.asc) xuống

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

sudo dpkg -i mvd_1.4.0_amd64.deb

macOS

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

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

Sau đó, hãy 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 đang được một quy trình khác trên máy tính sử dụng, hãy nhớ giải phóng cổng này.

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ể loại bỏ bất kỳ quy trình nào bằ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 trong thư mục ứng dụng của bạn hoặc từ dòng lệnh:

mvd

macOS

Trên macOS, hãy dùng Launchpad để mở MVD hoặc chạy MVD qua 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 chạy 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, Sensor, v.v.).
  • Tên thiết bị: Đặt tên thân thiện với người dùng cho thiết bị.
  • Discriminator: Một số 12 bit dùng để phân biệt giữa nhiều quảng cáo có thể đặt phí hoa hồng trên thiết bị. (Mặc định: 3840).
  • Cổng Matter: Một 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. Tuy nhiên, bạn có thể định cấu hình thiết bị ảo để dùng một cổng khác, miễn là không có dịch vụ nào khác đang dùng cổng đó.
  • Mã nhà cung cấp: Chỉ hỗ trợ mã nhà cung cấp kiểm thử 0xFFF1.
  • Mã sản phẩm: Chỉ hỗ trợ các mã sản phẩm thử nghiệm từ 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 có tường lửa đang chạy trên 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 hiện tại của netfilter, hãy chạy mã:

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

Ngoài ra, 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:

  1. Chuyển tới 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 chuyển Tường lửa sang vị trí Tắt.

Chạy thiết bị của bạn

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 (Bộ điều khiển) 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 thiết bị.
  • Cấp độ: Ví dụ: đèn có thể có thanh trượt cấp độ để đ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 ở nhà cung cấp chế độ điều khiển này để mô phỏng trạng thái có người và không có người.

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

  • QRCode: Cho biết mã QR được dùng để vận hành.
  • Khởi động lại: Khởi động lại thiết bị ảo. Thiết bị bị ngắt kết nố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á tất cả trạng thái, bao gồm cả trạng thái vận hành, trạng thái chế độ đ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ị.

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

Phí hoa hồng cho thiết bị của bạn

Thiết bị có thể chạy phí hoa hồng ngay sau khi tạo.

Có một số điều kiện tiên quyết để chạy thiết bị này:

  • Bạn phải có một dự án trong Google Home Developer Console. Dự án này phải có tích hợp Matter có cùng tổ hợp VID/PID như mã mà bạn đã sử dụng để 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ó 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ạng Wi-Fi như thiết bị trung tâm.

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

Để lệnh cho thiết bị bằng GHA, hãy nhấp vào QRCode để hiện 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, trong đó giải thích cách tích hợp một thiết bị Matter bằng GHA. Bạn cũng có thể đặt phí hoa hồng cho thiết bị bằng cách sử dụng Google Home Sample App for Matter.

Hãy xem MatterPrimer của chúng tôi để tìm hiểu cách hoạt động của quá trình uỷ quyền Matter.

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

Sau khi đặt phí cho 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 cách sử dụ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 trạng thái trong GHA hoặc Assistant.

Kiểm thử với thiết bị

Để kiểm thử với 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 dành cho Mã VS hoặc Trình bổ trợ Google Home dành cho Android Studio.

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

Màn hình Thông tin chi tiết 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 đặt cho thiết bị.
  • Loại thiết bị: Loại thiết bị đã chọn.
  • Nhà phân phối: Trình 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 sử dụng để giao tiếp thông qua mạng IP.
  • Mã mật khẩu: Mã PIN dùng để hoa hồng cho thiết bị 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 phí hoa hồng: Cho biết(các) loại vải mà thiết bị đã nối và mã nút của thiết bị trong kết cấu.

Xem nhật ký thiết bị

Nếu bạn chạy MVD từ thiết bị đầu cuối, đầ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à huỷ thiết bị, hãy nhấp vào 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 khởi 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 dòng lệnh.

Nhận trợ giúp

Để nhận trợ giúp về MVD, để báo cáo lỗi hoặc yêu cầu tính năng mới, hãy liên hệ với bộ phận hỗ trợ của 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 thấy một 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 bên phải của cửa sổ.

Gửi phản hồi

Để gửi ý kiến về những điều 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ể chạy biểu mẫu từ 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.

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