지난번까지 Homeassistant(HA)까지 NAS에 올렸다. 스마트씽즈와 HA를 같이 사용하고 있고 현재까지 구성은

센서 -> ST -> HA
센서 -> 샤오미 게이트웨이 -> HA

로 HA로 다 모았다. 그래서 이번엔 이 조작을 apple의 homekit에서 조작하도록 연동해보고자 한다. 애플기기 없으면 안해도 된다. 

뭐 방법은 HA만 바로 homebridge 연동할 수도 있지만 일단 st가 주장비가 될 예정이므로 ST에 물린 장비는 st에서, ha에 물린 장비는 ha에서 연결하도록 구성했다.
(그래도 st에 물린 센서들은 ha한번 더 거쳐서 homekit에 연결되는거 보다 바로 붙는게 딜레이가 덜할 것 같아서, 그리고 나중에 유지보수(?) 측면도 있고)

시작하자. 뭐 이제껏 잘 사용하던 synology 를 이용한다.

1. NAS에 docker를 실행하고 "레지스트리"에서 homebridge검색 및 설치

2. 다운로드가 완료되면 아래와 같이 한다. 볼륨에 아래와 같이 추가하고

네트워크 설정도 호스트와 동일한 네트워크 사용을 체크한다.

환경 에선 timezone을 설정한다. (이건 이제 거의 default다)

아직 기동하지는 말자 그전에 할일이 있다. 
HA설정법

https://github.com/home-assistant/homebridge-homeassistant

ST설정법
https://github.com/pdlove/homebridge-smartthings
http://blog.naver.com/PostView.nhn?blogId=fuls&logNo=221022867755

3. 위에서 링크한 /docker/homebridge 폴더에 두개의 파일을 만들자 (config.json, install.sh)
  3.1 install.sh 
       이건 별거 없다. 자기가 필요한거 찾아서 설치 하는 거다. (최초 기동시에)
       일단 나는 nas 랑 st랑 ha를 사용하니 세개를 설치 한다.

#!/bin/bash

npm install -gs homebridge-synology
npm install -g homebridge-smartthings
npm install -g homebridge-homeassistant

    3.2 config.json 을 만든다

   나의 config는 아래와 같은데 

    a. bridge부분에서 
     name : homekit에서 보일 이름을 입력한다
     username : NAS의 MAC address를 입력한다.(대문자로)
     pin 은 : 원하는 숫자를 3-2-3 형태로 입력하면 된다.

    b. platform 부분 HA에서는 
       host : HA의 접속주소를 적어준다. 
       password : HA들어갈 때 비번을 설정했다면 적어준다.
       logging 은 false로 log보고 뭐 분석할 실력이 안된다. -.-;
       verify_ssl : true (혹시 SSL 설정해두었으면 false 로 바꾸어야 한다.)

    c. platform 부분 ST에서는
       - appurl, app_id, access_token에는 ST 앱에서 설치한 JSON Complete 에서 복사한 값이다. 이거 값을 얻을려면 아래 링크 아래 쪽의 설치-3 부분을 보면 됩니다.
        ( ST ide사이트(graph.ide.smartthings.com)에서 my smartapp 에 신규로 app 생성 -> 코드를 복사하여 붙여 넣기 -> app세팅에서 OAuth 인증 체크하기 -> 핸드폰에서 json compete app 실행 후 연동할 장비 선택 -> 아래쪽에 있는 config 누르면 나오는거를 config.json에 붙여 넣기

           http://makelism.tistory.com/entry/%EC%95%A0%ED%94%8C-%ED%99%88%ED%82%B7-HomeKit-%EC%84%B8%ED%8C%85-3-%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B43%EB%A5%BC-%EC%A7%80%EB%A5%B4%EB%8B%A4-3-%EC%8B%9C%EB%A6%AC-%EC%82%AC%EC%9A%A9-%EB%8F%99%EC%98%81%EC%83%81

        - direct_ip : NAS의 IP NAS에 docker로 설치 할 때 꼭 해줘야 한다. 안그러면 docker로컬 IP로 물고 올라와서 ST연결이 안된다. -> 장비는 보이는 상태 업데이트가 안되거나 한다.
        - direct_port : 8000 (변경하고 싶으면 다른 포트로 변경 해도 된다.)

위 사진의 코드다.

{
    "bridge": {
        "name": "HomeBridge",
        "username": "NAS맥주소",
        "port": 51826,
        "pin": "010-11-731"
    },

    "description": "JSON API",
    "platforms": [
        {
          "platform": "HomeAssistant",
          "name": "HomeAssistant",
          "host": "http://접속주소:8123",
          "password": "비번",
          "supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],
          "default_visibility": "hidden",
          "logging": false,
          "verify_ssl": true
        },

        {
          "platform": "SmartThings",
          "name": "SmartThings",
          "app_url": "핸드폰 JSON Complet e스마트앱에서 복사",
          "app_id": "핸드폰 JSON Complet e스마트앱에서 복사",
          "access_token": "핸드폰 JSON Complet e스마트앱에서 복사",
          "direct_ip": "NAS IP",
          "direct_port": 8000
        }
    ]
}


그리고 docker를 기동 한 다음 로그를 보면 

저기 코드 올라오고 아래에 3줄이 있어야 한다.
51826 port로 기동
direct connect랑
St hub communication

4. homeassistant의 customize.yaml 에 가서 homebridge 연동할 장비 등록

해당 센서 또 스위치 등에 가서  homebridge_visible: true 를 넣어주면 된다. 전 샤오미 공기 청정기가 st에 연동이 안되서 일단 이렇게 등록. 



그리고 애플기기에서 homekit 액세서리 추가하면 된다. 홈킷 설정은 그냥

액세서리 추가 -> 저위에 코드 넣고 -> 방설정 정도하면 끝이라 생략 ^^

이렇게 하면 xiaomi air2도 홈킷에서 제어하고, ST물린것도 제어하고 다 홈킷에서 제어할 수 있다. 물론 HA에서 다 보내도 되지만, mqtt로 받아온걸 굳이 다시 여기서 또 넘기는건 싫어서.. 



'IT기기/컴퓨터' 카테고리의 다른 글

삼성 로봇 청소기 (vr20m7070wd)  (1) 2018.01.21
에너톡 설치  (3) 2017.12.02
크리스마스 트리 설치  (0) 2017.11.05
보템 무선 카운터 센서 설치  (0) 2017.11.02
공유기 ea6900 리퍼 구입  (0) 2017.10.15
Posted by riola
,