728x90

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

 

붱이 Story

 


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

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

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



이사로 인해 4탄이 많이 늦어졌다


하지만 4탄을 해야 비로소 ST와 HA연동을 다했다고 말할수 있다


3탄이 ST에서 HA 연결이라면


4탄은 HA에서 ST로 연결이다.


예제로 HA에서만 할수있는 Router 재실센서를


ST 가상 센서와 연결할 것이다.


물론 이건 SmartApp과 개인 서버로 가능하다 (HA 없이)


하지만 지금 내가 하는 방법이 한 100배 쉽다고 말할수있다


GPS 재실센서 추가하는법은 여기 링크 참조

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



결과 화면 부터 보자~


 ST에서 화면과 Samsung Connect App(이하 SCApp)에서 화면

SCApp에서 보이게한건 다음 포스팅에~

이번 글만 따라해선 SCApp에선 보이지않는다

SC App에 보이게 하는건 꿈을위한 계획님 글 참고

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




GPS/WIFI 은쟈와 내꺼 총 4개가 추가되어 있는것을 확인할수 있다.(위)


1단계 HA에 라우터(WIFI) 재실센서 만들기


configuration.yaml에 아래 device_tracker 추가


...생략

mqtt:

  broker: !secret server_ip


switch: !include switchs.yaml

sensor: !include sensors.yaml

light: !include lights.yaml

device_tracker: !include device_trackers.yaml

group: !include groups.yaml

script: !include scripts.yaml

automation: !include automations.yaml

... 생략



device_trackers.yaml을 생성하고 아래와 같이 추가

ip는 자신의 폰이나 와이프가 공유기 붙었을때 할당받은 ip를 넣는다

앞에 이름도 자신이 원하는데로 기입

 - platform: ping

   hosts:

     Booung_S8_WIFI: 192.168.0.17

     Eunja_G6_WIFI: 192.168.0.6


 == 2017.09.01 내용 추가 ==

혹시 집에 공유기가 asus라면 

위에 ping 방법보다 이방법을 선호

host에 공유기 관리자페이지들어갈때 ip(NAS ip가 아니다)

username은 관리자 페이지 들어갈때 id

password 관리자 페이지 들어갈때 비번

 protocol: telnet 

  - platform: asuswrt

    host: 192.168.1.1

    username: your admin id

    password: your admin password

    interval_seconds: 30

    consider_home: 180

    track_new_devices: no

    protocol: telnet

그리고 마지막으로 관리자페이지로 가서 telnet을 on


https://www.asus.com/support/faq/1005449/


다적고 HA 재시작


그러면 


known_devices.yaml 이라는 파일이 생성되어있을것이다

열고 기입

중요사항은 각 device mac address 잘보고 적자~

booung_s8_wifi:

  hide_if_away: false

  icon:

  mac: 9e:dB:해당mac address

  name: Booung S8 WIFI

  picture:

  track: true

  vendor: SAMSUNG


eunja_g6_wifi:

  hide_if_away: false

  icon:

  mac: da:0g:해당mac address

  name: Eunja G6 WIFI

  picture:

  track: true

  vendor: LG



그리고 HA 재시작


잘따라했다면 HA Dashboard에 보일것이다




1단계 끝



2단계 ST에서 Simulated Presence Sensor 만들기


이제 이쯤되면 다들 SmartThings IDE는 익숙해졌을거라고 본다

https://graph.api.smartthings.com


My devices로 이동


+ New Device


Device Network Id는 아무거나 막적되

다른 device와 중복되지 않게 적으면된다


핵심은 Type을


"Simulated Presence Sensor"

로 설정한다 그리고 Create





3단계 Automation 이용하여 HA->ST 연동하기


위에 device_tracker 만든것처럼 automations.yaml 만들고


configuration.yaml에 아래와같이 기술


...생략

mqtt:

  broker: !secret server_ip


switch: !include switchs.yaml

sensor: !include sensors.yaml

light: !include lights.yaml

device_tracker: !include device_trackers.yaml

group: !include groups.yaml

script: !include scripts.yaml

automation: !include automations.yaml

... 생략



