※ 우리 부부가 열심히 일하고 야근해서 받은 머니로 구입한 후기입니다

 

붱이 Story

 

 [붱이 Story/IoT] - IoT 입문기 1탄 - 로지텍 하모니 구입

 

[붱이 Story/IoT] - IoT 입문기 2탄 - 로지텍 하모니 세팅

[붱이 Story/IoT] - IoT 입문기 3탄 - DYSON 날개없는 선풍기(AM-07) 하모니 연결 및 제어

[붱이 Story/IoT] - IoT 입문기 4탄 - 10년된 에어컨 하모니에 연결 및 제어

 

 

우선 너무많이 한번에 질러서

 일일이 개봉기쓰긴 너무많고

개봉기는 특별한게 없으니

한방에 퉁

 

 

약 보름걸려서 받은것들

 

허브가 있어야 센서들을 붙일수있다.

SmartThings hub(아래)

 

 

(아래) 왼쪽부터 순서대로

SmartThings Multipurpose Sensor - 문 열고 닫고, 온도 측정 가능

Xiaomi Temperature Humidity - 온도 및 습도 측정

Xiaomi Motion Sensor - 동작 센서

Xiaomi Door/Window Sensor - 문 열고 닫고 감지

 

SmartThings Multipurpose Sensor 는

샤오미를 먼저 사고

며칠간 엄청난 개고생을해서

 

샤오미 센서가 고장인지 SmartThings hub가 고장인지

판단하기위해 구입했다.

 

근데 왜 샤오미홈사면되지 굳이

이렇게 어렵게 하느냐??

샤오미홈은 샤오미로만 가지고 놀지만

 

SmartThings는 100개가 넘는 다른 회사 센서들까지

연동이 가능하기때문에

SmartThings 에 굳이 붙여서 사용하면

응용력이 배가된다.

 

얘기가 길어지니 간결하게

SmartThings Multipurpose Sensor는

한방에 연결이되어

hub는 이상없다는걸 확인하였다.

특히 뭐 포스팅할게 없을정도로

쉽게 등록이 되니 따로 포스팅 하진 않겠다

 

 

이포스팅의 핵심은 삽질을 거듭한 샤오미가 주인공

 

 

사실 SmartThings 센서하나값 = 샤오미 센서 4개값

 

이여서 샤오미 센서만 사서 하려했는데

결국 구입해버렸다...

 

SmartThings에서 공식적으로 지원하지 않지만

샤오미를 구입한 이유!!!

 

나의 참고서격인

kuku님 makelism님 모두 만족하시는것 같아 구입

이 두포스팅에 의해 구입을 하였다

상세내용은 아래 블로그 링크 참조

http://kuku.pe.kr/?p=6348

http://kuku.pe.kr/?p=6421

http://kuku.pe.kr/?p=6374

http://makelism.tistory.com/entry/샤오미-Xiaomi-센서류를-지르다-2-도어-센서

 

 

위에서 참고해서 나도 시작했지만

처음보고 이해못한 부분들은

나같은 보고도 못따라하는 분들을 위해

위분들꺼외에 다루지 않는부분은 좀더 자세히 다루겠다.

(먼저 저두분껄 보고 내 포스팅을 보면 엄청난 초보자도 실패 없이 세팅할수있다.)

 

 

 

1단계 : DTH 등록

 

http://makelism.tistory.com/entry/샤오미-Xiaomi-센서류를-지르다-2-도어-센서

 

위 포스팅을 참고로 따라했음

 

 

그럼 초보자 입장에서

나도 첨에 이걸 이해하는데 좀 오래걸렸다

그래서 간단한게 언급

 

DTH가 우선 무엇이냐?

Device Type Handler 라는놈인데

 

위에도 언급했다시피 샤오미는 SmartThing에서 공식적으로

지원하지 않는다

 

이론적으로 SmartThings 허브는 Zigbee Z-wave 디바이스는 다붙일수있다.

근데 샤오미는 지원하지않으니

 

지금 내가 수동?으로 등록한 Device가

어떤놈이다 라는걸 알려줘야한다

