반응형

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

 

붱이 Story

 

[붱이 Story/IoT] - SmartThings와 Home Assistant 연동하기 2탄 - SmartThings Bridge 설치


 

2탄까지 잘 따라왔으면 


이제 HA 세팅을 해야합니다.


여태는 설치만 주구장창한거라고 보면되고


이제 세팅... 설정...


참 힘들죠?



우선 HA Mount한거 기억하시죠? config


그폴더가면 configuration.yaml이 있어요

아 혹시 모르시는분은 네트워크 드라이브로

NAS 폴더를 지정하면 좋아요

요기 잘정리된 블로그가 있네요

요거대로 하시면되요~


http://blog.naver.com/mrlan64/100198951942


그래도 모르겠으면 말씀해주세요 

알려드릴게요


여튼 


configuration.yaml에

아래와 같이 입력합니다

음영부분만 하면됩니다.


1탄에서 !secrets.yaml에 ip적으신거 아시죠?

그거 넣는거에요

1탄부터 차근 차근 따라하세요 아랐죠?


쉬어가는 시간~~~

.

윗부분tts 다 기본으로 적혀있을텐데


아래 language는 없을거다

저부분에 ko를 넣으면 구글홈이 한국어로 말한다 

꿀팁이죠?


HA키면 구글홈이 있으신분은 자동으로 잡혀있을꺼에요



쉬어가는 시간 끝




configuration에 mqtt 적어넣으셨으면



이제 smart bridge가야해요


이것도 마운트한거 2탄에서 기억하시죠??


config


그위치로 갑니다.


config.yml을 엽니다.

그리고 여기서 state.json파일 있는거 보이시죠?

있다는거만 알고계세요 뒤에 쓰입니다



config.yml을 열어서 이부분을 바꿉니다

음영 표시 부분만 바꿉니다.

여기서 저랑 다를곳은 host ip주소말곤

다똑같이 넣으셔야해요~~


이제 다음 순서로 다시시작을 하세요

mosquitto -> smartthings-mqtt-bridge -> homeassistant



이제 센서를 연결할 준비가 진짜 다끝났어요~~~


다시시작을 하고 조금만 지나면


아까위에 state.json 가 생기거나

이미있었다면 값들이 채워져있을꺼에요

열어보세요

중요해요

subscriptions에 적혀있는것들이

HA에서 ST를 연결할수 있는 기기들이에요

이해하셨어요?

저기 목록에 없다면

제대로 뭔가 안하셨거나

서로 통신을 못하고 있는거에요

다시 처음부터 꼼꼼히 뭐가 빠졌나보세요 ㅎㅎ

리스타트를 안했을 확율이 가장크고

SmartApp에서 센서 선택을

안했을 확율이 그담... 체크해보세요


여튼 보인다 치고


그리고 보시면 앞에 smartthings에 해당하는 값은 위에

bridge의 config.yml에 

preface에 해당하는 값이에요


그리고 가운데 값은 


우리 ST에서 보이는 기기들 이름있죠?

그값이에요 IDE 에서는 Label에 해당하는 값이구요


이값들은 한글이면 제대로 동작을 안하는것 같아요

참고하세요 저만 안될수도있으니

한글로 해보시고 안되면 영어로해보세요

띄어쓰긴 있어도되요


그리고 마지막 값은 센서의 기능이라고 보면되요


preface/센서이름/센서기능


이제 이해됬죠?


저걸로 센서를 만들거에요



ST 센서들 모두다 HA에 추가하기



ST 센서 HA에 추가 하기



위에 state에서 적힌거 잘 보고 센서를 만들면되요


어디서 만드냐?


센서 기능에 맞게 파일들을 만드세요


제 ST 기준으로 만든거에요


device_trackers - 재실센서들

 lights - 전구

sensors - 도어 온습도 모션 값만 올려받는것들

switchs - kuku hamony 스위치들 outlet 등 on off

위에 파일을 만들고

configuration.yaml에서 이렇게 연결해줘야해요

똑같이 스펠 틀리지 않게 똑같이 넣으세요



