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

 

현재 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 를 작성해두면 그날을 휴일로 인식하게끔 되어있다.

 

 

 

 

궁금한점은 댓글주세요

 

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


  1. Favicon of http://breadzini.kr BlogIcon Breadzini 2019.04.27 17:16

    와.. 이 부분 정말 제가 필요했던 기능..! 하지만 저는 홈브릿지 기반 홈킷 만 사용하고 있어서 찾아보니 이런게 있더라구요. > https://www.npmjs.com/package/homebridge-calendar 아직 테스트 해보진 않았지만 홈브릿지 사용자는 이 쪽을 활용해봐도 괜찮을 것 같네요.


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

 

붱이 Story

나는 data.go.kr에서 제공하고있는

미세먼지 정보 Open API를 사용해서

Home Assistance에서 사용하고 있었다.


SmartApp으로 만들어서 서버없이 해야지 생각만하다가


SmartHome 카페 slasher님이 위에 환경 공단 API를 가지고


DTH를 만들어주셨다. 너무 감사합니다^^


http://cafe.naver.com/stsmarthome/2536



미세먼지뿐만 아니라 Weather정보도 같이 표시되는

dth하나가 있으면 좋겠다 생각이 들어서


토요일 아침부터 작업을 시작하였다.


slasher님꺼에서


SmartThings에서 자체적으로 제공해주는 weather함수를 이용해서


통합하는게 목표



결과를 먼저 보여드리면




대기 오염 부분은 환경공단에서 제공하는 API를 사용해서 출력하였고 (Slasher님의 dth 기반)


아래 날씨 정보 부분은 smartThings weather함수를 이용하여서 출력하였다.


두개의 특징을 소개하면


"환경공단 정보"

 gps정보가 아닌 측정소의 기준으로 정보를 준다

그래서 Configuration에서 API키 뿐만 아니라 측정소 정보도 알려주어야한다.



"SmartThings Weather"

날씨 Open API인 https://www.wunderground.com 를 기반으로

API Key가 별도 없이(SmartThings내부에 내제됨) dth에서 사용가능하다.


Home Location의 GPS값을 통해 정보를 가지고 온다.


attribute값들은 https://www.wunderground.com/weather/api/ 


참조해서 어떤것이든 가져다 쓸수있다.



두가지 정보를 하나로 합치고 Weather Station을 꾸며보았다.


카페에서 ShinJjang님과 Onaldo님이 Tile 재배치와 색상변경 및 테스트 마루타가 되어주셨다 ㅎ

다시 한번 감사드립니다.



사용법



1. https://data.go.kr 에 가서 회원 가입

2. "대기오염정보 조회 서비스" Open API 활용 신청


여기서 상세 기능 보이는거 다신청하자

여담으로 측정소 조회를 하려면 "측정소정보 조회 서비스" 요것도 신청 같이하자~



3. API Key 받기



4. Graph IDE가서 git hub repository 입력

https://graph.api.smartthings.com/이동

본인 Location 선택 

주소 타입이 자기맞는 서버로 이동확인 아래처럼~

https://graph-na04-useast2.api.smartthings.com

"My Device Handlers" 이동

"Settings" 클릭

아래처럼 입력


"Save"


5. DTH Self Publish

"Update from Repo" 에서

"BooungThings(master)" 선택

New (only in GitHub) 에서 deviceType선택

맨아래 Publish 선택후

"Execute Update" 클릭


6. Weather Station Device 만들기

"My Devices" 이동

"+New Device" 선택

아래 처럼 Type에 방금 추가한 "SmartWeather Station For Korea"

Device network Id는 기존 device들과 겹치지 않게만 아무값

7. Configuration

그리고 바로 컴터로 하는김에

설정값까지 컴터로

위에 만든 Device로 이동

 중간에 Preferences가 보일것이다


edit 클릭

아래 빈곳에 위에 얻은 API키 입력

