※ 직접 구매하여 작성한 후기 입니다


[IOT] - HA(Home Assistant) Synology Docker 설치기


Home Assistant를 설치한 이후 

집 밖에서 외부망(휴대폰)을 이용해 서비스를 이용하려면 외부에서 접속이 가능하게 해줘야 한다.


그래서 우리는 포트포워딩으로 외부에서 우리 집 공유기를 통해 들어오는 길을 열어주는 일을 해보고자 한다.

하지만 그냥 활짝 열어두면 보안 문제가 생기니 패킷이 암호화 되어 있는 HTTPS로 접속을 설정하자.

HTTPS 접속 설정

HTTP와 HTTPS의 차이점은 암호화의 차이인데.

HTTPS SSL은 기존의 HTTP 프로토콜이 단순 평문 텍스트 전송으로 인한 보안문제가 있어서 이를 해결하고자 OSI 7 Layer 중 세션 계층에서 응용계층 프로토콜을 암호화하여 보안프로토콜화 시킨것이다. 

SSL(Secure Socket Layer)의 동작과정은 아래 그림으로 잘 이해 할 수 있다.


출처 : http://wiki.gurubee.net/display/SWDEV/SSL+%28TLS%29

그럼 우리는 여기 나오는 인증서를 어떻게 발급 받을 것인지에 대해 고민에 빠질텐데.

다행히 Synology NAS에서는 무료 인증서는 Let's Encrypt 인증서를 발급 받을 수 있다.


근데 몇몇분은 왜 어렵게 이렇게 접속을 해야하냐고 물으신다고

보안 뿐 아니라. SmartThings를 Home Assistant의 Component로 연결할려면 HTTPS 연결이 필수이다.

Let's Encrypt 인증서 발급

그래서 우리는 인증서를 발급 받아보도록 하자

1. Synology NAS의 제어판에서 "보안"의 "인증서"텝을 들어간다.

2. 들어가면 기본 인증서가 있는데 "추가"를 클릭하고 "기존 인증서 교체"를 클릭한다.

3. "Let's Encrypt에서 인증서 얻기"를 선택하고 다음을 선택한다.

4. 도메인 이름에는 : DDNS를 입력

   이메일을 입력한 후에 적용을 클릭한다.

5. 그러면 인증서를 얻어 오는데 30초 정도 걸린다.

인증서를 얻는 과정은 끝이 났다.

Port Forwarding 설정

이제는 포트 포워딩을 설정하자.

포트 포워딩이 생소하다면 아래 글을 들어서 한번 읽어보자

원리가 잘 설명 되어 있고 iptime 공유기로 설정하는 법도 설명해 놓았다.

https://iamakira.tistory.com/45


HTTPS - SSL 위의 HTTP (암호화 전송)은 443 포트를 쓴다.

아래는 주요 TCP 포트

https://ko.wikipedia.org/wiki/TCP/UDP%EC%9D%98_%ED%8F%AC%ED%8A%B8_%EB%AA%A9%EB%A1%9D


asus 공유기 기준으로 설명을 드리면

6. 공유기 관리 페이지에 로그인 후에 "WAN -> 가상 서버/ 포트 포워딩"로 들어간다.

그 다음 위의 그림과 같이 입력해준다.

서비스 이름 : HA_HTTPS

포트범위 : 443

로컬IP : NAS IP를 적어준다.

로컬포트 : 443 

프로토콜 : TCP


그 다음 적용이 아닌 "+"를 먼저 눌러주고 적용을 눌러줘야 한다.


위의 포트포워딩의 의미는 외부에서 HTTPS로 들어오면 내부의 HTTPS로 포트를 포워딩 해주라는 것이다.

근데.. 좀 이상하다.. 분명 HA는 8123 포트라고 했는데..


외부에서 들어오는 HTTPS 포트를 8123 포트로 바로 포워딩 하면 SmartThings 연결에 어려움이 있다는 글을 보고 

Reverse Proxy를 사용하여 443포트를 8123으로 연결하기로 했다.

Reverse Proxy 설정

Reverse Proxy 외부에서 내부 서버가 제공하는 서비스 접 시, Proxy 서버를 먼저 거쳐서 내부 서버로 들어오는 방식이다. 외부 사용자는 실제 내부망에 있는 서버의 존재를 모른다. 모든 접속은 Reverse Proxy 서버에게 들어오며, Reverse Proxy는 요청에 맵핑되는 내부 서버의 정보를 알고 요청을 넘겨준다. 따라서 내부 서버의 정보를 외부로부터 숨길 수 있다.