그리고 automations.yaml 에 아래와 같이 기술

  - alias: S8 Presence to ST

    trigger:

      platform: state

      entity_id: device_tracker.booung_s8_wifi

    action:

      - service: mqtt.publish

        data_template:

          topic: "smartthings/Booung S8 WIFI/presence"

          payload: >

            {% if is_state('device_tracker.booung_s8_wifi', 'home') %}present{% else %}not present{% endif %}


  - alias: G6 Presence to ST

    trigger:

      platform: state

      entity_id: device_tracker.eunja_g6_wifi

    action:

      - service: mqtt.publish

        data_template:

          topic: "smartthings/Eunja G6 WIFI/presence"

          payload: >

            {% if is_state('device_tracker.eunja_g6_wifi', 'home') %}present{% else %}not present{% endif %}


각 라인 설명


  - alias: S8 Presence to ST  // 걍 Automation 이름

    trigger:  // 상태조건? 트리거를 뭘로 사용할거냐?

      platform: state  // 센서의 state 값을 이용할거다~~

      entity_id: device_tracker.booung_s8_wifi  // 센서 뭘할거냐 난 아까 만든 device_tracker중에 booung_s8_wifi

    action: // 위의 트리거에 따른 action 지정

      - service: mqtt.publish  // service는 mqtt의 publish를 사용할거다~~~

        data_template: // data template 구성

          topic: "smartthings/Booung S8 WIFI/presence" //smartthings의 Booung S8 WIFI를 사용할건데 얜 presence 센서다 이건 3탄에서 말한 state.json에 보면 어떤 값을 사용하면 될지 감이 온다 거길 열어보면됨

          payload: >

            {% if is_state('device_tracker.booung_s8_wifi', 'home') %}present{% else %}not present{% endif %}

// 어떤걸 언제 무슨값을 보낼것인지에 대한 룰 HA에서 만든 device_tracker.booung_s8_wifi의 상태가 home이면

st에 present를 보내고 그밖에 상태면 not present를 보내라 


위에 entity_id에 뭘 넣어야할지 모를땐

HA 홈페이지를 가자 아래 노란음영 "<>" 를 선택하면 본인이 만든 기기와 sensor들의 entity 값을 볼수있다. 




위에 까지 설정을 다하고 HA 다시시작



그리고 본인 폰을 wifi에 붙였다 떼었다 해보자



붙일때 인식시간은 약 10초 내외


좋은 공유기는 3초만에도 반응이 온단다


떨어진거에 대한 인식 시간은 최소 2분이상


보통 3분에서 5분


ST App에서 값이 HA의 값에 의해 변화되고 있는지 확인~~




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





  1. sEsAmZ 2017.09.29 07:17

    붱이님 글을 읽을 때마다.. 나스 뽐뿌가 와서 큰일네요...ㅎ 즐건 하루 되세요

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.09.29 07:19 신고

      나스는 필수품이에요 ㅎ 지르세요 docker지원되는 모델루요.이번에 218+나왔던데 지르세요

  2. sEsAmZ 2017.09.29 11:08

    plex돌리고 있는 윈도우 서버가 하나 있거든요.
    어떻게든 그걸로 해볼까 했는데.
    bridge에서 좌절되겠네요.
    windowz에서 docker를 돌려야 할라나요.ㅎㅎ

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

      버츄얼머신으로... 리눅스를... 하느니 걍 나스사겠어요 ㅋㅋㅋ

  3. 깔롱진 2018.12.11 19:18

    IOT초짜입니다.
    열심히 공부중인데요.. 개념이 잘 이해가 안되서
    부끄럽지만 초보적인 질문 하나 드립니다 ㅠ

    구글홈 > ST허브 > 기기 로 명령이 전달된다고 단순히 생각하도 있었는데 그게 아닌가봐요 ㅠ

    NAS는 서버 같은데 왜 필요한가요?
    HA는... 서버에 깔아서 구동시키는 것들을 통틀어서 부르는 개념인가요?
    그라고 간혹 라즈베리파이가 자주 나오던데.. 그건 NAS 대용품인가요?

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2018.12.11 19:29 신고

      먼저 나스부터 여기서 말하는 NAS는 일종의 서버같은거에요
      시놀로지라는 회사와 큐냅이있는데 저는 시놀로지 나스를 사용 하고있구요 HA라는놈은 home assistant라는 open iot platform이에요 누구나 무료로 설치해서 iot환경을 만들수있죠 이 ha를 개인서버(나스)에 설치해서 사용하는거죠

      st만있으면 되지 왜 또 ha가 필요하냐?
      st는 zigbee z-wave기기들에 특화 되어있다면 ha는 wifi기기나 lan 타입 기기들을 쉽게 붙여서 연동시킬수있어요 그래서 st로 해결못하는것을 ha랑 병행해서 쓰는거에요

      라즈베리파이는 뭐냐 초저가형 linux pc라고 보시면되요 얘도 서버로 쓸수있거든요 컴터랑 같아요 근데 저사양의 리눅스 pc라고 보시면되요
      나스처럼 쓸수있는데 여기에도 HA가 설치가능 하거든요 그래서 입문자나 크게 작업할게없으면 라즈베리를 사서 쓰죠 돈여유되시고 이것저것 더해조고 싶으시면 시놀로지같은 나스를 사시는건데 가격차가 많이나요

      궁금한거 있으시면 또 질문해주세요