예를들어 모션센서이고

어떤값들을 제공한다

 

이런것들을 할수있게 정의된놈을 DTH라고 보면된다.

 

 

Xiaomi DTH는 그럼 어디서 구하냐??

http://kuku.pe.kr/?p=6348 여기에 자세히 포스팅되어있다

 

하지만 기반지식이 없던 나로선 좀 삽질을 해서

 

진짜 나같은 초보자를 위해

 

요약하자면 이렇다.

 

 

우선 DTH를 등록하기위해

 

아래 사이트로 이동

https://graph.api.smartthings.com

 

이사이트는 SmartThing IDE로 SmartThigns hub와

hub에 연결된 Device들을 웹으로 관리하고 볼수있는 곳이라고 생각하면된다.

 

ID를 만들거나 삼성폰 사용자라면 삼성 계정으로 로그인이 가능하다.

 

로그인을 한뒤

(아 당연한 소리지만 WELCOME CODE로 SmartThings Hub는 연결되어있어야한다.)

 

 

"My Device Handlers" Tab으로 이동

이미지는 잘안보이지만 들어가면 우측에

"Enable GitHub Intergration" 을 클릭

 

 

 

 

아래화면에서 "Authorize applicaition" 클릭

 

github에 연결이되는데 개발자들은 하나정도있을텐데

없으면 아이디를 하나 만들자

만들고 Sign in을 하면

 

 

Step2로 넘어가게되고 오른쪽 아래 "Next"를 누루면

빨간색 으로 repository가 없다고 하면서 에러가뜬다

무시하자

 

 

 

위에서 바로 My Device Handleres 탭을 누루면

아래와같이 Settings 버튼이 생겼다

눌러보자

 

 

아래와같은 팝업이 뜨는데

이제 샤오미 DTH를 만든 개발자의 정보를 넣어주자

원제작자의 git-hub  주소

https://github.com/a4refillpad/Xiaomi

 

아래와같이 입력 하고 "SAVE"

 

그리고 Settings 버튼 왼쪽에 있는

"Update from Repo" 버튼을 누르자

아래와 같이 자동으로 a4fillpad의 DTH정보가 나온다

 

모두 선택하고

Publish도 체크한뒤

"Excute Update"

를 누르자

 

 

 

 

이제 샤오미 DTH등록을 모두 하였고

샤오미 Device를 SmartThings 앱에서 모니터링이 가능해졌다

 

 

여기까지가 준비과정이였다.... ㄷㄷㄷ

초보님들 이정도 자세히썼으면 알겠쬬???

 

삽질시간 좀 줄었을거에요 ㅎ

 


 

2단계 : 샤오미 Device SmartThings Hub에 등록하기

 

 

샤오미 센서는 3개나 있지만 등록과정은 모두 같으니 간략화하겠다

 

SmartThings 앱을 먼저 열자

 

 

 

열고 Add a Thing 터치~

그러면 뱅글 뱅글 돈다

하지만 SmartThing은 한방에 잘되지만

샤오미껀 뜰수도 안뜰수도있다....

 

 

반드시 돌고있을때

아래와 같이 Reset 버튼을 열심히 찌른다

 

이때 초기화 팁은 꾸욱누루면

파란버튼이 세번 깜빡인다

그리고 똥침을 마구 마구 찌르면된다.

며칠간 수십번한듯....

 

 

도어센서 같은 경우는 가끔 바로 뜬다....

아래와같이 뜨면 아주 쌩유

하지만 아마 안뜰것이다.....

 

 

안뜰때의 방법은

 

SmartThings IDE에서

hub event에서

catchall 을 이용하여 추가하는 방법이 있다.

 

makelism님 글 참고 아주 자세히 설명해주셨다.

http://makelism.tistory.com/entry/샤오미-Xiaomi-센서류를-지르다-2-도어-센서

 

 

간단히 요약하면

 

SmartThings IDE 접속후 "My hubs" 탭 이동

 

등록한 허브 선택

(이때 등록했는데도 안보일수도있다. bug임

안보이면 당황하지말고

My Locations 탭으로 이동

로케이션 name 선택

Hubs 항목에 등록된 hub가보일것이다 여길통해 이동)

 