7. 역방향 프록시를 사용하기 위해 NAS의 "응용 프로그램 포털 -> 역방향 프록시"로 들어간 후 생성을 눌러준다

8. 역방향 프록시 규칙을 설정해주자.

"설명"에는 "HA_HTTPS" 

소스에는 "프로토콜"은 HTTPS / "호스트 이름"은 "시놀로지 나스의 DDNS" / "포트"는 "443"

아래 "HSTS 활성화"와 "HTTP/2 활성화"를 클릭해주고

대상에서 "프로토콜"은 "HTTPS" / "호스트 이름"은 "localhost" / "포트"는 "8123"을 기입한다.

9. "사용자 지정 머리글" Tab으로 이동하여 "생성"을 클릭한 후에 "websocket"을 눌러주고 "확인"을 클릭한다.


HA configuration.yaml 수정

10. Synology file로 config 폴더에 있는 confuguration.yaml을 열자

     http: 아래 부분을 추가하면 되는데 나머지는 아래와 동일하게 넣고

     base_url에 NAS의 DDNS 해당하는 주소를 넣어주면 된다. (아래 예시는 xxxxxx로 표시되어 있는 부분) 



11. 재구동

Docker로 돌아가서 HA를 재구동 하자.


12. 자 이제 https로 접속해보자

   주소는 https://DDNS로 들어가면 되는데 https://xxxxxx.synology.me로 들어가면 된다.

접속 성공!

휴대폰 어플 home-assistant에서도 동일하게 세팅하여 접속 가능하다.

결론

안전한 접속을 세팅하느라 공부한것도 많았고 시간도 걸렸지만.

가족들은 뭐가 달라졌는지 모른다. 자기만족...


반응형

※ 직접 구매하여 작성한 후기 입니다

[IOT] - Synology 718+ NAS 개봉기

NAS를 사서 해보고 싶었던docker 위에 여러 플러그인을 올려서 돌리는 것인데

때마침 Home Assistant가 SmartThings를 공식 Component로 지원을 하기 시작했다는 기사를 보고 

Home Assistant를 설치하기로 했다.


Home Assistant 설치

Home Assistant에 Synology NAS 설치법은 자세히 나와 있다

https://www.home-assistant.io/docs/installation/docker#synology-nas

다만 다른 설치법도 가득 가득해서 관련된 부분만 따로 캡처해서 가져왔다.


Docker는 이미 Synology에 깔려 있다는 가정하에 Docker를 실행한다


1. 레지스트리에서 home-assistant를 검색하고 "homeassistant/home-assistant"를 클릭한후 "다운로드"를 클릭한다.

2. 다운이 완료되기에는 시간이 좀 걸리는데 용량이 좀 크긴 하다. 다운로드가 완료되면 "이미지" Tab으로 가면 다운로드된 파일이 있는데 선택 후에 "실행"을 누르면 컨테이너가 뜬다.

3. 고급 설정을 클릭한다

4. 고급 설정에서는 "자동 재시작 활성화"를 선택한다

5. 볼륨에서는 설정파일이 저장된 경로를 선택하는데 "폴더 추가"를 클릭하여 폴더를 선택한다.

6. 미리 공유폴더에 Homeassistant를 만들고 그 안에 config 폴더를 추가 해 놓았다.

   config 폴더를 선택해준다. (대소문자를 구분하니 폴더를 왠만하면 소문자로 만드는게 좋다)

7. 마운트 경로는 "/config"를 입력해준다. 소문자이며 공백없이 입력해주면 된다.

8. 네트워크 Tab에서는 "Docker 호스트와 동일한 네트워크 사용"을 선택해준다.

9. 환경 Tab에서 는 Home Assistant가 정확한 시간을 표기해 주도록 "+"를 클릭하고 변수에는 TZ, 값에서는 Asia/Seoul를 입력해준다. 

 해당하는 timezone은 아래 주소에서 찾을 수 있다,

https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

10. "적용"을 클릭할 경우 사용자가 설정한 화면을 볼 수 있는데. 이상 없으니 "적용"을 한번 더 클릭하자

11. 컨테이터 설정은 끝났고 사용자가 지정한 폴더를 들어가면 Home-assistant 설정 파일이 있는데 그 중에서 

    configuration.yaml 파일과 secrets.yaml파일을 수정하도록 하자.

   수정하는 방법은 File Station에서 직접 수정해도 되지만 해당 경로를 Samba로 접속해서 Notepad++로 수정을 하자.