728x90

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

 

붱이 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 연결(예제 재실센서)



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





  1. Favicon of https://www.makelism.net BlogIcon Makelism 2017.08.07 10:19 신고

    예전에는 아예 몰라서 그냥 스크롤하고 끝났을 텐데 붱이님 설명 덕분에 대략 감은 잡히네요.
    잘 봤습니다.

  2. Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.07 10:23 신고

    mac만 아니였으면....하루면 끝날일이에요 ㅠㅠ 4탄이 마지막이 될듯해요 그럼 HA에서 ST연결 관련은 응용해서 충분히 가능 하실거에요 ㅎ

  3. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.17 01:17 신고

    이번주 주말에 ha설치할예정인데 우울하네요 어려워라

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.17 06:56 신고

      손이 많이가기도 하고 수정하기도 번거롭고 대쉬보드 꾸미는것도 일이고... 자동화 룰 만드는것도 맘에안들구 걍 ST서브로 필요한거만 쓰는게 맘편하더라구요

    • Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.17 11:40 신고

      저는 딱 샤오미 청소기 멀티탭 선풍기 세개만 붙이고 접을거에요 ㅎㅎㅎ

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

      구글홈이랑 알렉사 연동도 하세요 ㅎ
      이거연동은 ha가 좋아요

    • Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.17 11:44 신고

      전 구글홈은 없구.. 알렉사도 안부른지 몇개월 됐어요 ㅋㅋ 홈킷으로 제어해서 시리만 불렀거든요. 에코닷은 저희집에서 이제 고인이된..
      음성명령은 앞으로도 시리가 담당할것같아요 ㅎㅎ

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.17 11:45 신고

      부르는용도도 지정할수있고 노티로도 좋아요 ㅎ 삼성 r6보다 구글홈이 훨 좋아요 음성 노티는

    • Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.17 11:48 신고

      근데 웨이브 정도 발음이 아니면 와이프가 당장 끄라고할거같아요 ㅋㅋ 시리 음성도 싫어하거든요..

  4. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.21 09:43 신고

    이젠 내용들이 이해가 잘 되네요. 이번주에 해볼건데 문제없이 됐으면 좋겠어요 ㅎㅎ

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

      ㅋㅋㅋㅋ 하고나니 이해되져??
      주중에 4탄 올릴게요 HA에서 만든거 ST로 연동하기 4탄까지만 따라하면 우리같이 ST가 메인인 사람들에겐 HA에서 활용할건 다했다고 봐도 무방할듯요

  5. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.24 11:55 신고

    state.json을 보니 붱이님같은 내용이 안나오고
    {
    "subscriptions" : [],
    "callback": "",
    "history": {},
    "version" : "1.3.3"
    } 라고만 되어있네요 ;_;

  6. 다큰아이츄 2019.05.22 16:11

    전 smartthings-mqtt-bridge/config/config.yml 이 파일에 host: mqtt 로 되어있는거 아이피로만 바꾸면 에러 나네요
    8080포트를 다른데서 사용하고 있어서 일까요??

  7. 다큰아이츄 2019.05.23 10:16

    아... 8080 다른데 쓰는걸 막아도

    ip만 넣으면 아래와 같은 에러가 나고 계속 다시시작인데
    혹시 생각나시는게 있으실런지요

    info: Starting SmartThings MQTT Bridge - v3.0.0
    info: Loading configuration
    info: Loading previous state
    info: Perfoming configuration migration
    info: Saving current state
    info: Connecting to MQTT at mqtt://192.168.0.7
    events.js:167
    throw er; // Unhandled 'error' event
    ^
    Error: Connection refused: Not authorized
    at MqttClient._handleConnack (/usr/src/app/node_modules/mqtt/lib/client.js:735:9)
    at MqttClient._handlePacket (/usr/src/app/node_modules/mqtt/lib/client.js:296:12)
    at process (/usr/src/app/node_modules/mqtt/lib/client.js:238:12)
    at Writable.writable._write (/usr/src/app/node_modules/mqtt/lib/client.js:248:5)
    at doWrite (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:237:10)
    at writeOrBuffer (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:227:5)
    at Writable.write (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:194:11)

  8. 권범 2019.10.06 15:09

    저도
    state.json을 보면
    {
    "subscriptions" : [],
    "callback": "",
    "history": {},
    "version" : "1.3.3"
    }
    이렇게 나오네요.
    저는 스마트앱에서 연동할때 마지막 부분에서 에러가 나서 홈어시던트에 hqtt는 생기나 장비연동이 안되네요

