YOGYUI

Matter - Google Home 개발 프로젝트 생성하기 본문

홈네트워크(IoT)/Matter

Matter - Google Home 개발 프로젝트 생성하기

요겨 2023. 2. 2. 12:39
반응형

iOS 16.2 ~ 16.3 업데이트 후 Matter용으로 개발중인 기기들이 애플 홈(Apple Home) 앱에서 BLE 커미셔닝(commisioning)이 원활히 되지 않는 문제가 있어, 이래저래 헤딩해보다가 포기... 

항상 Sigma2 메시지 송수신단 54번 프로세스에서 문제가 발생하는 중 ㅠ

CHIP-Tool로는 무난히 커미셔닝 잘 되는데 힝...

CHIP Github에서도 동일한 문제를 겪고 있다는 사람도 있고, 문제없이 된다는 사람도 있는데 좀 더 파봐야 할듯.. 

 

Matter 디바이스 개발이 우선순위가 높기 때문에, 급한대로 구글 홈 (Google Home)에서 Matter 개발 환경을 꾸며보기로 했다.. 구글 홈 개발자 사이트에 가이드가 굉장히 자세히 나와있어서 쉽게 따라할 수 있다 (한글로 번역하지 말고 영어 원문으로 읽는 것을 추천)

https://developers.home.google.com/matter/checklist

 

법적 사안 개발 체크리스트  |  Matter  |  Google Home

중요 통합 개발을 준비하기 위해 취해야 할 단계를 이해합니다.

developers.home.google.com

구글 홈 Matter 개발 환경 구축 체크리스트

1. 개발 프로젝트 (developer project) 생성

구글 홈 개발 콘솔(Google Home Developer Console)에 접속한 후 본인의 구글 계정으로 로그인 (개발용으로 별도로 계정 하나 만드는 걸 추천)

'Create a project' 버튼 클릭