Notepad++ 사용하여 HA yaml파일 수정

Home-assistant의 yaml 파일은 띄어쓰기가 가장 중요한데. 한 칸의 띄어쓰기 때문에 접속이 안될 수도 있으니

아래 프로그램(Notepad++)을 다운 받고 설정해서 쓰도록 하자.

https://notepad-plus-plus.org/download/v7.6.3.html 


설정은 아래를 보고 하자

https://community.home-assistant.io/t/tips-for-editing-yaml-with-notepad/4295


Notepad++ 프로그램에서 설정 -> 스타일 설정에서 YAML을 선택하고 사용자 확장자에 "yaml"을 적어주고 적용

Notepad++ 프로그램에서 설정-> 기본 설정의 언어 메뉴서 yaml 선택하고 Tab Size를 2로 바꿔주자


HA configuration 파일 수정

12. 이제 준비가 되었으니 아래 경로에 있는 두개의 파일을 열자

13. 그 다음 Configuration에서는 빨간색 네모를 쳐진 2가지를 추가한다.

tab을 누르면 2칸씩 띄워지는데 위치를 잘 보고 추가하자. 

homeassisstant: 밑에 auth_providers: 밑에 - type: legacy_api_password  (띄우기 정말 중요)

   위에 세팅하는건 '사용자 비밀번호만으로 로그인을 제한한다'는 뜻이다

http: 밑에 api_password: !secret api_password 추가

  위의 명령어는 'secrets.yaml의 파일안의 비밀번호를 http로 접속하는 비번으로 쓰겠다'는 뜻이다.

14. Secrets.yami에서는 로그인 비밀번호로 쓸 비밀번호를 입력한다.

    xxxxx에 쓸 비밀번호를 입력하다.

15. 저장한 이후에 Docker로 다시 돌아가 homeassistant를 재구동 해주면 되는데 

    재구동 하는 방법은 여러방법이 있으나 비디오 형식 Tab에서 해당 빨간색 박스를 클릭하면 OFF되었다가 다시 클릭하면 ON이 된다.


16. 이제 그럼 접속해보자.

Homeassistant의 port는 8123번이다. 아래 주소를 크롬에서 입력하면 Homeassistant가 뜰것이다.

http://NAS주소:8123


secrets.yaml에 입력한 비번을 입력하면 로그인이 된다.

설치는 이걸로 끝이지만 이제는 외부 접속도 추가하고 UI도 추가하고 SmartThings도 연결하자.

결론

아 끝나긴 했는데 남은게 더 많은...

언제 세팅 다 하려나.





반응형

※ 직접 구매하여 작성한 후기 입니다


Neato 로봇 청소기를 Google Home에 붙여 음성인식으로 활용하고 있다.


[IOT] - Neato Botvac D5 Connected 개봉기 (우리집 로봇 청소기)

[IOT] - Neato D5 로봇청소기 Google Home에 연결하기


자동화를 위해서는 SmartThing에 붙여야 하는데

Neato 로봇 청소기는 공식적으로 SmartThings를 지원하지 않는다.

하지만 Smartthings 커뮤니티에 가보니 Alex Lee라는 분이 Device Handler를 만들어 놓으셨다.

자세한 내용은 아래 URL에서 확인할 수 있다

https://community.smartthings.com/t/release-neato-connect-v1-2-3-botvac-connected-series/60039


물론 요즘은 유튜브가 대세다 보니 영상으로도 후기가 있다.


자 이제 시작해보자.


1. SmartThings의 SmartApps과 Device Handlers 설치를 수행해야 하는데 자세한 방법은 아래 링크를 참조하면 된다.

[IOT] - SmartThings SmartApps/ Device Handlers 설치


Git Hub를 사용해서 SmartApps와 Device Handlers를 설치 할 것이다.

SmartApps의 Setting을 클릭한다.

Add new repository를 클릭하고 아래와 같이 입력하고 Save를 한다.


Update from Repo에서 SmartThingsPublic을 클릭하면 아래 화면이 뜨는데

Ctrl + F로 neato를 검색한다.

빨간색 박스로 된 neato 항목을 클릭하고

아래의 publish를 클릭후 Execute를 클릭하면 아래 화면이 나온다.

그리고 OAuth를 수행해준다.

이 부분을 빠뜨려서 안되는 경우가 많으니 잊지말고 OAuth를 수행하자.

App Settings 클릭

