Matter 가상 기기는 Matter 솔루션을 개발하고 테스트하는 데 유용하며, 실제 Matter 기기와 마찬가지로 Google Home app (GHA)를 사용하여 커미셔닝하고 GHA 및 Google Assistant를 사용하여 제어할 수 있습니다.
앱 개발자 및 가상 Matter 기기를 테스트하거나 에뮬레이션해야 하지만 자체 실제 또는 가상 Matter 기기를 빌드할 리소스가 부족한 사용자를 위해 Google에서는 Matter Virtual Device (MVD)를 제공합니다. MVD는 다양한 유형의 가상 Matter 기기를 시뮬레이션하고 가상 Matter 기기의 상태를 제어하고 표시하는 그래픽 사용자 인터페이스를 제공하는 경량 독립형 Linux 또는 macOS 데스크톱 도구입니다.
물리적 Matter 기기와 달리 MVD는 Matter 패브릭에 참여하기 위해 블루투스® 저전력 (BLE) 또는 Thread®를 사용하지 않습니다. 대신, 시운전을 위해 호스트 Linux 또는 macOS 머신의 기존 Wi-Fi 네트워크 연결을 사용합니다.
다른 도구와 비교
MVD는 가상 기기와 이를 제어하는 UI를 결합한 자체 포함 솔루션이라는 점에서 Virtual Device Controller (VDC)와 다릅니다. 반면 VDC는 별도의 가상 Matter 기기를 제어하는 데 사용됩니다.
MVD에는 여러 가지 사전 빌드된 가상 기기가 포함되어 있으며 이를 실행하고 제어하는 통합 UI가 포함되어 있습니다.
지원되는 기기
MVD는 다음 Matter 기기 유형을 지원합니다.
| Matter 기기 유형 | 애플리케이션 클러스터 | 홈 생태계 유형 |
|---|---|---|
| 공기 청정기 |
0x0202 0x0006 0x0071 |
공기청정기 |
| 공기질 센서 |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
센서 |
| 기본 비디오 플레이어 |
0x0006 0x0506 0x0509 |
텔레비전 |
| 색온도 조명 |
0x0300 0x0008 0x0006 |
조명 |
| 접촉 센서 |
0x0045 |
센서 |
| 밝기 조절 가능 조명 |
0x0008 0x0006 |
조명 |
| 밝기 조절 가능 플러그인 장치 |
0x0006 0x0008 |
아울렛 |
| 식기 세척기 |
0x0006 0x0059 0x0056 0x0060 |
식기세척기 |
| 도어 잠금 장치 |
0x0101 |
잠금 |
| 확장된 컬러 조명 |
0x0300 0x0008 0x0006 |
빛 |
| 선풍기 |
0x0202 0x0006 |
팬 |
| 유량 센서 |
0x0404 |
센서 |
| 일반 스위치 |
0x003b |
Switch |
| 습도 센서 |
0x0405 |
센서 |
| 세탁기 |
0x0006 0x0051 0x0053 0x0056 0x0060 |
세탁기 |
| 조도 센서 |
0x0400 |
센서 |
| 사람 감지 센서 |
0x0406 |
센서 |
| 조명 켜기/끄기 |
0x0008 0x0006 |
빛 |
| 켜기/끄기 조명 스위치 |
0x0006 |
Switch |
| 온/오프 플러그인 장치 |
0x0008 0x0006 |
Outlet |
| 압력 센서 |
0x0403 |
센서 |
| 펌프 |
0x0006 0x0200 0x0402 0x0403 0x0404 |
펌프 |
| 로봇 청소기 |
0x0054 0x0055 0x0061 |
진공 |
| 룸 에어컨 |
0x0006 0x0201 0x0202 |
에어컨 |
| 연기/일산화탄소 경보기 |
0x005C |
일산화탄소 감지기
연기 감지기 |
| 온도 센서 |
0x0402 |
센서 |
| 온도 조절기 |
0x0201 |
온도 조절기 |
| 창문 덮개 |
0x0102 |
Blinds |
MVD 설치
MVD은 Debian(13 Trixie 이상), Ubuntu (20.04 Noble Numbat 이상) 또는 macOS를 실행하는 64비트 x86 프로세서 머신에서 실행됩니다.
Linux
armored-ASCII 서명 (.asc) 파일 다운로드
그런 다음 dpkg을 실행하여 MVD Debian (.deb) 패키지를 설치합니다.
sudo dpkg -i mvd_1.7.0_amd64.debmacOS
그런 다음 dmg 파일을 더블클릭하여 설치 창을 엽니다.
설치를 완료하려면 mvd 아이콘을 선택하여 Applications 폴더로 끌어다 놓으세요.
포트 사용량 확인
MVD의 컨트롤러 모듈은 TCP 포트 33000을 사용하여 가상 기기에 RPC 호출을 실행하므로 이 포트가 컴퓨터의 다른 프로세스에서 이미 사용 중인 경우 포트를 해제해야 합니다.
어떤 프로세스가 포트 33000을 사용하고 있는지 확인하려면:
Linux
sudo fuser -v 33000/tcpmacOS
lsof -i:33000다음 명령 하나로 TCP 포트 33000을 사용하는 모든 프로세스를 종료할 수 있습니다.
Linux
sudo fuser -k 33000/tcpmacOS
lsof -ti:33000 | xargs killMVD 실행
Linux
Linux에서는 애플리케이션 폴더 또는 터미널에서 MVD를 실행합니다.
mvdmacOS
macOS에서는 Launchpad를 사용하여 MVD를 열거나 터미널에서 MVD를 실행합니다.
cd /Applicationsopen mvd.app
기기 구성
실행 시 기본 화면이 표시되며 가상 기기를 구성할 수 있습니다.
- 기기 유형: 기기 유형 (예: 조명, 스위치, 센서 등)을 선택합니다.
- 기기 이름: 기기에 사용자 친화적인 이름을 지정합니다.
- 구별자: 여러 개의 수수료 부과 가능 장치 광고를 구별하는 데 사용되는 12비트 숫자입니다. (기본값:
3840). - Matter 포트: IP 네트워크를 통한 Matter 커미셔닝 및 통신을 위한 포트입니다. Matter는 기본적으로 TCP/UDP 포트 5540을 사용하지만 다른 서비스에서 해당 포트를 사용하지 않는 한 가상 장치가 다른 포트를 사용하도록 구성할 수 있습니다.
- 공급업체 ID: 테스트 공급업체 ID
0xFFF1만 지원됩니다. - 제품 ID: 테스트 제품 ID
0x8000~0x801F만 지원됩니다.
방화벽 구성
Linux
컴퓨터에서 방화벽을 실행 중인 경우 방화벽을 종료하거나 Matter 포트에서 들어오는 TCP/UDP 연결을 허용하세요.
현재 활성화된 netfilter 방화벽 규칙을 보려면 다음을 실행하세요.
sudo iptables -L -n`ufw`를 사용하는 경우 다음을 사용하여 비활성화할 수 있습니다.
sudo ufw disable다음을 통해 다시 활성화할 수 있습니다.
sudo ufw enablemacOS
macOS에서 방화벽을 구성하거나 사용 중지하려면 다음 단계를 따르세요.
- Apple 메뉴로 가서 시스템 설정을 선택하세요.
- 사이드바 목록에서 네트워크를 클릭합니다.
- 방화벽을 클릭합니다.
- 방화벽 스위치를 끄기 위치로 전환합니다.
기기를 실행하세요
기기가 구성된 후 기기 만들기를 클릭합니다. 장치가 생성되면 컨트롤러 화면이 나타납니다. 선택한 장치 유형에 따라 다음 컨트롤 중 하나 이상이 표시될 수 있습니다.
- 켜기/끄기: 대부분의 기기에 공통적입니다.
- 레벨: 예를 들어, 조명에는 밝기를 조절하는 레벨 슬라이더가 있을 수 있습니다.
- 색상: 예를 들어 색상 조명에 이 제어가 있을 수 있습니다.
- 재실: 재실 센서는 재실 또는 비재실 상태를 시뮬레이션하는 이 제어 기능을 제공합니다.
모든 가상 장치에는 다음과 같은 제어 기능이 있습니다.
- QRCode: 시운전에 사용되는 QR 코드를 보여줍니다.
- 재부팅: 가상 장치를 다시 시작합니다. 기기가 네트워크에서 잠시 연결 해제됩니다.
- 재설정: 현재 장치를 공장 초기화하고 시운전, 현재 제어 상태 등을 포함한 모든 상태를 지웁니다.
- 삭제: 기기를 삭제하고 기기 생성 화면으로 돌아갑니다.
제조업체별 특성
제조업체별 (MS) 특성은 Android용 Home API에서 지원되며 Matter의 표준 특성을 넘어서는 추가 기능을 제공합니다. MS 특성이 있는 기기를 테스트하려면 MVD를 사용하여 맞춤 클러스터 섹션에서 특성과 상호작용하면 됩니다 (위 이미지 참고).
장치를 시운전하세요
기기는 생성되는 즉시 커미셔닝할 수 있습니다.
장치를 시운전하려면 몇 가지 전제 조건이 있습니다.
Google Home Developer Console에 프로젝트가 있어야 합니다. 이 프로젝트에는 가상 장치 설정에 사용한 것과 동일한 VID/PID 조합을 가진 Matter 통합이 포함되어야 합니다. 자세한 내용은 프로젝트 생성 가이드를 참조하세요.
Matter를 지원하는 Google Nest Hub가 있어야 합니다.
Android 8.1 이상을 실행하고 GHA가 설치된 Android 휴대전화가 있어야 합니다.
안드로이드 폰은 허브와 동일한 Wi-Fi 네트워크에 연결되어야 합니다.
호스트 컴퓨터는 Wi-Fi 네트워크에 연결되어야 합니다.
GHA를 사용하여 기기를 작동시키려면 QRCode를 클릭하여 기기의 QR 코드를 표시한 다음, GHA를 사용하여 Matter 기기를 온보딩하는 방법을 설명하는 Matter 기기 페어링의 지침을 따르세요. Google Home Sample App for Matter를 사용하여 장치를 시운전할 수도 있습니다.
Matter 커미셔닝의 작동 방식은 Matter 입문서를 참고하세요.
장치를 제어합니다
가상 기기를 작동시킨 후에는 Google Home 앱이나 Google Assistant를 사용하여 음성으로 기기를 제어할 수 있습니다. 대신 다음 중 원하는 방법을 선택합니다.
- 가상 장치의 상태 변경을 모니터링하는 동안 GHA 또는 Assistant을 통해 장치를 제어하거나
- 가상 장치의 상태 변경을 모니터링하는 동안 Sample App for Matter를 사용하여 장치를 제어하거나
- GHA 또는 Assistant의 상태 변경을 모니터링하는 동안 MVD 자체를 통해 장치 상태를 제어합니다.
장치로 테스트
Assistant를 사용하여 테스트하려면 VS Code용 Google Home 확장 프로그램이나 Android Studio용 Google Home 플러그인과 같은 발화 시뮬레이터를 사용하는 것이 좋습니다.
기기 세부 정보 보기
기기 세부 정보 화면에는 자세한 기기 정보가 표시됩니다.
- 이름: 기기에 지정된 친근한 이름입니다.
- 기기 유형: 선택된 기기 유형입니다.
- 구별자: 현재 장치 구분자입니다.
- 공급업체 ID: 현재 기기 공급업체 ID입니다.
- 제품 ID: 현재 기기의 제품 ID입니다.
- RPC 포트: 장치가 컨트롤러 (GUI)와 통신하는 RPC 포트입니다.
- Matter 포트: 현재 기기에서 IP 네트워크를 통해 통신하는 데 사용되는 포트입니다.
- 비밀번호: 네트워크를 통해 기기를 커미셔닝하는 데 사용되는 PIN입니다.
- 구성 폴더: 가상 기기가 구성을 저장하는 폴더입니다.
- 수수료 정보: 기기가 참여한 패브릭과 패브릭의 기기 노드 ID를 표시합니다.
기기 로그 보기
터미널에서 MVD를 실행한 경우 로그 출력이 stdout에 표시됩니다.
기기 로그 탭에서 기기 로그를 볼 수도 있습니다.
기기 중지
기기를 중지하고 삭제하려면 삭제를 클릭합니다.
앱 종료
제어 창을 닫으면 기기가 소멸되고 MVD 애플리케이션이 종료됩니다. 터미널에서 실행한 경우 터미널에 Ctrl-C를 입력하여 애플리케이션을 종료할 수도 있습니다.
도움말 보기
MVD 관련 도움을 받거나, 버그를 신고하거나, 새 기능을 요청하려면 Google 지원 담당자에게 문의하세요.
창의 오른쪽 상단에 있는 도움말 버튼을 클릭하면 이 페이지로 이동합니다.
버그 신고
MVD에서 결함을 발견한 경우 창의 오른쪽 상단에 있는 문제 버튼을 클릭하여 버그를 신고할 수 있습니다.
의견 보내기
MVD의 장점이나 도구 사용 경험을 개선할 수 있는 방법에 대한 의견을 제출하려면 의견 양식을 작성하세요.
이 양식은 창의 오른쪽 상단에 있는 의견 버튼을 클릭하거나 아래 버튼을 클릭하여 실행할 수 있습니다.
MVD를 사용할 때 하단에 팝업되는 설문조사를 통해 의견을 제공할 수도 있습니다.