구글 홈 관련 프로젝트를 생성한 이력이 있으면 본인이 만든 다른 프로젝트의 Action에 Matter 환경을 구축(import)할 수 있다 (자세한 내용은 상기 링크의 'Method2: Import an existing project from the Actions on Google console 항목 참고)

 

여기서는 새로운 프로젝트를 생성 (create a new project)해보자

'Create project' 버튼 클릭

프로젝트 이름을 적절하게 기입한 뒤 'Create new project' 버튼 클릭

 

정상적으로 프로젝트가 생성되면 아래와 같이 프로젝트 설정 초기화면이 나타난다

'Add Matter integration'이 가장 첫 메뉴인 걸로 봐서 구글도 Matter에 얼마나 진심인지를 엿볼 수 있다

Matter integration을 생성하기 전에, 회사 프로필(company profile)을 우선 제출해야 하니 서두르지 말자

2. 회사 프로필(company profile) 생성

'Project details' 버튼 클릭

 

'Submit profile' 버튼 클릭

회사 이름, 웹페이지, 로고 이미지, 연락처 등 회사와 관련된 다양한 정보를 기입해야 한다
나같은 경우는 실제 재직중인 회사에서 관련 업무에 종사하고 있기 때문에 별다른 고민없이 회사 정보를 기입했는데, 가상의 회사 정보를 입력해서 제대로 동작하는지 여부는 확인하지 않았다 (왠만하면 본인이 속한 회사나 학교의 정보를 기입하도록 하자)
※ 회사 정보는 굳이 이 글에서 공개하지는 않겠다 ㅎㅎ

2.1. 회사 정보 기입

Basic info - 회사명(영문)과 홈페이지 주소를 적어준다

 

Display name - 그냥 회사명을 적어줘도 무관하다 (클라우드 통합은 당분간 사용하지 않을 예정)

 

Company assets - 회사 로고 이미지 파일 (JPG, PNG 확장자)를 업로드해준다

굉장히 귀찮게도 이미지 사이즈가 정확히 192 x 192 픽셀이어야 하므로 회사 관련부서에 해당 이미지를 요청하거나, 그림판 등을 이용해서 절묘하게 수정해주자

 

Privacy policy - 회사의 개인정보 보호 정책(혹은 개인정보 처리 방침)이 기입된 웹페이지 URL을 입력해주면 된다

※ 회사 홈페이지 하단에는 거의 무조건 개인정보처리방침 링크가 걸려있으니, 해당 페이지 주소를 입력하면 된다

네이버 웹페이지 예시

2.2. 연락처 정보 기입

Headquarters address - 본사 주소 및 국가 입력

한국은 Korea, republic of 로 되어 있다

 

Developer contacts - 개발자 풀네임, 이메일 주소, 회사명 입력

(개발자를 여러명 등록하려면 'Add contact' 버튼 클릭)

 

Marketing contacts - 회사 마케팅(영업) 담당자 이름 및 이메일 주소 입력

 

Business contacts - 회사 비즈니스 담당자 이름 및 이메일 주소 입력

비즈니스가 정확히 뭘 의미하는지는 모르겠는데, 그냥 세일즈 부서 담당자 정보를 입력해줬다

(마케팅, 비즈니스 등 타인의 연락처를 기입할 때는 꼭 당사자의 동의를 얻도록 하자)

 

Marketing and promotion - 구글 홈 개발 센터의 메일링 리스트에 등록할 건지, 구글 팀이 회사 영업 담당자에게 프로모션 관련 연락을 하도록 허용할 것인지 등을 선택할 수 있는데, 필요하면 클릭 (왠만하면 개발 초기 단계에서는 선택할 일이 없을듯 ㅎㅎ)

 

작성 완료 후 'Submit' 버튼을 클릭해 프로필을 제출하면 끝~

 

제출 후 회사 프로필은 'In review' 상태가 된다

구글이 프로필을 검토하는 동안 매터 통합을 생성하면 된다

(리뷰는 상당한 시일이 소요되는듯하다.. Reject or Accept가 되면 내용을 추가할 예정)

 

리뷰 결과는 구글 홈 콘솔에서 보내는 이메일로 확인할 수 있다

1월 27일에 제출해서 2월 2일에 결과 메일을 받았으니 어림잡아 1주일 정도 소요되는 것 같다

나는 무난히(?) 회사 프로필 등록이 수락(approved)되었다

개발자 콘솔에서 확인해보면

Company profile이 'Live' 상태로 변경된 것을 확인할 수 있다

깔끔하구먼?

3. 매터 통합 (Matter integration) 생성

'Add Matter integration' 클릭

 

매터 통합 최초 생성 시 매터 관련 유용한 팁들을 볼 수 있는 웹페이지 리스트를 볼 수 있다

잘 모르는 내용이 있다면 한번 훑어보고 웹브라우저 북마크로 등록해두자

준비가 되었다면 'Next: Develop' 버튼 클릭

 

개발하려는 매터 기기는 CSA(Connectivity Standards Alliance)에서 인증을 받아야 구글 홈과 연동할 수 있다

  • 고유한 Vendor ID 및 Product ID를 CSA에서 발급받아야 한다
  • 해당 값들은 매터 기기 펌웨어 빌드 단계에서 하드코딩되어야 한다
  • 발급받기 위해서는 회사에 CSA에 멤버로 등록되어야 한다
  • Feasibility Test를 위한 test용 vendor ID를 등록할 수 있다
  • Vendor ID는 16비트 자료형이므로 이론상 최대 65,536개의 벤더가 존재할 수 있다

https://csa-iot.org/certification/why-certify/

 

Certification Process | Why Certify |

Certification Allows Use of Certified Product Logos and Listing of the Product on the Alliance Website for Verification.

csa-iot.org


CSA의 멤버십은 총 4종류가 있는데, Associate 멤버는 디바이스를 직접 제조하지는 않는 경우에 적합한지라 논외로 하자.. (이것도 제품 생산 시에는 무료는 아니다)

 

CSA의 표준에 따라 기기를 개발하려면 Adopter 멤버십이 적절한데, 이마저도 비용이 연간 800만원을 훌쩍 넘는지라 개인이 가입하기에는 상당히 부담스럽다...

 

CSA의 표준에 직접 개입하기 위해서는 Participant 이상의 멤버십이 필요한데, 이건 대기업 레벨로 넘어가야 한다

  • Promoter 멤버십에는 아마존, 애플, 구글, 화웨이, 이케아, 삼성, LG 등 굵직굵직한 글로벌 기업 29개가 가입되어 있다
    (얘네들한테 연간 1억의 멤버십 유지비는 거의 티도 안나는 수준이니... 부럽다)
  • Participant 멤버십에는 총 275개 기업이 참여중인데, 국내 기업으로는 HDC(현대산업개발), KT, LG유플러스 등의 기업을 찾아볼 수 있다

https://csa-iot.org/become-member/

만약 본인의 회사가 아직 CSA 멤버에 가입되지 않은 상태에서 매터 시장에 발을 담그는 것을 고민하고 있는 단계라면, Test용 vendor ID를 사용해서 기기를 만들어본 후 본부장 혹은 대표이사 승인을 받아 가입하는 프로세스가 진행되어야 한다


잡설이 너무 길었다.. ㅋㅋ

'Next: Setup' 버튼을 클릭해서 기기 설정(Setup) 페이지로 넘어가자

Device information - 제품명과 기기 종류를 기입해준다

기기 종류는 blinds, control bridge, light, lock, outlet, sensor, speaker, switch, thermostat 총 9종 중에서 하나를 선택할 수 있으니, 개발하고자 하는 종류에 맞춰서 선택해준다

 

Vendor ID (VID) - 만약 CSA 멤버십 가입 후 Vendor ID를 발급받았다면 'CSA-issued vendor ID (to certify)'를 선택해서 ID를 입력해준다

 

아직 CSA 멤버십에 가입하지 않은 개발 초창기 단계라면, 테스트용으로 준비된 4개의 ID중 1개를 선택하면 된다

(0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4)

Espressif, Nordic, Silicon Labs 등 IoT용 MCU, SoC 제조사들이 제공하는 예제 코드 혹은 CHIP 저장소 소스코드의 예제 코드를 보면 위 4개 중 1개의 vendor ID가 테스트용으로 사용되고 있는 걸 알 수 있다

Espressif 사의 예제 코드에서 사용중인 VID 및 PID

 

본인이 개발중인 코드에 사용되고 있는 ID를 선택해주면 된다

 

Product ID (PID) - vendor ID와 마찬가지로 CSA에서 발급받았거나, 예제 코드에서 사용중인 PID 값을 입력해주면 된다

 

입력 완료 후 'Save & continue' 버튼 클릭

 

개발중인 제품의 이미지 및 안드로이드 앱 정보를 추가로 입력할 수 있는데, 일단은 스킵해도 된다

 

매터 통합 생성이 완료됐다!

'Next: Test' 버튼을 클릭해서 기기 테스트를 시작하자

4. 테스트(Test) 시작

'Test' 메뉴에서 위에서 생성한 매터 통합이 테스트 준비 완료된 것을 확인할 수 있다

우측의 'Test'를 클릭하자

만약 기기 인증단계(HW, 펌웨어 개발 완료 상태)라면 'Certification test'를, 기기 개발단계라면 'Development test'를 선택한 뒤 'Test' 버튼 클릭

 

'Test Suite' 페이지로 리디렉션된다

구글 홈 앱(Google Home app)에서 디바이스 추가를 하라는 안내 메시지가 나오게 된다!

4.1. 안드로이드 기기 설정

안드로이드 기반 모바일 기기 (아이폰/아이패드 안됨!)에 매터 관련 모듈이 있는지 확인해보자

[설정] - [Google] - [기기 및 공유]

만약 기기 및 공유 리스트에 위와 같이 'Matter 기기 (Matter devices)'가 리스트에 없다면 다음 두 방법 중 하나를 선택하여 Matter 기기와 연동할 수 있게 만들어줘야 한다


(1) 구글 플레이 서비스 (Google Play services)의 버전이 22.36.15 이상인지 확인

아래 QR 코드 인식 후 업데이트(Update) 버튼이 뜬다면 업데이트 진행

(2) 구글 홈 앱 (Google Home app) 삭제 후 재설치 - 추천

구글 홈 앱 삭제 후 아래 QR 코드를 인식해서 설치해준다


다시 [기기 및 공유] 설정으로 가서 Matter 기기가 리스트에 있는지 확인

4.2. 구글 홈 앱에서 기기 추가

구글 홈 앱에서 Matter 관련 펌웨어을 올린 디바이스를 추가해보자

Matter 기기는 OpenThread 기반이 아니라면 기본적으로 블루투스를 사용한 BLE Commisioning을 진행하기 때문에 위와 같이 자동으로 디바이스 탐색이 된다

 

디바이스의 Matter 커미셔닝 QR 코드를 카메라로 촬영하면 디바이스 추가 과정이 진행된다

※ 디바이스를 Wi-Fi에 등록하는 과정을 거치기 때문에, 기기 추가 이전에 디바이스가 연결될 Wi-Fi에 모바일 기기를 미리 연결해둬야 한다 (일반적인 경우라면 2.4GHz 대역 Wi-Fi가 필요하다)

 

Wi-Fi Commisioning이 완료되면 구글 홈 앱에 디바이스가 추가된다

(지금 개발중인 디바이스는 Bridge로 여러개를 동적으로 추가할 수 있게 해뒀고, 테스트용으로 on-off light 3개를 미리 추가해둔 상황)

 

회사 Vendor ID를 공개하기는 뭣해서 테스트용 Vendor ID 0xFFF1을 사용했고, 별도로 Vendor명이나 모델명은 변경하지 않아 모두 TEST_VENDOR, TEST_PRODUCT와 같이 기기 정보가 표시된다

 

Test Suite 페이지를 열어보면

이렇게 내가 추가한 디바이스 목록을 확인할 수 있다

 

콘솔 단계에서 테스트 환경을 꾸며서 디바이스 정상 동작 여부를 확인할 수 있다

Start를 클릭하면 디바이스를 켜는 명령이 내려지며, 디바이스를 수동으로 꺼서 Matter 서버에 정상적으로 상태가 등록되는지 등의 테스트가 일괄적으로 수행된다 (일종의 HW가 연동된 유닛테스트 개념으로 보면 된다)

내가 개발한 펌웨어가 정상적으로 Matter 연동이 되는지 확인하는 과정이므로 반드시 진행해줘야 하는 과정이다 ㅎㅎ 나중에 기회가 되면 테스트를 어떻게 수행해야 하는지도 포스팅해볼까 한다


구글 개발자 콘솔에서 Matter 개발 환경을 구축하는 과정은 굉장히 깔끔하고 간편했다

개발자 콘솔에 등록된 상태에서 펌웨어 개발을 완료하고 Field trial, certify까지 한꺼번에 진행하는 등 제품 출시까지 원큐에 해결할 수 있다 (OTA도 구글 클라우드를 통해 연동할 수 있는듯?)

 

애플 iOS 관련 이슈가 해결될 때까지는 당분간 구글 환경에서 펌웨어 개발을 계속해나가야겠다 ㅋㅋ

어차피 아직 개발 초기 단계라 펌웨어 레벨에서 개발해야 할 항목들이 넘쳐흐르기 때문에 제품 인증까지는 갈 길이 멀다 ㅠㅠ

 

후딱후딱 개발끝내고 제품 출시까지 달려봐야겠다

글로벌 대기업들이 Matter 생태계 선점을 위해 득달같이 달려들고 있다.. 한발 늦으면 뼈도 못추리고 퇴갤당할 느낌인데.. 나같은 영세(?) 개발자들만 죽어나가겠구먼 ㅎㅎ

국내 Matter 개발자 여러분들 모두 화이팅... ^^

 

반응형