반응형

※ 우리 부부가 직접 구매하고 사용한 후기입니다. 

 

현재 SmartThings에서는 조건으로 특정요일만 지정할뿐 공휴일이나 연차때에 대한 조건을 쓸수 없었다

 

그래서 Google calendar를 연동해서 오늘이 휴일인지 아닌지 구분할수있는 센서를 만들었다.

 

 

정리하자면 3가지중에 하나라도 걸리면 휴일이라고 판단하고있다

 

1. 요일 - 사람마다 쉬는 요일이 다르기때문에 자기가 쉬는날을 체크하면된다

2. 공휴일 - Google Calendar에서는 빨간날을 모른다 그리고 사람또는 회사마다 조금씩 편차가있으니 자기가 쉬는 날 체크하면된다.

3. TAG - 본인 연차라던가? 근로자의날(구글에서 제공안함), 회사 창립기념일, 학교 개교기념일, 그리고 격주로 생성된 일정 생성시에 memo에 #dayoff만 넣어두면 알아서 휴일로 인지된다.

 

이제 이 센서를 조건으로 사용하면 좀더 스마트하게 자동화 룰을 생성할수있다.

 

하나 예를 들면 이런거?

예전 : 매일 일출시 커튼 열어를 했던것을 

이제 : 매일 일출시 && 휴일이 아닌날에 커튼을 열어로

 

New SmartThings 앱에서도 룰로 사용할수있습니다~

 

 

 

 

첫시작 Google Calendar API Client ID 받기

 

우선 일루 이동

https://console.developers.google.com

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

이동하면 프로젝트가 없을것이다 프로젝트부터 만들자

 

 

프로젝트를 만든다음에 이제 Google Calendar API를 Enable하자 아래 따라~~

 

 

이제 Enable은 됬고 OAuth client ID를 발급받자

아래따라~~~

 

 

 

위에 보이는 client ID와 client secret 아이디를 복사해두자

이때 복사 못했어도 다시가서 볼수있다

 

복사는 끝났고 이제 github의 코드를 가져와야한다

방법은 오날두님 Youtube로 대체 

 

github 정보는 위와같으니

 

SmartApp 설치시에 필요작업은

위에 복사해둔 client ID, client secret 넣고 oauth enable만 하면 끝

 

그리고 DTH도 같이 꼭 publish하고

 

그리고 Classic SmartThings 앱으로 가서 아래와 같이 설치 ㄱㄱ

 

 

Save를 하게되면  이제 설정은 끝

아래처럼 Device가 생성이 될것이고 

구글 캘린더에가서 일정을 만들때

메모에 #dayoff 를 작성해두면 그날을 휴일로 인식하게끔 되어있다.

 

 

 

 

궁금한점은 댓글주세요

 

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

반응형
반응형

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

 

붱이 Story

 

Weather Station


Weather Flow


https://www.indiegogo.com/projects/weatherflow-smart-weather-stations#/


작년에8월인가? 9월에 펀딩했는데

1년이 지나서 이제야 왔다..


이제품을 소개해주셨던 admusic님 후기도 참고하자

https://cafe.naver.com/stsmarthome/4202 


난 간단 후기 및 SmartThings DTH 개발을 위주로






Sky는 사방이 트여있는 야외에 설치하고


Air는 천정이 덮여있는 야외에 설치해야하는데...


아파트지만 우린 개방형 발코니가 있으니...


사방이 트여있진 않지만... 설치해보기로했다



SKY는 재활용장에서 굴러다니는 행거 파이프를 하나 주서와서

설치햇는데 지름이 딱맞아 설치가 간단했다.


케이블 타이로 고정하고 단차나는 부분은 

은쟈 화장솜을 겹쳤다.

그리고 케이블타이로 딱 고정하니 아주 굿



풀 Shade가 없기때문에 우선 발코니 가장 끝에 두고

화분받침대 뒤집어서 바닥의 열을 덜받게 하고

위엔 좀더 큰 화분 받침대를 덮어서 full shade??를 구성하였다 ㅋㅋㅋ



위사진 이후 3D Printer를 구입하여

마운트 제작


[붱이 Story/3D Printer] - Weather flow mount 제작




이젠 앱 연동 아주 깔끔하다





각요소들을 Graph로도 볼수있어서 좋다 아래는 풍속 풍향에 대한 그래프이다.



몇일 써보니 레인센서의 감지도는 아주 우수하다


가장 큰활용도가 될것같다.


허나 이것들을 산 이유는 단지 SmartThings에 연동된다 하여 구매하였는데


1년이 지난 지금도 지원하고 있지않다.


그저 Ifttt로 비오면 가상 스위치 만들어서 연동해서 써야한다


헌데 가상스위치를 반대로 언제 꺼놔야하는지가 참 애매했다.


근데 API가 오픈되어있더라 그래서 DTH를 만들었다


https://weatherflow.github.io/SmartWeather/api/



아래는 개발의 결과물이다.


이제는 IFTTT없이 SmartThings에서 내가원하는데로 자동화를 할수있게 되었다 !!!

아주 기쁘다


Korean Version


English Version




Detect 에 대한 옵션도 변경하여 원하는데로 설정을 가능하게 하였다.





사용법은 간단하다 SmartThings IDE에서 내 깃을 등록하고 weather flow를 선택해서 publish하고 


New device를 하여 device type을 weather flow를 선택해서 만들면 끝



그리고 자신의 Station id를 기입하면 끝~~~



git 연동을 안하였다면...


git hub 에서 소스를 가져와서 dth를 publish 하면된다.


