법적 사안 가상 기기

기기 SDK

Matter 가상 기기는 Matter 솔루션을 개발하고 테스트하는 데 유용하며 Google Home app (GHA)를 사용하여 커미셔닝하고 실제 Matter 기기와 마찬가지로 GHAGoogle Assistant를 사용하여 제어할 수 있습니다.

가상 Matter 기기를 테스트하거나 에뮬레이션해야 하지만 실제 또는 가상 Matter 기기를 빌드할 리소스가 부족한 앱 개발자 및 기타 사용자를 위해 Google은 Matter Virtual Device (MVD)를 제공합니다. MVD은 경량의 독립형 Linux 또는 macOS 데스크톱 도구로, 다양한 유형의 가상 Matter 기기를 시뮬레이션하고 가상 Matter 기기의 상태를 제어하고 표시하는 그래픽 사용자 인터페이스를 제공합니다.

실제 Matter 기기와 달리 MVDMatter 패브릭을 조인하기 위해 저전력 Bluetooth® (BLE) 또는 Thread®에 의존하지 않습니다. 대신 커미셔닝에 호스트 Linux 또는 macOS 시스템의 기존 Wi-Fi 네트워크 연결을 사용합니다.

다른 도구와 비교

MVD는 독립형 솔루션이라는 점에서 가상 기기를 제어하는 UI와 결합한다는 점에서 Virtual Device Controller (VDC)와 다릅니다. 반대로 VDCMatter Virtual Device Development Environment (MVD-DE)에서 빌드하는 기기와 같은 별도의 가상 Matter 기기를 제어하는 데 사용됩니다.

이미 MVD-DE Codelab으로 작업해 봤을 수도 있습니다. 이 Codelab에서는 단일 유형의 가상 기기, 즉 스마트 전구를 빌드합니다. 반면 MVD에는 사전 빌드된 다양한 가상 기기가 여러 개 포함되어 있으며 이러한 가상 기기를 실행하고 제어하는 통합 UI가 포함되어 있습니다.

표: 가상 Matter 기기 도구 비교
MVD VDC MVD-DE (Codelab)
Matter 기기 에뮬레이션
에뮬레이션된 Matter 기기 제어
개발 작업 필요
자료 100MB 미만 9GB 20GB

지원되는 기기

MVD는 다음과 같은 Matter 기기 유형을 지원합니다.

표: MVD에 지원되는 Matter 기기 유형
기기 유형 Matter 애플리케이션 클러스터 홈 생태계 유형
기본 동영상 플레이어 0x0006
0x0506
0x0509
TV
색온도 조명 0x0300
0x0008
0x0006
가랑비
접촉 센서 0x0045
센서
밝기 조절식 조명 0x0008
0x0006
가랑비
도어락 0x0101
잠그기
확장된 색상 밝음 0x0300
0x0008
0x0006
가랑비
선풍기 0x0202
0x0006
선풍기
유량 센서 0x0404
센서
일반 스위치 0x003b
Switch
습도 센서 0x0405
센서
조도 센서 0x0400
센서
사람 감지 센서 0x0406
센서
켜기/끄기 조명 0x0008
0x0006
가랑비
켜기/끄기 조명 스위치 0x0006
Switch
켜기/끄기 플러그인 유닛 0x0008
0x0006
콘센트
압력 센서 0x0403
센서
펌프 0x0006
0x0200
0x0402
0x0403
0x0404
해당 사항 없음
로봇 진공 청소기 0x0054
0x0055
0x0061
진공청소기
실내 에어컨 0x0006
0x0201
0x0202
Ac
연기/일산화탄소 경보기 0x005C
연기
연기/일산화탄소 경보기 0x005C
연기
온도 센서 0x0402
센서
온도 조절기 0x0201
온도 조절기
창문 덮개 0x0102
블라인드

MVD 설치

MVD는 Debian(11 이상), Ubuntu (20.04 이상) 또는 macOS를 실행하는 64비트 x86 프로세서 시스템에서 실행됩니다.

Linux

MVD Debian (.deb) 패키지 다운로드

