일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 월패드
- 현대통신
- 배당
- ConnectedHomeIP
- 오블완
- 티스토리챌린지
- 미국주식
- Apple
- Python
- 파이썬
- Espressif
- homebridge
- Bestin
- 홈네트워크
- cluster
- RS-485
- Home Assistant
- esp32
- MQTT
- SK텔레콤
- matter
- 애플
- 국내주식
- 매터
- 나스닥
- raspberry pi
- 해외주식
- 코스피
- 공모주
- 힐스테이트 광교산
- Today
- Total
YOGYUI
Matter - Google Home CSA-issued Vendor ID Verification 본문
Matter - Google Home Developer Console Verify CSA-issued vendor ID
Matter 기기의 개발이 완료됐으면 정식 제품 발매를 위해 CSA에 회원가입 후 Vendor ID(VID)를 발급받아야 한다
발급받은 Vendor ID DAC를 탑재한 Matter 기기를 제품 정식 발매 전 Google Home에서 인증 및 등록하게 하기 위해서는 Developer Console에서 해당 기기의 Vendor ID와 Product ID에 해당하는 Matter 통합을 생성해줘야 한다
※ Googme Home 개발자 콘솔에서 Matter 개발을 위한 프로젝트 생성 방법은 지난 글에서 알아본 바 있다
Matter - Google Home 개발 프로젝트 생성하기
'Develop' 메뉴에서 'Add integration'을 클릭해 새로운 매터 통합 생성
CSA에서 발급받은 Vendor ID를 입력할 수 있다 (CSA-issued vendor ID)
만약 해당 Vendor ID를 처음 등록한다면 'Verify VID' 버튼이 활성화되는데, 이를 클릭해보면 아래와 같이 'dcld'를 통한 DCL 트랜잭션을 생성하고 서명한 뒤 그 결과물을 다시 작성해야 하는 프로세스 안내 과정이 팝업된다
DCL CLI를 통한 VID verification 과정은 아래 공식 문서에 자세히 기재되어 있다
https://developers.home.google.com/matter/integration/vid-verification?authuser=0&hl=ko
별로 어려운 프로세스는 아니니, 차근차근 따라해보자
1. Go 언어 설치
Google 플랫폼답게 Go 프로그래밍 언어를 사용해야 한다
https://khongwooilee.medium.com/how-to-update-the-go-version-6065f5c8c3ec
Google Home 공식 가이드에는 Go 1.3 이상 버전을 설치하라고 명시되어 있는데, 2023년 8월 14일 기준 Go는 버전 1.21.0까지 출시되었다 (Go releases 링크)
최신 버전으로 진행해도 이후 과정을 진행하는데 문제없기 때문에 Stable 1.21.0 버전을 설치하도록 하자
※ 이 글은 Ubuntu 22.04.3 LTS 환경에서 동작한 결과에 대해서만 다루기로 한다 (MacOS, Windows 모두 가능)
1.1. Go 바이너리 파일 다운로드
아무 경로에나 go 1.21.0 버전 압축파일을 다운로드받는다 (나는 home/user/Downloads 경로 선택)
$ cd Downloads
$ wget https://dl.google.com/go/go1.21.0.linux-amd64.tar.gz
1.2. 압축파일 해제
tar로 압축을 해제해준다
$ sudo tar -xvf go1.21.0.linux-amd64.tar.gz
'go' 이름을 가진 디렉터리가 생성되며, 전체 용량은 약 219MB
1.3. 디렉터리 이동
$ sudo mv go /usr/local
/usr/local 경로로 'go' 디렉터리를 몽땅 옮겨준다
1.4. 환경설정
Go를 사용하기 위해서는 다음과 같이 'PATH' 환경변수에 go/bin 경로를 추가해줘야 한다
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
매번 export하는건 번거로우므로, home 경로의 .bashrc 파일 (~/.bashrc)에 스크립트를 추가해 터미널이 실행될 때 자동으로 추가되도록 해주자 (nano, vim, vscode, sublime text 등 텍스트 에디터의 종류는 상관없다)
※ ROS, ROS2 다뤄봤다면 .bashrc 파일을 상당히 익숙할듯 ㅎㅎ
$ sudo nano ~/.bashrc
1.5. Go 설치 확인
터미널을 다시 실행한 후 버전을 확인해보자
$ go version
Go 관련 환경변수가 어떤 것들이 있는지 확인해보자
$ go env
이제 Go 언어는 사용 준비 완료!
2. Distributed Compliance Ledger(DCL) CLI 설치
CSA의 DCL(https://webui.dcl.csa-iot.org/) 블록체인을 웹UI가 아닌 곳에서 사용하기 위해서는 DCL Command Line Interface(CLI)인 dcld를 설치해줘야한다
※ Matter는 디바이스 커미셔닝시에 블록체인을 기반으로 만들어진 DCL을 활용하는데, 이에 대해서는 다른 글에서 알아보도록 한다
이미 빌드된 바이너리를 다운로드받을 수도 있고, 깃허브 리포지터리를 클론해서 빌드할 수도 있는데 이 글에서는 깃허브 저장소 클론 후 빌드하는 방법을 사용하기로 한다 (공식 가이드 문서 링크)
2.1. Clone GitHub Repository
$ git clone https://github.com/zigbee-alliance/distributed-compliance-ledger.git
default로 distributed-compliance-ledger 디렉터리로 클론받았으며, 소스코드 빌드 전 저장소의 용량은 72.3MB
2.2. Build DCL CLI
make로 빌드해준다 (go 언어로 빌드가 진행된다)
$ cd distributed-compliance-ledger
$ make install
빌드가 정상적으로 끝나면 터미널에서 'dcld'를 실행할 수 있다 (dcld 바이너리 파일은 앞서 설정한 환경변수인 $HOME/go/bin 경로에 설치된다)
3. DCL 트랜잭션 작업
3.1. DCL Wallet BIP39 니모닉 복구 문구 확인
※ 이미 recovery key를 가지고 있다면 이 과정은 Pass~
DCL 웹UI(링크)에서 계정(블록체인 wallet)을 생성할 때, 아래와 같이 wallet 복구(recovery)를 위한 24개의 무작위 영단어를 제공한다 (BIP39 Mnemonic Code라고 부른다)
니모닉 복구 문구는 'Import existing wallet'시 반드시 필요하므로, 로컬에 저장해둬야 한다 (이메일로 전송하거나 스크린샷을 찍는 것은 권장되지 않는다.. 이 글에서는 예시를 보여주시 위해 테스트 월렛을 하나 만들고 스크린샷 찍은뒤 모두 마스크처리)
3.2. dcld로 로컬 디바이스에 키 생성 (복구)
$ dcld keys add mykey --recover
본인 월렛에 해당하는 BIP39 니모닉 복구 문구를 입력해준다
로컬에 DCL 트랜잭션을 위한 키(이름=mykey)가 생성되었다
3.3. Google Developer Console DCLD 트랜잭션 생성
DCL 키 로컬에 생성 후 구글 개발자 콘솔에서 가이드하는대로 터미널에 명령어를 입력해준다
3.4. DCL 트랜잭션 서명
트랜잭션 생성 후 서명(sign)해줘야하는데, 개발자 콘솔의 가이드대로 터미널에 입력해주면 된다
입력하면 터미널에 암호화 키 문자열이 출력된다
3.5. 암호화 키 입력
마지막으로, 개발자 콘솔에 3.4.의 출력 문자열을 복사-붙여넣기 후 'Submit' 버튼 클릭
4. Verification 완료
위 과정들이 모두 정상적으로 완료되면 위 그림과 같이 'CSA-issued vendor ID ownership verified' 문자열이 보이게 된다
이 후 product id 입력 등 매터 integration 추가 과정은 모두 동일하다
'홈네트워크(IoT) > Matter' 카테고리의 다른 글
ESP-Matter::ESP32-WROOM-32E-N8R2 외부 메모리(PSRAM) 연동 결과 (0) | 2023.10.24 |
---|---|
ESP-Matter::External Memory(PSRAM) 관련 설정 (2) | 2023.10.05 |
Matter - Open/Close Commissioning Window in Code (SDK) (0) | 2023.07.22 |
Matter - Test Harness 구축하기 (Raspberry Pi 4) (7) | 2023.06.27 |
Matter - 여러 IoT 플랫폼(애플, 구글)에 기기 등록하기 (0) | 2023.05.28 |