그리고 이제 아까 state.json 에 값들을 이용하여


각 yaml에 채워넣습니다.


방법은 여기 자세히 있구요

https://home-assistant.io/components/switch.mqtt/

https://home-assistant.io/components/sensor.mqtt/

https://home-assistant.io/components/light.mqtt/

https://home-assistant.io/components/device_tracker.mqtt/



하나씩만 예를 들게요

switch

- platform: mqtt

    name: "TV"

    state_topic: "smartthings/TV/switch"

    command_topic: "smartthings/TV/switch"

    payload_on: "on"

    payload_off: "off"

    retain: true


보면 아! 하는게 오시나요?


name 은 HA dashboard에 보이는 이름 한글도됨

state_topic은 값을 가져오는 명령어(ST에서 on/off하면 HA에서 반영됨)

command_topic 은 반대로 날리는 명령어 (HA에서 on/off하면 ST에서 반영됨)

payload는 on일때 뭘보낼꺼냐

off 일때 뭘보낼꺼냐의 의미

retain true라는건 ST와 싱크가 되게 하겠다? 뭐이런 의미


sensor

 - platform: mqtt

    name: "Kitchen Temperature"

    state_topic: "smartthings/Kitchen Motion Temp/temperature"

    unit_of_measurement: "°C"

    qos: 0

    retain: true


sensor엔 state만 있는이유 아세요??

위에 설명했으니 알아야하는데

얜 명령을 내리는게 아니라 state만 가져오기 때문이에요

그냥 HA에 표시만 해줄분 HA쪽에서 보낼건 없기때문이죠 이해되죠?

unit은 설명안해도 될거고

qos는 0 1 2 설정을 할수있는데요

0이 젤빠르고 2가 느린대신 더 확실한거에요

이정도만 알아도 되고 (사실 깊게모름)



light

light는 사실 따라했는데 잘안되요...

ST에서 HA는 잘되는데 반대로 

HA에서 ST는 할때 에러를 뿜어요 

뭐 HA하는 이유가 전 이게 아니여서 안되도 그만이라 패스할게요

되시는분 공유부탁드려요~~

우선 제가 한값만 참고하세요

 - platform: mqtt

    name: "Kitchen Light"

    state_topic: "smartthings/Kitchen Light/switch"

    command_topic: "smartthings/Kitchen Light/level"

    brightness_state_topic: "smartthings/Kitchen Light/level"

    brightness_command_topic: "smartthings/Kitchen Light/level"

    rgb_state_topic: "smartthings/Kitchen Light/color"

    rgb_command_topic: "smartthings/Kitchen Light/color"

    payload_on: "on"

    payload_off: "off"

    retain: true

꼭 양쪽방향 성공하시면 저도 알려주세요? ㅋㅋ



device tracker


제블로그에 추가했던 센서 기억나세요?

[붱이 Story/IoT] - Samsung Connect 사용기 2탄 -본인폰을 재실센서로 사용하기

이센서에요

얜 device_trackers.yaml에 넣으면 안되요.

이유는 모르겠어요


근데 요건 제가 device tracker로 넣은이유는 분명 저처럼

똑같이 할것같아서 구분지어놧어요

(삽질 방지)


이아이들은 sensors.yaml에 넣어야 인식되요 

중요합니다 ㅎㅎ

반대로 재실센서 HA에서 추가할땐 

device_trackers.yaml에 넣어야합니다 참고하세요 ㅎ

  - platform: mqtt

    name: "Booung S8 GPS Presence"

    state_topic: "smartthings/Booung S8/presence"

    qos: 0

    retain: true

    

  - platform: mqtt

    name: "Eunja G6 GPS Presence"

    state_topic: "smartthings/Eunja G6/presence"

    qos: 0

    retain: true



이제 제가 가진 모든 ST 센서는 다 넣은것같아요

다넣고 바로 보이진 않아요


이러면 또 리스타트해야해요

도커 알려준 다시시작으로 해도되고


이젠 HomeAssistant 안에서 하는법을 알려줄게요


HomeAssistant 여세요

음영 맨아래 RESTART 보이시죠