OAuth를 클릭해서 Enable OAuth in Smart App을 클릭해준다.

위와 동일한 방법으로 

My Device Handlers 메뉴를 클릭하여 

Update from Repo에서 SmartThingsPublic을 클릭하면 아래 화면이 뜨는데

Ctrl + F로 neato를 검색한다.

빨간색 박스로 된 neato 항목을 클릭하고

아래의 publish를 클릭후 Execute를 클릭한다.


2. SmartThings 어플에서 Neato를 세팅하자

SmartThings IDE에서 할 일은 끝나고 SmartThings 어플로 가서 세팅 하자.

SmartThings New app이 아닌 Classic app로 들어가야 한다.

제일 하단 메뉴의 Automation 클릭

윗쪽에 SmartApps 클릭


다시 아랫쪽에 + add a SmartApp 클릭하면 아래 화면이 나온다.

그 다음 My Apps을 클릭한다.

Neato가 나오면 클릭한 이후에 

Click to enter Neato Credentials를 클릭하여 Neato 계정으로 로그인한다.

계정 입력을 완료하면 아래 화면이 뜨면서 연결이 되는데 Done을 눌러주면 된다.

 

그 다음 Choose your Neato Botvacs을 클릭해서 해당 Neato를 선택해주면 된다.

그럼 연결이 완료 되었다.

이제 어플로 Classic 어플로 돌아가면 아래 화면이 보인다.


물론 New 어플에서도 확인 가능하나 단순히 On / Off만 되는듯 하다.

연결이 되었으니 이제 자동화에 추가 할 수 있게 되었다.

집에 사람이 없으면 시작하고 중간에 사람이 들어오면 중지하도록~~


편하겠죠?







반응형

※ 직접 구매하여 작성한 후기 입니다


우리집 로봇 청소기 Neato D5 개봉기를 남긴 이후

[IOT] - Neato Botvac D5 Connected 개봉기 (우리집 로봇 청소기)


블로그를 방문한 사람들이 궁금해 하는건 

Google Home이랑 연결하셨나요?.


그래서 Google Assistant와 연결하고 간략한 음성 명령에 대해 실행해 보았다.

(사실 2달전에 다 해놨지만 회사일로 바뻐서 포스팅을 이제서야)



Google Home과 연결하기

Neato 공홈에서도 Google Home과 연결하는 법이 나와 있다.

https://support.neatorobotics.com/hc/en-us/articles/115005663567-Using-your-Neato-Connected-Series-Robot-with-Google-Home-and-Assistant

 

쉽다.. 무지 쉽다.


진행하기전 휴대폰은 지역은 America 언어는 English로 되어 있고 Google Home도 직구 제품임을 밝혀둔다.

국내에서 구매한 제품을 국내계정에 연결하면 잘 안된다는 분들이 있는데. 

그럴 경우 미국 계정으로 해보시길 권해드린다.


1. 구글 계정과 Neato 계정에 가입. 

   Neato 계정이 없다면 아래 링크로 가입


   https://www.neatorobotics.com/create-account/

 

2. Google Assistant 어플에서 탐색을 선택한다.

   왼쪽 제일 아래에 나침반 같이 생긴 것을 클릭하면 아래 화면이 나온다.



3. 검색창에 "Neato"를 입력하고 "Neato Robot"결과를 클릭한다.


4. 화면 중간에 "Link"를 클릭한다.


5. Neato 계정의 아이디와 비번을 입력한다.


6. 로그인에 성공하면 Google Assistant가 neato에 접근 할 수 있는 권한을 승인해준다.

7. 연결이 완료되었다.



Google Home으로 Neato 로봇 청소기에 명령하기

연결을 체크 하기 위해서 청소 시작 및 종료를 시켜보자

아래 명령 중에 하나를 말하면 된다.


1. 청소 시작

  • OK Google, ask Neato Robot to start cleaning.
  • OK Google, ask Neato Robot to start.
  • OK Google, ask Neato Robot to clean.
  • OK Google, ask Neato Robot to run my bot.
  • OK Google, ask Neato Robot to clean my house.  


2. 청소 중지

  • OK Google, ask Neato Robot to stop cleaning. 

3. 배터리 잔량 체크

  • OK Google, ask Neato Robot to tell me my robot’s battery level.
  • OK Google, ask Neato Robot to tell me my robot’s charge level.
  • OK Google, ask Neato Robot to get my robot’s battery level.
  • OK Google, ask Neato Robot to get me my robot’s charge level.