728x90

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

 

붱이 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에 연결



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




  1. Favicon of https://www.makelism.net BlogIcon Makelism 2017.08.06 21:37 신고

    이 포스트의 진짜 알멩이는 3일 동안 고생해서 알아낸 맥주소군요.
    저도 다른 것 세팅할 때 막히면 이 부분을 체크해야겠네요.
    감사합니다.

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.06 21:38 신고

      네 개고생의 주범입니다 ㅠㅠ 저거일줄은 상상도 못했어요...

    • Favicon of https://www.makelism.net BlogIcon Makelism 2017.08.06 21:40 신고

      맥주소가 달랐던 경험이 없어서 저라도 상상도 못 했을 것 같아요.

  2. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.07 15:40 신고

    저도 홈브리지설치할때 맥 주소 대소문자 반대로 써서 정말 고생많이했던 생각이 나네요 ㅠㅠ

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.07 15:42 신고

      진짜 3일 이유도 몰라서 이거바꾸고 저거비꾸고 한거 생각하면 ... ㄷㄷㄷ

    • Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.07 15:43 신고

      저도 곧 따라갈게요 ㅎㅎ

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.07 15:45 신고

      ㅋㅋㅋ 넵 그래도 나름 꼼히 써놔서... 걍그대로 따라하시면 바로될거에요 ㅎ

  3. sEsAmZ 2017.09.29 11:04

    HA가 윈도우에 설치 가능하다는 것을 알고.
    금일 밤에 따라가려했는데..
    bridge 설치는 docker와 npm 두가지 밖에 없나보네요..ㅠ

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.09.29 11:08 신고

      음 윈도우를 서버로해서 될라나모르겠네요... 리눅스를 설치해서 하시면 나스랑 환경이 같으니 가능한데 pc는 항상키면 전기를 많이먹겠죠? 시놀 나스를 구입하세요 ㅎ

    • BlogIcon sEsAmZ 2017.09.30 14:12

      저전력으로 만들어놓긴 했는데.
      전력소모는 NAS가 확실히 적겠죠?
      이렇게 시작되나요.ㅎㅎㅎ
      아 근처 사시는 것 같던데 저는 상왕십리에요.ㅎ

      즐거운 추석 연휴 보내세요.

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.09.30 14:14 신고

      확실히 적죠 그렇게 설계된놈이라

    • sEsAmZ 2017.09.30 14:15

      실시간 답글..ㅎ
      감사합니다~

  4. Favicon of https://loglevel.tistory.com BlogIcon 에디83 2017.11.01 11:04 신고

    포스트 감사합니다.
    따라하고 있는데 mqtt bridge의 ip address는 내부ip를 써도 되나요?
    저도 nas의 docker로 올렸는데 mac address는 docker의 mac address를 참고해야 하는거죠?

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.11.01 11:07 신고

      안녕하세요
      내부 ip주소맞구요
      mac addr는 도커가 돌고있는 nas의 mac주소입니다

  5. junDdigi 2018.01.01 22:52

    붱이님 블로그 따라 step by step 으로 했는데
    모바일 st에서 done을 하게되면 모바일에서 sorry. But there was an unexpected error. 라고 뜨는데 무엇이 문제일까요??

  6. jaewoong 2018.02.25 22:27

    설명중에

    https://graph.api.smartthings.com

    My Device Handlers로 이동

    Settings클릭

    -------------------------------------------

    이런부분이 있는데 저 사이트에서 일단 계정을 만들고
    My Device Handlers 를 가봐도 Enable GitHub Integration , Create New Device Handler 이 버튼 2개밖에 없는데...
    어떻게 해야되나요??


  7. 원종아빠 2018.10.02 17:06

    Smartthing Hub 없으면 설정 할 필요 없는지요?
    Hub 없어도 되는지 궁금 하네요~
    미리 감사합니다.

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

      허브없어본적이없어서... 확신은 안가지만 되지않을까요? ㅎ..

    • 원종아빠 2018.10.03 18:48

      smartthings 로그를 보니 아무래도 허브가 있어야 동작하는 것 같습니다.
      감사합니다.

      4108afd7-c684-4222-bb46-c2dd655887f6 오후 6:44:00: error Hub is null, must set the hub in the device settings so we can get local hub IP and port
      fbbdc926-64ce-4765-9bb9-aa380fbec6f1 오후 6:44:00: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Power Meter","value":"440.36","type":"power"}}

  8. 권범 2019.10.06 08:05

    설명대로 하고 있는데 스마트앱에서 오류가 나네요.
    mqtt 세팅에서 192.168.0.x 처럼 나스주소 포트는 8080 mac주소는 나스 주소 맞죠?

  9. 권범 2019.10.07 11:10

    There was an error, please try again.
    계속 폰의 스마트앱 설정부분에서 마지막에 There was an error, please try again.
    이 에러메세지가 나오면서 안되네요.
    어떤부분이 문제인지 알수가없어서 다음단계 진행이 안되요.
    혹시 방법 아시나요?

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2019.10.07 12:17 신고

      이게 2년전의 ha 설정이라 많이바껴서 뭔가 안맞을수도있러요 ㅠㅠ 저도 이제 ha를 쓰고있지않아서 도움드리기가 힘드네요

  10. 권범 2019.10.07 12:17

    네 감사합니다.

