본문 바로가기

Job & Hobby/스마트홈, IoT

스마트싱스(Smartthings) 허브에 DTH(Device Type Handler) 설치하는 방법

반응형

(2022. 12. 1.에 추가한 내용)

스마트싱스의 DTH는 엣지 드라이버라는 개념으로 변경되었습니다. 기존의 DTH 설치방법은 더 이상 불가하다는 점을 안내드립니다. 엣지 드라이버에 대한 내용은 기회가 되면 다시 포스팅 하겠습니다. 

 

-

 

스마트싱스에 장비를 추가하려면 DTH가 필요하다. DTH(Device Type Handler)는 해당 장비가 어떻게 사용될 것인지를 정의한 명령어이다. 쉽게 윈도에서 특정 장비를 사용하기 위해 설치하는 드라이버 정도로 이해하면 쉽니다.

 

스마트싱스와 호환되는 장비 중 WWST(Work With SmartThings) 인증을 받은 장비들은 이미 DTH가 서버에 내장되어 있기 때문에 별도의 DTH설치가 필요하지 않다. 스마트싱스 허브와 연결은 되지만 WWST 인증을 받지 않는 장비들은 별도로 DTH를 설치해야 한다. 그 이유인 즉, Zigbee나 Z-Wave는 국제규격으로 만들어진 것이기 때문에 스마트싱스 말고도 다양한 허브에서 연결을 지원한다. 즉, 이 과정은 스마트싱스에서 Zigbee, Z-Wave 장비를 사용하기 위한 준비과정으로 생각하면 된다.

 

DTH나 스마트앱(Smart APPS) 는 모두 스마트싱스 IDE사이트에서 가능하다.

 

graph.api.smartthings.com/

 

SmartThings Groovy IDE

SmartThings Groovy IDE The Groovy IDE allows you to integrate devices directly with the SmartThings hub using ZigBee, Z-Wave, or LAN/HTTP protocols. In order to test these integrations you need a Samsung SmartThings Hub, Samsung Connect Home WiFi System, o

graph.api.smartthings.com

 

1. 준비과정

IDE에서 작업을 할 때 초보자들이 많이 하는 실수라 별도로 설명한다. IDE에서 어떠한 작업을 하든 제일 먼저 해야 하는 일은 로케이션을 지정(클릭)하는 것이다. 스마트싱스는 로케이션에 허브와 장비가 종속되는 개념이기 때문에 어떤 로케이션에서 작업을 할 것인지를 먼저 지정해줘야 한다. 로케이션이 하나 밖에 없더라도 반드시 My Locations에서 작업할 로케이션(아래에서는 집)을 클릭해 준 다음에 이후의 작업을 진행해야 한다. 

 

 

아래는 로케이션을 지정하지 않은 상태에서 My Hubs로 들어갔을 때 표시되는 허브가 없다는 에러메시지다.

 

 

로케이션 지정이 끝났다면  My Device Handlers로 들어간다.

 

 

DTH를 설치하는 방법은 크게 2가지로 나눌 수 있다. 깃허브(GitHub)의 저장소(Repositories)에서 다른 제작자가 만들어 둔 DTH를 끌어오는 방법과 직접 코드를 입력하는 방법이다. 설치, 유지, 보수의 측면에서 첫번째 방법이 훨씬 간편하다. 따라서 많은 개발자들도 직접 코드를 복사하는 방법보다는 GitHub를 사용하도록 코드를 공개하고 있다.

아래에서 자세히 설명한다.

 

 

2.  깃허브의(GitHub)의 저장소(Repositories)를 이용하는 방법

깃허브에서 코드를 끌어오기 위해서는 우선 깃허브를 설치해야 한다. 깃허브가 무엇인지는 아래 페이지를 참고하자.

namu.wiki/w/GitHub?from=github

 

GitHub - 나무위키

GitHub is how people build softwareGitHub는 사람들이 소프트웨어를 개발하는 방법입니다 대표적인 무료 Git 저장소. 2008년 공개했다. Git 호스팅 기능 덕분에 GitHub는 자유 소프트웨어의 성지로 떠올랐다. ��

namu.wiki

깃허브 계정이 없다면 우선 가입을 한다.

github.com/

 

Build software better, together

GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.

github.com

 

깃허브에 가입했다면 아래의 설명에 따라 스마트싱스 계정과 깃 허브 계정을 연동시켜 준다.

 

 

 

 

 

 

다시 IDE사이트 -  My Device Handlers로 돌아와서 Setting을 눌러준다.

 

깃허브의 저장소를 통합(Integration) 해 준다. 다른개발자의 저장소와 내 깃허브의 저장소를 통합(끌어온다)시켜 준다고 이해하면 된다. Add New repository를 눌러 준다.

 

 

아래에서는 이미 추가했지만 샤오미 장비의 DTH 저장소를 만들어 보려한다.  Owner(보통 개발자 ID)에 bspranger, Name(해당 코드가 들어있는 저장소 이름)에 Xiaomi, Branch에 master를 입력 후 Save를 눌러준다. 대, 소문자를 다르게 입력하면 제대로 저장소 검색이 안되니 대, 소문자를 주의하여 입력한다.

 

Update from Repo(sitories)를 누르면 방금 추가한 Xiaomi가 보인다. 클릭 한다.

 

 

아래처럼 New Only부분에 DTH가 보인다. 이미 설치되어 있는 DTH의 코드가 업데이트 된 경우에는 첫번째 칸이나 두번째 칸에 보일 수 있다. DTH는 여러 개일수도 있고 하나 일수도 있는데 필요한 DTH를 클릭 후, Publish에 체크 후 Execute Update를 누른다. 

 

 

DTH 목록을 보면 방금 설치한 DTH가 보인다.

 

 

2. 직접 코드를 입력하여 생성하는 방법

 

직접 코드를 입력하여 DTH를 생성하는 방법은 아래와 같다.

 

 

 

 

다만 이 방법은 DTH업데이트가 어렵기 때문에 가급적 깃허브를 통해서 DTH를 생성하는 것이 바람직하다. 

 

반응형