위에보면 Events의 "List Events" 항목으로 이동

 

이때 열심히 똥침을 누루고있자~~~

(SmartThigns는 Add a thing 디바이스 찾는중)

 

List Events 에서 f5를 누루면

허브의 상태를 로그로 볼수있다

그중 "catchall"을 눈여겨봐야한다.

가끔뜨고 다른 로그들 사이에 있으니 잘찾자

 

 

catchall로그의 위에 "2F1E" 가 바로 등록하려고하는 Device의 network id이다

이건 초기화하면 랜덤으로 계속 바뀐다

저값을 이제

"My Devices" 탭으로 이동하여

+ New Device를 통해

 

아래와같이 형관팬 부분만 입력하면된다.

 

핵심은 "Device Network Id"와

"Type"

 

Name은 본인이 원하는 이름으로 하면된다~

 

Device network ID에는 위에 Catchall로 얻은 값을

Type은 위 1단계에서 등록한 Xiaomi 센서를 선택

그리고 Create

 

 

이제 내폰의 SmartThings에 가면 Add a Thing을 종료하면

이미 Device가 추가되어 있는것을 볼수있다.

아주 아주 이때 기분이 좋았다.

하지만 뒷 이야기를 더 들어보자

 

센서 값이 바뀌지않는다

 

열고 닫고 해봐도 변경되지 않고

 

온도값도 냉장고 넣어다빼도... 바뀌지 않고

 

모션도... 손을 아무리 흔들고해도.... 변경되지 않는다...

도통 이유를 모르겠다

 

참고로 난... 이거땜에 며칠동안 위의 동작을 수십번했다..

 

그래서 hub가 이상한지 아닌지 판단을위해

 

SmartThings에서 제작한 Multipurpose 센서를 구입한것이다.

 

위에도 말했지만 허브는 이상없었다.. 아주 잘동작함

 

Makelism님한테도 조언을 구했지만 뾰족한 해결책을 못찾음

 

결론은 해결했다

 

 


 

3단계 : 샤오미 센서 디버깅해보기


 

도대체 뭐가 문제일까???

허브도 문제없는건 확인했으니

샤오미가 문제이거나

내가 세팅을 잘못한것일거다

 

검증해보자

 

How???

 

SmartThings IDE에

"Live logging" 탭 이 보인다.

클릭해보자

 

실시간 Logging이 되고있다..

 

도어센서를 붙였다 떨어뜨렸다 해보자

오 뭔가 된다!!!

on/off:0

on/off:1

 

근데 이상한 메세지가 있다.

 

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎34: error java.lang.NullPointerException @ line 87

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎34: debug Parsing 'on/off: 1'

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎32: error java.lang.NullPointerException @ line 87

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎32: debug Parsing 'on/off: 0'

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎00: debug configure: Write IAS CIE

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎00: debug 4f5e82feff570b00

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎00: debug 00158D0001A34928

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎35‎:‎00: debug 2C95

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎34‎:‎42: error java.lang.NullPointerException @ line 87

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎34‎:‎42: debug Parsing 'on/off: 1'

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎34‎:‎41: error java.lang.NullPointerException @ line 87

xxxxxxxxxxxxxxxxxxxxxxxxxx ‎오전‎ ‎12‎:‎34‎:‎41: debug Parsing 'on/off: 0'

 

error java.lang.NullPointerException @ line 87

 

뭔가 에러가있다.

Xiaomi Door Sensor DTH로 이동해보자

87: def now = new Date().format("yyyy MMM dd EEE h:mm:ss a", location.timeZone)

87라인 주석을 하고 돌려보자

(참고로 각 DTH에서 저부분이 하나씩은 꼭있다.

지금 예로 도어만 했을뿐 모션과 온습도에도 있다.

 저부분을 위에처럼 모두 바꿔야

스마트띵스 앱에서 샤오미 동작을 모니터링 할수있다.)

 

오 된다 !!!

 

 스마트띵 앱에도 값이 업데이트 되고있다