그리고 측정소 입력 측정소 뭘입력해야하는지는 아래 다시 설명

Tile에서 보여질 이름은 

측정소 이름대신에 보여질 이름 입력 안쓰면 측정소 이름으로 출력

Interval은 사실 정보제공해주는 측정이 정각에만 측정을 한다.

하루 500회 콜만 가능하니 알아서 판단~



8. 측정소 조회


측정소 이름이 뭐가있을까 갑자기 짜증이난다


환경공단가서 측정소가 뭐가있나 봐야한다


Kotlin과 web도 공부할겸


짱나서 만들었다




사용 방법은 간단

http://weekendproject.net:8081/api/airstation/{검색어}


아래는 "중구"로 검색한 예이다

http://weekendproject.net:8081/api/airstation/중구




결과가 없는경우는

여튼 검색해서 측정소 이름 부분의 것을 입력하면된다.


컴터로 안하고 폰으로 바로하려면


Weather Station Device선택하고 

오른쪽위 톱니바퀴 아이콘 Configuration 해서

아래 항목에서 입력



참고로 측정소 조회는 내 key로만들어서 하루 500회 호출만 되니


악의적으로 너무 많이 조회하지마세요 ㅠㅠ


측정소 조회 서비스도 신청하신분은 아래 query로 직접 조회하세요

http://openapi.airkorea.or.kr/openapi/services/rest/MsrstnInfoInqireSvc/getMsrstnList?addr=${SearchWord}&ServiceKey=${본인APIKey}


끝~~~ 

WebCore에서 자동화는 알아서 입맛에 맞게~




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



  1. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2018.03.29 23:33 신고

    이거 링크복사 어떻게해요? 안되는데용

  2. 쿠쿠리 2018.08.15 23:40

    음 뭔가 꼬인거 같습니다.
    api 둘다 받아다 설정했는데 대기질 정보가 안넘어 와서 (날씨는 들어오고)

    카페가서 slasher 님 dth로 설정해 보니 그건 잘 넘어오네요..(작동 안해서 살펴보다 리플 중 팁에 따라 Service 대문자 s로 수정후에 작동)
    홈킷도 공기질 플러그인 같은 api로 잘 작동 하구요.

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2018.08.15 23:46 신고

      쿠쿠리님 안녕하세요
      service의 s요?? 조금만 더 자세히 말씀해주세요 수정해야할 부분있으면 수정하겠습니다

  3. 쿠쿠리 2018.08.16 21:01

    https://cafe.naver.com/stsmarthome/2536
    최근 리플에 언급이 있습니다.
    혹 같은 구문이 있을까 싶어서 dth 스크립트 뒤져봤는데 없더라구요.
    저만 안되는 거라면 뭔가 잘못한거겠죠 ㅠ
    측정소는 그냥 위치로 찾은 “금천구”와 api 두개 다 시험해 봤습니다. (Slasher님 dth에서는 두개 다 작동 하고 있습니다.)

  4. 서뎅 2019.01.10 19:22

    안녕하세요!
    붱이님 자료 보면서 차근차근 하나씩 배워 나가고 있습니다.
    문의 드릴께 있는데요

    4번항목
    Graph IDE가서 git hub repository 입력
    https://graph.api.smartthings.com/이동
    본인 Location 선택
    주소 타입이 자기맞는 서버로 이동확인 아래처럼~
    https://graph-na04-useast2.api.smartthings.com
    "My Device Handlers" 이동
    "Settings" 클릭
    아래처럼 입력

    여기서 왜 전 settings icon이 없을까요?

    제가 뭘 잘못한건지.....

  5. 돌멩이 2019.01.10 19:42

    올려주신 것 보고 잘 따라했습니다.
    좋은 글 감사합니다.

  6. 서뎅 2019.01.10 23:22

    네 setting 버튼이 전 없네요
    경로가 잘못된건지 ...
    ㅜㅜ

+ Recent posts