armored-ASCII 서명 (.asc) 파일 다운로드

그런 다음 dpkg를 실행하여 MVD Debian (.deb) 패키지를 설치합니다.

sudo dpkg -i mvd_1.4.0_amd64.deb

macOS

MVD (macOS x86) dmg 파일 다운로드

MVD (ARM64 M1) dmg 파일 다운로드

그런 다음 dmg 파일을 더블클릭하여 설치 창을 엽니다.

설치를 완료하려면 mvd 아이콘을 선택하고 Applications 폴더로 드래그합니다.

macOS 설치

포트 사용량 확인

MVD의 컨트롤러 모듈은 TCP 포트 33000을 사용하여 가상 기기에 RPC 호출을 수행하므로 컴퓨터의 다른 프로세스에서 이미 이 포트를 사용 중인 경우 확보해야 합니다.

포트 33000을 사용하는 프로세스가 있는지 확인하려면 다음 단계를 따르세요.

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

TCP 포트 33000을 사용하는 모든 프로세스를 단일 명령으로 중단할 수 있습니다.

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

MVD 실행

Linux

Linux의 경우 애플리케이션 폴더 또는 터미널에서 MVD를 실행합니다.

mvd

macOS

macOS에서는 Launchpad를 사용하여 MVD을 열거나 터미널에서 MVD를 실행합니다.

cd /Applications
open mvd.app

기기 구성

시작 시 기본 화면이 표시되며 가상 기기를 구성할 수 있습니다.

  • Device Type: 기기 유형을 선택합니다 (예: 조명, 스위치, 센서 등).
  • 기기 이름: 기기에 사용자 친화적인 이름을 지정합니다.
  • 분류자: 커미셔닝 가능한 여러 기기 광고를 구분하는 데 사용되는 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 enable

macOS

macOS에서 방화벽을 구성하거나 사용 중지하려면 다음 안내를 따르세요.

  1.  Apple 메뉴로 이동하여 System Settings(시스템 설정)를 선택합니다.
  2. 사이드바 목록에서 네트워크를 클릭합니다.
  3. 방화벽을 클릭합니다.
  4. 방화벽 스위치를 꺼짐 위치로 전환합니다.

기기 실행

기기가 구성된 후 기기 만들기를 클릭합니다. 기기가 생성되면 Controller 화면이 표시됩니다. 선택한 기기 유형에 따라 다음 컨트롤 중 하나 이상이 표시될 수 있습니다.

  • 사용/사용 중지: 대부분의 기기에 공통적으로 적용됩니다.
  • 레벨: 예를 들어 조명에는 밝기를 조정하는 레벨 슬라이더가 있을 수 있습니다.
  • 색상: 예를 들어 색상 조명에 이 컨트롤이 있을 수 있습니다.
  • Occupancy: 사람 감지 센서는 이 컨트롤을 제공하여 사람 또는 사람 없음 상태를 시뮬레이션합니다.

모든 가상 기기에는 다음과 같은 제어 기능이 있습니다.

  • QRCode: 커미셔닝에 사용된 QR 코드를 표시합니다.
  • 재부팅: 가상 기기를 다시 시작합니다. 기기가 네트워크에서 잠시 연결 해제됩니다.
  • Reset: 현재 기기를 초기화하고 커미셔닝, 현재 제어 상태 등 모든 상태를 삭제합니다.
  • Delete: 기기를 폐기하고 Create device 화면으로 돌아갑니다.

가상 기기 제어 화면

기기 커미셔닝

기기는 생성되는 즉시 커미셔닝이 가능합니다.

기기를 커미셔닝하기 위한 몇 가지 기본 요건은 다음과 같습니다.

  • Google Home Developer Console에 프로젝트가 있어야 합니다. 이 프로젝트에는 가상 기기 설정에 사용한 것과 동일한 VID/PID 조합이 있는 Matter 통합이 포함되어야 합니다. 자세한 내용은 프로젝트 만들기 가이드를 참조하세요.

  • Matter를 지원하는 Google Nest Hub가 있어야 합니다.

  • Android 8.1 이상을 실행하고 GHA이 설치된 Android 휴대전화가 있어야 합니다.

  • Android 휴대전화는 허브와 동일한 Wi-Fi 네트워크에 연결되어 있어야 합니다.

  • 호스트 머신이 Wi-Fi 네트워크에 연결되어 있어야 합니다.