유레카~!!! 저값은 현재 시간 찍는 코드이다

뭐때문에 NPE(Null Pointer Exception)가 뜰까

의심되는건 time zone

 

DTH는 groovy라는 스크립트를 쓴다.

구글링

TimeZone.getTimeZone()으로 Timezone을 가지고 오고있었다.

 

여긴 기본으로 UTC인데 한국시간으로 가져와보자

KST(UTC+9)로 해보자 안된다...

다시 구글링 KST안되면 JST로해보라는 글 발견

일본이랑 우리랑은 시간같으니 JST로 변경하고

Time fomat도 내입맛에 맞게 바꿔보자

 

//원래 코드는 주석으로 처리하고

 

//def now = new Date().format("yyyy MMM dd EEE h:mm:ss a", location.timeZone) // 원래 코드

 

 

 

// 포맷과 timezone 부분을 고쳤다. 

 

   def now = new Date().format("yyyy-MM-dd EEE h:mm:ss a", TimeZone.getTimeZone('JST'))

 

다 고쳤으면

 

Save->Publish->For Me

 

 

 

 

스마트띵앱에서 관찰하니

 

 

   

올레 한국시간으로

 잘 갱신되어 올라온다

 

도어센서 닫혔을때

 

 

 

도어센서 열렸을때

 

 

 

 

온도센서 모습

 

 

 

모션센서 모션없을때

 

 

 

모션센서 모션있을때

 

 

 

모션 센서는 모션이 감지되고 No Motion으로 인식하기까지

 

약 2분이 걸리니

왜 동작 제대로 안하지라고 생각하지말자

약 2분뒤 "No Motion"으로 인식한다

 

힘든 샤오미 센서 연동기 끝 ㅠㅠ

 

내 삽질의 모든것을 기록했으니

다음 초보자분은 시간 낭비하지말고 잘했으면 하는 마음으로

포스팅했다

 

그래도 모르는분은 댓글로 문의~!!

 

 

총평

 

재밌지만 돈여유되면 그냥 SmartThings 센서를 구입해라....

샤오미는 힘들다

 

 

 

 

2017.06.19. 추가 포스팅

 

error java.lang.NullPointerException @ line 87

 

뭔가 에러가있다.

Xiaomi Door Sensor DTH로 이동해보자

87: def now = new Date().format("yyyy MMM dd EEE h:mm:ss a", location.timeZone)

 

위 내용에서 왜 나만 NPE가 발생했는지 알게되어 추가 포스팅한다

내 로케이션이 최초 허브 세팅할때

미국으로되어있었다.

 

스마트띵앱으로 지금 사는곳으로 옮기고

저장하고 테스트해보니

 

NPE가 발생하지 않는다

 

그리고 모든 저장이나 로그들이 UST기준이였는데

 

로케이션을 옮기고나니 KST로 바뀌어있었다.

 

나같은 문제 발생했을때 자신의 로케이션이 한국인지 확인하길 바란다

 

미국이라한들 에러는 날필요없는데 뭔가 다른 체크하는 로직이 더있는것 같다.

 

 

그리고 추가로 주말에 일요일에 세팅후

 

아침에 일어나니 스마트띵 센서는 잘 동작하고 있지만

 

샤오미는 모션센서와 도어센서는 Unavailable

온습도 센서는 업데이트가 되고있지 않았다.

 

그리고 makelism님과 kuku님은

베터리 정보가 올라오는데 난 올라오지도 않는다...

 

 

 

해결책을 찾으면 추가 포스팅하겠음...

 

해결 포스팅

[붱이 Story/IoT] - IoT 입문기 6탄 - SmartThings hub A/S 및 샤오미 정상 동작

 

 

 

 