4. Neato 위치 찾기 (부저음으로 위치를 알려줌)

  • OK Google, ask Neato Robot to find my robot.
  • OK Google, ask Neato Robot to find my bot.
  • OK Google, ask Neato Robot where is my robot.
  • OK Google, ask Neato Robot to tell me where is my robot.


생각보다 Neato 위치 찾기가 괜찮음..

어디 걸려서 숨어 있는데 아무리 찾아도 없을때 보면 쇼파 밑이나 수건을 덮어 쓰고 있는 경우가 있어서.


다음 포스팅에서는 Smartthings에 연결을 해서 집을 나가면 자동으로 청소를 시작한다던지... 하는자동화에 묶어 보자.

(이미 했지만 포스팅을 한다는 이야기..)



 

반응형


※ 직접 구매하여 작성한 후기 입니다


무심코 인터넷 검색을 해보다가 한샘 침대 광고를 보았는데

요즘은 침대 바닥에 간접 조명이 붙어 나온다는 걸 보고 우리집도 바닥 간접 조명을 구축해 보고 싶었다.


[IOT] - PHILIPS hue Bulb로 침대 스탠드 조명 바꾸기


일전에 구축한 필립스 hue bulb에 필립스 hue Strip 바닥 조명을 추가하기로 하였다.

그전에 PHILIPS Bridge 없이 SmartThings에 붙였던 것이 오류가 있을 수 있다는 글을 보고 필립스 Bridge를 추가하였다.

원래는 무선 공유기 - SMARTTHINGS - 필립스 hue 램프 순이었는데

무선 공유기 - SMARTTHINGS - 플립스 Bridge필립스 hue 램프로 연결하였다.

PHILIPS Bridge는 구매가와 직구가가 그렇게 차이가 나지 않아 오픈마켓에서 구매했는데 이틀만에 왔다.

구성품은 Bridge와 랜선 및 전원이 전부이다.

포트도 랜포트와 파워 밖에 없을 정도로 심플하며 PHILIPS 버튼은 원격 인증을 하기 위한 용도로 버튼식으로 되어 있다.

크기도 다른 허브에 비해 2/3 밖에 되지 않아서 공간을 크게 차지 하지는 않는다.


전원과 랜선을 연결하고 PHILIPS hue 어플로 연결하면 된다.

PHILIPS hue 허브가 설치가 완료 되었으면 SmartThings Classic 어플에서

허브와 SmartThings를 연결해 준다.

My Home에서 + 버튼으로 추가하면 아래와 같이 추가된다.


어플이 연결되었으면 hue Lightstrip Plus를 추가하자.

침대 주변을 하단을 돌리기 위해서는 2m로는 부족해서 추가로 1m를 연결할 수 있는 extension을 구매하였다.

각각을 구매할때는 몰랐는데 패키지를 받고 보니 포장지가 연결되어 디자인되어 있었다.

우선 Lightstrip Plus에 대해 살펴보면 기본적으로 2m의 길이를 가진 선형 전구이며 포장지는 표현할 수 있는 컬러를 나타내고 있다.

Lightstrip Plus Extension은 2m가 부족할 경우를 대비한것으로 간단히 꽃아서 쓸 수 있다.

Lightstrip Plus를 열어보면 포장은 매우 간단하게 되어 있다. 

말 그대로 Strip과 전원. 그리고 각 나라별 콘센트 모양이 들어있는 박스.

각 나라별로 콘센트 모양이 달라 이걸 한번에 패키징 한걸로 보인다.

나라에 맞는 걸로 꼽고 전원을 연결하게 되어 있는데 한국 출시 제품이다 보니 KOREAN을 표기해 둔것 같다.

Lightstrip Plus Extension은 1m의 선과 extension이 따로 있는데 직접 연결되도 되고 extension을 써도 된다.

extension을 써서 연결하면 긴 바늘 쪽이 라인에 딱 맞게면 꽂아주면 끝.

침대 밑에 설치는 끈적이 스티커를 때어내고 커브를 고려해서 잘 붙이면 된다.


설치가 완료 되었다. 

PHILIPS hue에 추가 되면 SmartThings에는 자동으로 추가된다.


다 붙여 놨으니 이제 실행 해보자.

음악의 이퀄라이저와 연동되는 기능도 있으니 잘 쓰면 될듯.

우린. 그냥 스마트 버튼으로 On/OFF만..


완성은 아래 영상으로.

https://youtu.be/-KtW2OJA6Yg



반응형