그럼 homeassistant 도커에서

다시시작한것과 같습니다.

위에 네개는 스크립트파일만 고쳤을때

리로드 가능한거여서 알아두라고 표시해뒀습니다.

core 는 모르겠고 사실.. ㅋㅋ

RELOAD AUTOMATION 경우 예를 들면

위에 automations.yaml 파일만 수정했을때

 HA 재시작 없이 갱신 가능해요 이정도면 이해되죠?

여튼 사설이 길었고 리스타트 하고오면


짜잔~~~


좀많죠??? 제가 설명 안하고 만든 것들도 있어서 그래요


여튼 이런식으로 이쁘게 꾸밀려면 그룹이란걸해야해요 


런2유3님 그루핑 설명은 여기서 확인

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

 


여기서 Light on off빼곤 모두 ST 값들과 싱크가 맞아요

kuku harmony까지요



이제 ST걸 가져온거까지 했쬬??


다음 포스팅엔 HA 에서 만든걸 ST로 넘기는 작업을 할꺼에요


HA서 만든 ping으로 체크하는 재실센서를

ST의 가상 스위치랑 연결할거에요

그럼 ST에서도 확인이 가능하겠죠?


어려우면 말씀해주세요~~ 

설정한 conf파일이라도 보내드릴게요



[붱이 Story/IoT] - SmartThings와 Home Assistant 연동하기 4탄 - HA->ST 연결(예제 재실센서)



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





반응형
반응형

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

 

붱이 Story

 

[붱이 Story/IoT] - SmartThings와 Home Assistant 연동하기 1탄 - Home Assistant 설치



홈어시스턴트를 설치가 되었으면 이제 


SmartThings와 연동하기위해 


두가지 일을 해야한다.


하나는 mqtt broker 설치

둘 smartthings-bridge 설치


mqtt는 http, coap처럼 프로토콜 종류중에 하나이다

페이스북이 mqtt를 쓴다고 알려져 있다


내가 이것을 쓰는이유는 

Home-assistant(이하HA)가 지원을 하고있고

smartThings-bridge가

mqtt기반이기 때문이다.

내지식은 여기까지

mqtt로 검색하면 많으니 찾아보길...


여튼 따라하면 다되니 따라해보자

베이스는 아래 링크를 보고 따라했음

https://home-assistant.io/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/



전체 시퀀스는 다음과 같다