※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.

 

 

 

 


  1. BlogIcon 초연결 2017.06.18 22:33

    붱이님 단기간에 엄청난 내공을 쌓으셨네요.
    곧 IoT로 새계도 제패해보시길...

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.06.18 22:37 신고

      @초연결님
      아직 1주일된... 초보에요^^
      내공을 쌓아야죠 이제...
      응원해주셔서 감사합니다.

  2. Favicon of https://www.makelism.net BlogIcon Makelism 2017.06.19 09:32 신고

    제 IDE, 샤오미 포스트 화면 열어 놓고 꼼꼼하게 비교하며 포스트를 봤는데 시간 설정을 제외한 나머지 설치 과정은 완전 동일합니다.
    아직 Zigbee 제품을 설치하는 과정이라 허브와 센서 거리가 멀다면 충분한 메쉬 네트워크 형성이 안 되어 생기는 증상이 아닐까 조심스럽게 예측해봅니다.
    설치가 잘 마무리되었으면 좋겠네요.
    저도 처음에 스마트싱스 세팅할 때 많이 고생했거든요.
    힘내세요.

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.06.19 09:40 신고

      거리가 멀진 않습니다 약 2에서 3미터? 정도 떨어진곳에 둔것같습니다.
      응원감사합니다ㅎ

    • Favicon of https://www.makelism.net BlogIcon Makelism 2017.06.19 09:47 신고

      가까워서 메쉬 문제는 없겠네요.
      포스트 내용으로는 전혀 문제가 없는데 무엇 때문인지 진짜 궁금합니다.

  3. Smart things 앱에서 샤오미 센서를 추가 문제 2017.11.12 18:20

    안녕하세요?
    컴알못 이지만 블로그에 있는 정보를 보고 너무 재미 있게 설명을 잘 해놓으셔서 용기를 갖고 각종 기기들을 구매 한 1인 입니다.
    헌데 생각 만큼 쉽지 않네요. 그래서 다들 얼마나 힘들게 방법을 찾으 셨을까 하는 생각에 이렇게 여쭤 보기가 죄송하기도 하네요.
    혹시 여유가 되신다면 아래 제가 직면한 문제에 답변을 좀 부탁 드려요.

    Smart things 와 샤오미 센서류를 일단 추가 하는데 생긴 문제인데요, https://graph.api.smartthings.com/ 에 연결하여 location 등록을 마쳤는데 설명하신 내용에 따르면 my hub 항목상에 무언가 나타나는 것 같아요.
    헌데 전 아무것도 안 나타나서 더 이상 진행이 안되네요. 관련 설명이 있는 곳이 있는가 해서 Docment 항목에 있는 설명서와 같은 (?) 내용을 읽어보아도 관련 내용은 안 보이는 것 같아요.
    참고로 현재 핸드폰 (아이폰7) 에 앱은 smartthings hub 와 연결이 되어 있습니다. 그리고 smartthings 앱 상에서 add things 를 누르고 샤오미 기기 를 Reset 과 똥침으로 100번도넘게 한것 같아요. 더하면 고장 날까 걱정도 되네요. ㅜ.ㅜ 문제가 무엇인지 의견좀 부탁 드려요.

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.11.12 20:55 신고

      안녕하세요
      사이트 들어가시면 Location에서 본인 로케이션을 클릭해보세요
      그러면 주소가
      https://graph-na04-useast2.api.smartthings.com/

      이런식으로 바뀔꺼에요 그다음에 my hubs에 가시면 설치하신 smartthings hub가 보이실겁니다.

      그럼 본인 hub 선택하시시면 list events라는게 보일텐데요

      그 창상태에서 st app에서 add device를 누루시고 똥침을한뒤

      사이트에서 f5를 누루시면 갱신되면서 catchall을 만나보실수 있을거에요 ㅎㅎ

      안되면 다시 질문주세요

      제가 활동하고 있는 카페입니다
      http://cafe.naver.com/stsmarthome

      오셔서 질문 자유롭게 해주시면 저 뿐만아니라
      많은분들이 도움주실수 있을거에요 ㅎㅎ
      그럼 카페에서뵈요~

  4. 감사합니다. 2017.11.19 21:52

    시간 나는 대로 씨름을 해보았지만 해결이 되지 않아서 말씀 하신 naver cafe 에서 다시 올려 보겠습니당.
    신경써 주셔서 감사하구요, 다시 구체적으로 상황을 올려 보겠습니당..

+ Recent posts