반응형

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

 

붱이 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

 

SmartThings(이하 ST) 이제 가지고 있는

기기들의 웬만한 설정은 다 끝났고

자동화도 얼추 됬고 


하고 싶은게 두가지가 생겼는데


첫째. wifi 공유기에 붱이와 은쟈가 붙는 시점에 재실 판단을 하고싶다.

둘째. 사는곳의 미세먼지 값을 ST 에서 확인하고 싶다.


ST로는 SmartApp을 짜야하는데 진입장벽이 높았다


그래서 이것들을 쉽게 할수있는것이

Home Assistant(이하 HA)란걸 알게되었다


HA를 설정하기위해선 라즈베리파이나

개인 서버가 있어야한다


나는 시놀 나스가 있으니 여기서 구축했다.

사용법은 아래 참조함

https://home-assistant.io/docs/installation/docker/


SYNOLOGY NAS

As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatability-information, if your NAS is supported), see https://www.synology.com/en-us/dsm/app_packages/Docker

The steps would be:

  • Install “Docker” package on your Synology NAS
  • Launch Docker-app and move to “Registry”-section
  • Find “homeassistant/home-assistant” with registry and click on “Download”
  • Wait for some time until your NAS has pulled the image
  • Move to the “Image”-section of the Docker-app
  • Click on “Launch”
  • Choose a container-name you want (e.g. “homeassistant”)
  • Click on “Advanced Settings”
  • Set “Enable auto-restart” if you like
  • Within “Volume” click on “Add Folder” and choose either an existing folder or add a new folder. The “mount point” has to be “/config”, so that Home Assistant will use it for the configs and logs.
  • Within “Network” select “Use same network as Docker Host”
  • Confirm the “Advanced Settings”
  • Click on “Next” and then “Apply”
  • Your Home Assistant within Docker should now run

Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following:

  • Go to the Docker-app and move to “Image”-section
  • Download the “homeassistant/home-assistant” image - don’t care, that it is already there
  • wait until the system-message/-notification comes up, that the download is finished (there is no progress bar)
  • Move to “Container”-section
  • Stop your container if it’s running
  • Right-click on it and select “Action”->”Clear”. You won’t loose any data, as all files are stored in your config-directory
  • Start the container again - it will then boot up with the new Home Assistant image

RESTART

This will launch Home Assistant and serve the web interface from port 8123 on your Docker host.

If you change the configuration you have to restart the server. To do that you have 2 options.

  1. You can go to the service developer tool icon service developer tools, select the service homeassistant/restart and click “Call Service”.
  2. Or you can restart it from an terminal by running docker restart home-assistant


라즈베리에 설치법은

https://home-assistant.io/docs/installation/raspberry-pi-all-in-one/


도커로 이동

레지스트리에서 home-assistant라고 검색




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


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

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



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

home-assistant 더블클릭을 누룬다

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

컨테이너 이름을 적고

아래 고급 설정을 누른다 

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

공통 설명이니

꼭 자세히봐야한다.



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


볼륨으로 가서 폴더추가로 

/docker/homeassistant/config를 만들고

마운트 경로를 "/config"를 한다.

요기 스텝은 필요한 도커이미지만 하면된다

home assistant 

smartthings-bridge (앞으로 설치할예정)



네트워크 탭 아래 부분에 

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


환경탭에서 변수 추가

변수 "TZ"

값 "Asia/Seoul"


위 과정은 도커로 설치시 이미지의 시간이 서울이 아니다

그거 맞춰주는것이고 

만약 저렇게해도 안맞을경우

도커 이미지 설치 / 실행뒤에

터미널 탭에 생성누르면

bash란게 뜬다 거기로 이동하여

노란색 음영 명령어 dpkg-reconfigure tzdata

후 아래화면처럼 진행하면 맞춰진다.


여튼 이어서 설치를 하자

위에까지 고급설정 다하면 적용


비디오 형식으로 가면

homeassistant가 실행중으로 뜬다



이렇게 만들고 아까  위에서 마운트로 연결된 곳으로 이동하면

configuratioin.yaml 파일이 보인다

그리고 빈 secrets.yaml 이라고 만들자

스펠꼭확인하자  



secrets.yaml 파일을 열어

아래와같이 

Key: value 형태로 원하는 Key 이름을 넣고

세개는 기본으로 넣다 많이쓰이니

이건 어따쓰냐면 homeassistant를 

외부에서 접속할때 쓸 password이다

server_ip도 내가 지은이름이니 알아서 짓고

주소는 homeassistant가 설치된곳의 서버 ip를 넣으면된다


그리고 cofiguration.yaml을 열고

api_password란 부분을 찾아가서 아래와같이 입력한다

!secret entry_passwd

Secret component의 entry_passwd 키값을 사용하겠다는 뜻이다.



cofiguration에 대한 기본지식은 아래 카페 런2유3님이 잘설명했으니 한번보자

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


그리고 외부에서 하기 위해 각자 공유기에

포트 포워딩을 8123을 추가하자

homeassistant의 기본 포트는 8123이다.


이제 도커에서 해당 이미지를 다시 시작하자



브라우저를 열고 (크롬만된다)

자신이 설정한 ip

 http://192.168.0.X:8123

밖에서는 

http://ddns주소:8123


밖에서 접속시는 passwd를 요구할테니 

위에 설정한 passwd를 입력하고 들어가본면된다


아래와같이 되면 설정완료

아래화면츤 처음 화면이 아니고 초기에 이리저리 만질때 화면이니 무시하자




1탄 Home Assistant 설치하고 띄우기 완료


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




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



 


반응형

+ Recent posts