728x90

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

 

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

밖에서는 

https://ddns주소:8123


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

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


아래와같이 되면 설정완료

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




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


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




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



 


  1. 에이스한 2017.08.07 14:05

    집 공기질 측정은 일반 데이터 가져오면 집 상황하고 다르지 않을가요?
    집에 측정기를 별도로 두시는게 낫지 않나요?

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.07 14:12 신고

      아 집안 측정하기위함은 아니고 그냥 바깥이 좋다 안좋다 체크하려는용도에요 ㅎ

  2. Favicon of https://onaldo.tistory.com BlogIcon 오날두 2017.08.19 11:22 신고

    음..라즈베리파이로 설치한 다음에는 어디서 부터 확인하면 될까요? 오늘 5시부터설치 할 예정입니다!

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.08.19 11:33 신고

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

      configuratioin.yaml 파일이 보인다

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

      스펠꼭확인하자  


      이부분 부터가 공통이에요

  3. 탄수화물 2017.11.17 00:11

    안녕하세요! 눈팅을 자주 해서 많이 익숙한 블로그지만 댓글은 처음 남겨보네요. 글 열심히 정말 잘 읽고 있습니다!
    제가 입문자이고 컴퓨터쪽 지식이 없는지라 여쭤볼 게 있어서요.
    저는 Mac 사용자이고 라즈베리파이에 HA를 설치해서 VNC로 조종을 하는데요..
    configuration.yaml 파일에 어떻게 접근을 해야 하는지조차 모르겠습니다^^;;
    혹시 도움을 좀 요청할 수 있을까요~~

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.11.17 00:16 신고

      안녕하세요
      우선 ha를 설치하셨다고 하시니 설치할때 터미널로 접속하셔서 어떠한 명령어들을 치셔서 설치하신거잖아요? 그것 처럼 ha 설치하신곳으로 가시면 config 폴더가 보일거에요 그곳에 configuration.yaml 파일이 보이실겁니다. 해당파일을 편집기 통해서 수정하시면 됩니다.

    • 탄수화물 2017.11.17 00:52

      아, HA가 설치된 폴더를 잘못 짚고 있었네요^^ 찾았어요. 감사합니다

    • Favicon of https://blog.weekendproject.net BlogIcon 붱이붱이 2017.11.17 08:33 신고

      찾았다니 다행입니다 ㅎ 좋은하루되세요

+ Recent posts