GHA를 사용하여 기기를 커미셔닝하려면 QRCode를 클릭하여 기기의 QR 코드를 표시한 다음 GHA를 사용하여 Matter 기기를 온보딩하는 방법을 설명하는 Matter 기기 페어링의 안내를 따릅니다. Google Home Sample App for Matter를 사용하여 기기를 커미셔닝할 수도 있습니다.

Matter 커미셔닝 작동 방식은 MatterPrimer를 참고하세요.

기기 제어

가상 기기를 시운전한 후에는 Google Home 앱 또는 Google 어시스턴트 음성을 사용하여 기기를 제어할 수 있습니다. 다음 중 원하는 방법을 선택하면 됩니다.

  • 가상 기기에서 상태 변경을 모니터링하는 동안 GHA 또는 Assistant를 통해 기기 제어
  • 가상 기기의 상태 변경을 모니터링하는 동안 Sample App for Matter를 사용하여 기기 제어
  • GHA 또는 Assistant에서 상태 변경을 모니터링하는 동안 MVD 자체를 통해 기기 상태를 제어합니다.

기기로 테스트

Assistant로 테스트하려면 VS Code용 Google Home 확장 프로그램 또는 Android 스튜디오용 Google Home 플러그인과 같은 발화 시뮬레이터를 사용하는 것이 좋습니다.

기기 세부정보 보기

기기 세부정보 화면에는 자세한 기기 정보가 표시됩니다.

  • 이름: 기기에 지정된 친숙한 이름입니다.
  • 기기 유형: 선택된 기기 유형입니다.
  • Discriminator: 현재 기기 판별자입니다.
  • 공급업체 ID: 현재 기기 공급업체 ID입니다.
  • 제품 ID: 현재 기기의 제품 ID입니다.
  • RPC 포트: 기기가 컨트롤러 (GUI)와 통신하는 RPC 포트입니다.
  • Matter 포트: 현재 기기에서 IP 네트워크를 통해 통신하는 데 사용하는 포트입니다.
  • 패스 코드: 네트워크를 통해 기기를 커미셔닝하는 데 사용되는 PIN입니다.
  • Configuration Folder: 가상 기기가 구성을 저장하는 폴더입니다.
  • Commission Information: 기기가 조인한 패브릭과 패브릭에 있는 기기의 노드 ID를 표시합니다.

기기 로그 보기

터미널에서 MVD를 시작한 경우 로그 출력이 stdout에 표시됩니다. 기기 로그 탭에서도 기기 로그를 볼 수 있습니다.

기기 중지

기기를 중지하고 폐기하려면 Delete를 클릭합니다.

앱 종료

제어 창을 닫으면 기기가 소멸되고 MVD 애플리케이션이 종료됩니다. 터미널에서 실행한 경우 터미널에 Ctrl-C를 입력하여 애플리케이션을 종료할 수도 있습니다.

도움말 보기

MVD 관련 도움을 받거나 버그를 신고하거나 새 기능을 요청하려면 Google 지원 담당자에게 문의하세요.

창의 오른쪽 상단에 있는 도움말 버튼을 클릭하면 이 페이지로 이동합니다.

버그 신고

MVD에서 결함을 발견했다면 창의 오른쪽 상단에 있는 문제 버튼을 클릭하여 버그를 신고할 수 있습니다.

의견 보내기

MVD에서 마음에 드는 점 또는 도구 사용 환경을 개선할 수 있는 방법에 관한 의견을 제출하려면 의견 양식을 작성해 주세요.

창 오른쪽 상단에 있는 의견 보내기 버튼을 사용하거나 아래 버튼을 클릭하여 양식을 실행할 수 있습니다.

의견 보내기