Thiết bị ảo quan trọng

Vấn đề 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 uỷ quyền bằ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 cần kiểm thử hoặc mô phỏng một thiết bị Matter ảo nhưng thiếu tài nguyên để tạo 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 Linux độc lập gọn 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ị trạng thái của thiết bị Matter ảo.

Không giống như thiết bị Matter thực tế, MVD không dựa vào Bluetooth® Low Energy (BLE) hoặc Thread® để kết nối một kết nối Matter. Thay vào đó, máy chủ Linux này sử dụng kết nối mạng Wi-Fi hiện có trên máy chủ Linux để chạy thử nghiệm.

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 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ị chúng tôi xây dựng trong Matter Virtual Device Development Environment (MVD-DE).

Có thể bạn đã từng sử dụng 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 – một bóng đèn thông minh. Ngược lại, MVD chứa một số thiết bị ảo được tích hợp 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 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ợ

Hiện tại, 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ụm ứng dụng Loại hệ sinh thái trong nhà
Đèn đo nhiệt độ màu 0x0300
0x0008
0x0006
Sáng
Đèn có thể điều chỉnh độ sáng 0x0008
0x0006
Sáng
Ánh sáng màu kéo dài 0x0300
0x0008
0x0006
Sáng
Cảm biến có người trong nhà 0x0406
Sensor
Bật/tắt đèn 0x0008
0x0006
Sáng
Bộ sạc bật/tắt 0x0008
0x0006
Đầu ra

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) hoặc Ubuntu (20.04 trở lên).

Cách cài đặt:

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 Debian (.deb) MVD:

sudo dpkg -i mvd_1.1.0_amd64.deb

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.

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

sudo fuser -v 33000/tcp

Bạn có thể loại bỏ bất kỳ quy trình nào bằng cách sử dụng cổng TCP 33000 với một lệnh duy nhất:

sudo fuser -k 33000/tcp

Chạy MVD

Chạy MVD từ thư mục ứng dụng hoặc từ dòng lệnh:

mvd

Đị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 một thiết bị ảo:

  • Device Type (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 tên thân thiện với người dùng cho thiết bị.
  • Discriminator (Phân phối): Mã 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, 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: Hiện chỉ hỗ trợ mã nhà cung cấp kiểm thử 0xFFF1.
  • Mã sản phẩm: Hiện tại, chúng tôi 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

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

Lưu ý: Nếu đang sử dụng ufw, bạn có thể tắt tính năng này bằng:

sudo ufw disable
Đồng thời, bạn có thể bật lại bằng:
sudo ufw enable

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 tuỳ chọn điều khiển sau:

  • Bật/Tắt: Thường gặp ở 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: Chẳng hạn như đèn màu có thể có chế độ điều khiển này.
  • Occupancy (Số người lưu trú): Cảm biến về tỷ lệ kín phòng cung cấp chế độ điều khiển này để mô phỏng trạng thái có người ở/không có người.

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

  • QRCode: Cho thấy mã QR dùng để chạy thử nghiệm.
  • Khởi động lại: Khởi động lại thiết bị ảo. Thiết bị sẽ bị ngắt kết nối khỏi mạng trong thời gian ngắn.
  • Đặ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 hoạt động, trạng thái kiểm soát hiện tại, v.v.
  • Delete (Xoá): Huỷ bỏ thiết bị và quay lại màn hình Create device (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ể được chạy thử nghiệm ngay khi được tạo.

Bạn cần đáp ứng một số điều kiện tiên quyết để chạy thử 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 tích hợp Matter có cùng tổ hợp VID/PID như dự án 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ó 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 như thiết bị trung tâm.

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

Để đặt lệnh cho thiết bị bằng GHA, hãy nhấp vào QRCode để cho thấy mã QR của thiết bị rồi 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ể đặ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 Matter Primer của chúng tôi để tìm hiểu cách hoạt động của việc uỷ quyền Matter.

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

Sau khi đặt phí hoa hồng 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 đồng thời theo dõi các thay đổi về trạng thái trên thiết bị ảo, hoặc
  • Kiểm soát 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ử 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 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 Device details (Thông tin chi tiết về thiết bị) cho thấy thông tin chi tiết về thiết bị:

  • Tên: Tên dành cho thiết bị.
  • Device Type (Loại thiết bị): Loại thiết bị đã chọn.
  • Phân biệt đối xử: Đối tượng phân biệt đối xử hiện tại đối với thiết bị.
  • 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 qua mạng IP.
  • Mã mật: Mã PIN dùng để đặt phí hoa hồng cho thiết bị qua mạng.
  • Configuration Thư mục: 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ã nhận dạng 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 qua thiết bị đầu cuối, thì dữ liệu đầ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ấn tổ hợp phím Ctrl-C trong thiết bị đầu cuối.

Yêu cầu trợ giúp

Để yêu cầu 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 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 đã tìm 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 sổ.

Gửi phản hồi

Để gửi ý kiến về những đ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 khi sử dụng công cụ này, hãy hoàn tất 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.

Hãy gửi ý kiến phản hồi cho chúng tôi