https://github.com/WooBooung/BooungThings/blob/master/devicetypes/woobooung/weather-flow.src/weather-flow.groovy



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


반응형
반응형

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

 

붱이 Story

 

 

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

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

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

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

[붱이 Story/IoT] - IoT 입문기 7탄 - SmartThings와 로지텍 하모니 연동하기

[붱이 Story/IoT] - IoT 입문기 8탄 - SmartThings에 Rule Engine CoRE 설치하기

[붱이 Story/IoT] - IoT 입문기 9탄 - 28도가 넘으면 10년된 에어컨을 자동으로 On 하자

[붱이 Story/IoT] - IoT 입문기 10탄 - 구글홈으로 선풍기와 에어컨을 키고 끄자

위에 것들이 모두 로지텍 하모니를 통해

자동화를 한 포스팅인데

 

로지텍 하모니의 이상동작으로

불편함을 겪고있다

 

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

 

댓글까지 보면 어떤현상인지 확인가능하다

 

 

그것의 해결법으로

kuku harmony가 있다

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

 

Activity단위로만 SmartThing에 추가가되던것을

전용 리모컨형식으로 추가를 할수있게하여

 

기존 Activity단위로 움직이던 오동작을

잠재울수있다.

 

kuku님께 허락맡고 최신내용으로

한포스팅으로 설명하겠다

 


KuKu하모니 설정법


 

 

우선 내 환경은 Synology DS716+

Logitech Harmony가 준비되어있고

 

harmony에는 총 4가지 Device가 연결되어있다

 

삼성 TV

SKB 셋탑박스

10년된 삼성 벽걸이 에어컨

Dyson 날개없는 선풍기

 

 


 

harmony-api docker 설치

먼저 harmony를 직접 컨트롤 하는 harmony-api를

 

Synology Nas의 Docker를 이용하여 설치하자

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

 

DSM의 패키지 센터의 Docker에서

 

아래와 같이 따라하자

 

 

레지스트리에서 harmony-api를 검색하여

jonmaddox/harmony-api 이미지 다운로드

 

이미지 탭으로 이동

바로 가면 다운중이라 용량이 작을것이다

용량 변화가 멈추면 실행버튼이 활성화 된다

 

 

실행을 누루면 컨테이너 생성창이 뜬다

음영 표시한 부분만 따라하자

 

고급 설정에서 자동 재시작 활성화 체크

 

네트워크텝으로 이동해서 아래

음영표시 체크

 

그리고 나와서 적용

 

 

비디오 형식 으로 이동해보면

harmony-api가 실행중이란걸 볼수있다.

 

세부사항을 클릭해서 터미널에 가보면

아래처럼 기존 harmony hub에서 뭔가 신호가 오고있는것을 볼수있고

 

생성 버튼을 누루면 설치된 도커 이미지 터미널이 실행된다.

잘설치된 것을 확인할 수 있다.

harmony-api 설치는 이제 끝났고

kuku harmony smart app 설치


 

kuku harmony smart app / dth 설치

 

SmartThings IDE로 가자

http://graph.api.smartthings.com

 

 

My SmartApps에서 Setting을 클릭

 

repository 정보를 아래와같이 넣고 save

https://github.com/turlvo/KuKuHarmony

 

 

 

위에 Settings 왼쪽에 Update from Repo를 눌러 publish~~

미리 캡쳐떠둔게 없다 ㅠㅠ

http://kuku.pe.kr/?p=6313
쿠쿠님이 상세히 적어두셨으니 따라하면된다

 

 

위에 SmartApp publish 과정 이후에

DTH(My Device handlers)도 또옥같이 해서 publish를 해야한다

 

IDE에서 세팅은 완료되었다

 

 


 

ST App에서의 기기 추가

ST App으로 온다음

 

Automation ->  Add a SmartApp -> 스마트 앱 나의 -> KuKu Harmony

 

 

스샷을 못찍었지만

누르게되면 Ip address입력이 뜬다

현재 나스의 내부 주소를 입력한다

포트는 8282

 

192.168.X.X:8282

그러면 알아서 내 harmony hub를 찾게되고

 

이제 하나하나 디바이스를 추가해주면된다.

 

 

 

 

 

 

 

 

 

하나예로 에어컨 추가하는 것을 보여주었고

다른 디바이스들도 동일하게 추가해주면된다

 

 


 

디바이스 Control 해보기


아래가 모두 추가한 결과이다 기존에

Activity는 다 삭제하였다

 

 

 

 

 

하우젠 에어콘 디테일뷰

그전엔 Activity일땐 On/Off만 됬었지만

Kuku님이 만들어주신 DTH(위에 추가한)에 의한

여러키들을 사용할수 있다.

 

 

 

셋탑박스는 Default DTH를 선택해서 On/Off 만 있다.

 

 

 

TV도 역시 kuku TV DTH에 의한 여러 키 제어 가능

 

 

선풍기는 kuku fan dth

 

 

이제 하모니앱을 킬일이 없이 SmartThings app으로

on/off 말고도 제어가 가능하고

 

Activity 제어의 오동작들도 없어졌다

 

 

구글홈에서도 잘인식된다

nickname으로 영어이름을 부여해야 동작한다

 

 

 

아주 만족한다.

 

KuKu님 잘쓰겠습니다 ㅎ



2018.12.21. 업데이트

[붱이 Story/IoT] - 로지텍 하모니 다운그레이드 하기


 

 

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

 

반응형
반응형

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

 

붱이 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 및 샤오미 정상 동작

 

 

 

 

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

 

 

 

 

반응형

+ Recent posts