(출처 : https://home-assistant.io/blog/2016/02/09/Smarter-Smart-Things-with-MQTT-and-Home-Assistant/)


mqtt broker 설치


mqtt broker는 그냥 mqtt server라고 생각하면된다

이름을 왜 broker로 지었는진 모르겠지만

여튼 걍 mqtt 서버라고 생각하면된다


먼저 mqtt broker로 위 링크에선 Mosca를 예제로 두었다

도커 주소 matteocollina/mosca


참고로 내 Synology NAS에서는

Mosca가 제대로 동작을 하지 않았다.


설치법은 동일하니 

mosca로 시도해보고 안되면

내가 선택한 mosquitto mqtt broker를 시도



다음부터 도커 설치에서 실행까지과정은

[붱이 Story/IoT] - SmartThings와 Home Assistant 연동하기 1탄 - Home Assistant 설치

를 참조해서 하자


근데 가기싫죠?

좀더 친절을 배풀어서 긁어옴

 home assistant라고 되어있는부분은 감안하고 보자


다운로드를 하면 버젼선택화면에서 latest


왼쪽 이미지 텝으로 이동 오른쪽에 용량이 올라가는게 보이고 (아래)

다받아지면 실행 버튼이 활성화된다.



실행 버튼이 활성화 되면 실행을 누르던

home-assistant 더블클릭을 누룬다

그럼 아래와같은 컨테이너 생성 화면이 뜬다.

컨테이너 이름을 적고

아래 고급 설정을 누른다 

지금 부터는 앞으로 설치할 도커 이미지에 대해서 

공통 설명이니

꼭 자세히봐야한다.



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


네트워크 탭 아래 부분에 

"Docker 호스트와 동일한 네트워크 사용" 체크


환경탭에서 변수 추가

변수 "TZ"

값 "Asia/Seoul"



출처: http://blog.weekendproject.net/110 [은쟈와붱이 부부 블로그]



마운트 작업은 mosquitto 는 안해도 되서 뺌


mqtt broker는 이걸로 끝 쉽죠?




 smartthings-mqtt-bridge 설치


이제 조금 할게 많은 smartthings-mqtt-bridge


아래 stjohnjohnson/smartthings-mqtt-bridge 검색



위위 HA 및 mosquitto 설치법 참고해서 똑같이 설치하되


볼륨탭에서 config 마운트 추가



모두 설치하고 아래처럼 보이면

재대로 동작하는것이다



 smartapp 및 dth 설치


SmartThings IDE로 이동


https://graph.api.smartthings.com


My Device Handlers로 이동

Settings클릭

아래 화면에서 

Owner : stjohnjohnson

Name : smartthings-mqtt-bridge

branch : master

save


그다음 update from repo에서 위에 선택한


smartthing-mqtt-bridge 선택


선택하면 맨오른쪽 dth가 보인다 클릭하고

publish 체크하고 Excute Update



그리고 My Devices 이동하여

+ New Device 

하여 아래와 같이 추가

Name은 맘대로 지정

Device network Id는 

다른 디바이스 id와 겹치지 않게

아무값이나 입력

그리고 아래처럼 따라서 하세요

자기상황에 맞게~




만들고 난뒤 만든 Device의 

Preferences 에서 edit을 누릅니다.



이화면에서 IP Address는 mqtt bridge를 설치한 곳의 IP

난 시놀나스 IP


 mqtt bridge 포트는 8080 (누구나)


마지막 mac address는 

mqtt bridge가 설치된곳의 mac address

(날 3일동안 삽질에 빠지게 한놈)


주소는 콜론으로 구분

00:11:22:33:44:55


mac 어드레스 확인법은

iptime기준

내부 네트워크 설정에서 확인

꼭 수동 등록 후 사용하길 그래야 고정이된다.


여담으로 여기서 확인해서 ....

3일 허비했다...

이유인즉슨 저 iptime의 내 서버 ip에 해당하는 mac값은

얼마전 교체한 214+의 주소로 저장되어있다 ㅠㅠ



반드시 ssh 터미널 이용해서 

자기서버에서 ifconfig 입력해서

실제 값을 눈으로 확인하고 넣길바란다


아래보면 ifconfig치면 내 서버 ip가

inet addr로 있고 

그위에 HWaddr이라고있다 이게 mac address다.


요값이 가장 정확하니 이값을 사용하자


DTH설정은 되었고 이제 SmartApp 설정


같은 git repogitory니 


바로 My SmartApps로 이동해서

"Update From Reop"

그리고 아래 스마트앱 선택

맨아래 Publish 선택후

"Excute Update"



여기까지 설정후

폰의 SmartThings App으로 가자


Automation 탭 이동

SmartApps 이동

+ Add a SmartApp 클릭

맨아래 

+ 스마트 앱 나의

여기까지오면 MQTT Bridge가 보일것이다

선택하고 들어가면 

Input 항목에서 자기가 가지고 있는 센서들의 속성들에만

Bold로 표시될것이다 선택해서 

Bridge와 연결할 디바이스들을 모두 선택해주고 내려가면

맨 오른쪽 화면이 나오는데 


Bridge 항목에서

Notify this Bridge에서 위에서 추가한 디바이스

위 예제는 이름이 "STDevice4HA"

나는 그이후 이름을 바꿔서 MQTT Bridge라고 되어있다.

선택해주고 Done 하면 준비 끝



여기까지 준비는 끝났다


이제 제대로 따라했다면


HA에서 센서 연동작업만 하면 바로 될겁니다


HA에서의 연동법은 다음 포스팅에서~~


[붱이 Story/IoT] - SmartThings와 Home Assistant 연동하기 3탄 - SmartThings 기기들 HA에 연결



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




반응형

+ Recent posts