반응형

 

Synology NAS 사용자라면 한때 유행했던(?) RSS를 활용하여 자동으로 다운로드하시는 분들이 많으셨을 거예요.

 

이 글은 과거의 방식보다는 좀 더 복잡하게 느껴질 수 있지만, 원리는 동일하고 단계가 조금 다르게 진행됩니다.

 

먼저 글을 쭉 훑어보고 판단하시면 될 것 같고 이 글로 인해 발생하는 문제의 책임은 본인에게 있습니다.

 

이 글에서 저는 "목적어"는 빠진 내용을 작성할 예정이며 스무고개 하듯이 진행하셔야 할 수도 있습니다.

 

시작하기에 앞서 이 방식은 매달 3.5$의 비용이 발생합니다.

 

믿을 수 있는 지인들끼리 한 서버를 공유하든 여러분의 자유입니다. 읽어보고 판단하시면 됩니다.

 

 


 

목적

 

Synology NAS의 Download Station에서 RSS를 통해 원하는 콘텐츠를 자동으로 다운로드하게 시키는 것입니다.

 

국내 인터넷 환경이 사이트 차단(Warning 사이트로 이동하는...)되는 경우가 많기 때문에 AWS 클라우드 서비스로 해외 Region VM을 하

나 생성하고 우회하도록 하는 방식입니다.

 

우회하는 방식은 다양하지만 제 환경에서는 이 방식이 가장 저렴하기 적용했습니다.

 

torrssen2라는 좋은 프로그램을 배포하고 있는 분이 계신데... 저는 저렴한 제품군이라 도커가 설치 안 되는 버전이기 때문에 스킵했습니다.

 

지금 이 글은 인텔 CPU를 사용하지 않는 저렴이 Synology 제품군을 사용하는 (Docker 활용이 불가능한) 분들에게 추천드립니다.

 

 


 

키워드

 

다음 키워드와 관련된 내용이 포함됩니다.

 

  • Synology NAS, Download Station
  • 토렌트
  • RSS
  • AWS, 클라우드
  • 프록시
  • node js

 

생소한 용어가 있을 수 있습니다. 편하게 스크롤 하면서 읽어주세요.

 

 


 

진행과정

 

전체적인 과정은 다음과 같습니다.

 

  1. RSS를 제공하는 토렌트 사이트 찾기
  2. AWS lightsail 인스턴스 생성
  3. Proxy 기능을 할 소스 배포
  4. Synology NAS Download Station에서 RSS 설정

 


 

1. RSS를 제공하는 토렌트 사이트 찾기

 

이전의 방식은 일반 토렌트 사이트에서 RSS 형식으로 변환해주는 php소스를 내 NAS 올려놓고 다운받는 방식이었습니다. 사이트에 부하를 많이 주는 방식이고 운영자가 소스를 변경할 경우 php 소스를 수정해야 하는데 개발자가 아닌 이상 일반인은 접근하기 힘들 거에요.

 

그래서 좀 더 범용적이고 구조적으로 안정적인 방법으로 접근하기 위해 RSS를 사이트 자체적으로 제공하는 곳을 찾아서 진행하였습니다.

 

물론 개인적으로 파싱한 다음 RSS를 직접 생성하셔도 됩니다.

 

현재는 토렌XX 에서 RSS를 제공하고 있고 여기도 막히면 또 그때 가서 생각해보려고 합니다.

 

XX는 아래 이미지가 뭔지 생각해보시면 될 듯..

 

 

 


 

2. AWS lightsail 인스턴스 생성

 

AWS는 Amazon Web Service의 약자로 클라우드 서비스를 제공하는 대표적인 회사입니다. 여러분이 아시는 아마존닷컴의 클라우드 컴퓨팅 사업부에서 운영하는 서비스입니다.

 

쉽게 말해서 "내 컴퓨터 말고 돈내고 어딘가에 있는 서버를 쓰겠다" 입니다. 서버라고 해서 대단한 건 아니고 저사양, 저비용 가상 서버입니다.

 

여기서 매달 3.5 달러의 비용이 발생합니다.

 

AWS Lightsail을 활용하는 이유는 가장 저렴하고 비용관리가 편리하기 때문엡니다.

 

저는 일본 리전에서 서버 생성을 추천해 드립니다. (해외 중에서 응답속도가 비교적 빠른 이유로)

 

토렌트 사이트가 차단당하는 것은 인터넷 회선 제공자 단계에서 차단당하기 때문에 해외에 서버를 활용하는 것이고 개념상 프록시 역학을 하게 됩니다.

 

이해하기 쉽게 그림으로 도식화 해봤습니다.

 

 

https://lightsail.aws.amazon.com

 

https://lightsail.aws.amazon.com/ls/webapp

 

lightsail.aws.amazon.com

 

가입 후 메인화면을 접속부터 시작하겠습니다.

 

가입 후 로그인 시 2단계 인증 활성화하실 것을 권장합니다.

(타 사이트와 같은 아이디 패스워드를 쓰다가 해킹당한 후 누군가가 비싼 인스턴스를 생성하여 코인 채굴 돌리는 불상사가 벌어질 수 있습니다.)

 

처음엔 생성된 인스턴스가 없을 거예요.

 

인스턴스 생성을 눌러줍니다.

 

 

리전을 도쿄로 선택합니다.

 

 

OS는 리눅스 중 배포판은 Ubuntu로 하겠습니다.

 

 

가장 저렴한 플랜을 선택합니다.

 

 

인스턴스 이름을 지정해주고 인스턴스 생성을 눌러줍니다.

 

 

잠시 대기 중이다가 실행중으로 변경됩니다.

 

 

아직은 고정 IP가 없기 때문에 할당해줍니다. 관리 메뉴로 들어가서 네트워킹 탭으로 갑니다.

 

고정 IP 생성을 눌러 줍니다.

 

 

이름을 지정해주고 생성해줍니다.

 

 

외부에서 접속 가능한 IP가 생성되었습니다.

 

추후 인스턴스를 삭제할 때 고정 IP도 반드시 삭제해야 합니다. 할당되지 않은 고정 IP는 과금됩니다.

 

 

접속은 편의상 사이트에서 제공하는 콘솔로 진행하겠습니다. 홈 화면으로 돌아와서 콘솔 모양의 아이콘을 클릭합니다.

 

 

콘솔로 접속이 됩니다.

 

 

깔려있는 기본 패키지를 최신 버전으로 업데이트해 줍니다.

 

아래 명령어를 실행해주세요. 안 해도 상관없습니다만 일반적으로 리눅스는 서버 설치 또는 인스턴스 생성 후 기본적으로 진행하는 작업이 있습니다.

 

 

$ sudo apt update && sudo apt upgrade -y

 

설치가 끝나면 서버 시간대를 서울로 변경해줍니다.

 

# 시간 확인

$ date

# 기본 설정은 UTC 기준시로 되어있습니다.



# 시간대 서울로 변경

$ sudo timedatectl set-timezone Asia/Seoul



# 시간 재확인

$ date

 

 

재부팅해줍니다.

 

$ sudo reboot

 

 


 

3. Proxy 기능을 할 소스 배포

 

여기서부터는 생성된 서버에 프록시 역할을 할 프로그램을 넣고 잘 돌아가는지 테스트해 볼 단계입니다.

 

node js + express 조합으로 프록시 역할을 할 API 서버라고 보시면 될 것 같고 뭔소린지 모르겠다 하시면 그냥 어디로 우회하는 기능을 준비해놓는다 정도로 이해하시면 될 것 같습니다.

 

우선 nodejs npm 패키지 설치가 필요합니다.

 

공식사이트에서 제공하는 설치법 중 가장 쉬운 패키지 설치 방식

 

https://github.com/nodesource/distributions/blob/master/README.md#debinstall

 

nodesource/distributions

NodeSource Node.js Binary Distributions. Contribute to nodesource/distributions development by creating an account on GitHub.

github.com

 

장기 지원 버전으로 설치

 

# 차례대로 명령어 실행

$ curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

$ sudo apt-get install -y nodejs

 

nodejs와 npm 버전 확인

 

 

설치가 잘 되었네요.

 

이제 proxy 역할을 할 소스를 받습니다.

 

# 현재 경로 확인
$ pwd
/home/ubuntu



# 소스 다운로드
$ git clone https://github.com/angkk2u/proxy_url.git

# 소스 받아졌는지 확인
$ ls -al
# proxy_url 디렉토리가 있는지 확인


# 받은 소스의 디렉토리로 이동
$ cd proxy_url


# npm 으로 의존성 패키지 설치
$ npm install

# 웹 서비스 실행
$ node bin/www

# 이렇게 실행해두고 창을 닫지마세요.
# 잘 동작하는지 테스트 후 pm2 패키지를 설치한 후 닫을 거에요.
# 아래쪽으로 계속 작업

 

방화벽에 3000포트로 접속할 수 있도록 추가해줍니다. 브라우저로 돌아가서 AWS Lightsail 사이트에서 관리로 들어갑니다.

 

 

 

네트워킹 탭에서 방화벽의 3000 포트를 추가합니다.

 

 

테스트 및 PM2 설치

 

지금까지 소스를 받아서 작업한 내용은 어떤 특정한 역할을 하는 웹 서비스를 생성한 작업입니다.

 

그 "역할" 이라는 것이 내가 원하는 주소를 일본 서버에서 읽어서 나에게 전달해줘 가 됩니다.

 

내가 국내 망에서 토렌트 사이트를 호출하면 차단당하니까요.

 

브라우저에서 http://35.74.211.133:3000 를 접속해봅니다.

 

저는 고정 아이피로 35.74.211.133을 할당받았습니다. 각자 받은 아이피에 맞게 수정해주세요.

(이 글을 볼 시점엔 저 아이피와 인스턴스는 사라지고 없을 거에요.)

 

 

Express 기본 페이지가 호출된다면 일단 서비스는 정상적으로 구동 된 것입니다.

 

http://[ip주소로변경]:3000/proxy/xml?protocol=https&domain=blog.oriang.net&path=rss

 

그리고 RSS 서비스 호출을 테스트해 봅니다. (제 블로그의 RSS로 테스트하였습니다.)

 

 

여기까지 보이시면 RSS 프록시 기능도 잘 동작하네요.

 

이제 서버를 백그라운드에서 계속 구동되도록 작업을 해줍니다.

 

pm2 패키지를 설치할 텐데요. pm2는 백그라운드 구동뿐만 아니라 node가 죽어도 살려주는 역할도 하게 됩니다.

 

# pm2 패키지 설치
$ sudo npm install pm2 -g

# pm2가 잘 설치되었는지 확인
$ pm2 -v

 

 

pm2에 프록시 웹 서비스를 등록해줍니다. 저와 동일하게 작업하셨다면 경로 또한 동일할 거에요.

 

 

$ pm2 start /home/ubuntu/proxy_url/bin/www

 

 

pm2에 프록시 웹 서비스를 등록해줍니다. 저와 동일하게 작업하셨다면 경로 또한 동일할 거에요.

 

$ pm2 list

 

pm2 모니터링 명령어는

 

$ pm2 monit

 

 

이제 실제 토렌트 사이트로 테스트해 봅니다.

 

토렌트 사이트의 RSS 주소가 https://torrentxxx.net/rss/ft/list 라고 가정하겠습니다. 

 

위 주소를 해체하여 각각 조립하듯이 세팅하여 호출할 것입니다.

(추후에 다른 사이트를 활용하기 위해 좀 더 범용적으로 만들기 위해 쪼개서 사용하도록 작업하였습니다.)

 

우리가 지금까지 세팅한 서버 주소는 http://35.74.211.133:3000/proxy/xml 입니다.

 

저 주소 뒤에 어떤 걸 붙이느냐에 따라 목적지에서 가져올 데이터가 달라집니다.

 

주소로 조립할 파라미터 명은 protocol, domain, path가 있습니다.

 

  • protocol : http 또는 https
  • domain : 토렌트 사이트의 도메인 (torrentxxx.net)
  • path : 토렌트 사이트의 도메인을 제외한 슬러시(/) 이후 오른쪽 값 (rss/ft/list)

 

이제 일본에 있는 내 서버에 시켜볼 차례입니다.

 

http://35.74.211.133:3000/proxy/xml?protocol=https&domain=torrentxxx.net&path=rss/ft/list

 

파란색은 파라미터 명으로 미리 정해놓은 이름입니다.

초록색은 파라미터에 해당하는 값입니다. 변경해주는 값입니다.

빨간색 ?는 파라미터=값 형태의 전달하는 정보를 시작하는 구분자로 생각하시면 됩니다.

빨간색 &는 파라미터=값 을 구분 지어주는 기호입니다.

 

 

호출이 잘 되면 이제 자동으로 다운로드를 시켜볼 단계로 넘어갑니다.

 

저 URL은 국내 TV RSS인데 한번에 50개 호출되고 있더라고요. 50개 이상이 갑자기 등록될 경우 내가 원하는 키워드가 다운로드되기 전에 최신리스트에서 넘어갈 수도 있습니다.

 

정확한 키워드가 있는 경우 그 키워드를 찜 한 뒤 생성된 그 URL을 활용하여 Download Station RSS에 등록해주면 좋습니다.

 

제가 예전에 세팅할 당시엔 50개가 아니었던 것 같은데..

 

어느 정도 살펴보니 그냥 이 주소로 해도 충분할 것 같습니다.

 

 


 

4. Synology NAS Download Station에서 RSS 설정

 

Synology DSM으로 접속한 뒤 Download Station 에서 RSS 설정을 해줍니다.

 

실제로 자동으로 다운로드를 시켜볼 차례입니다.

 

 

추가된 이후에 이름을 편집해서 변경할 수 있고 RSS Feeds 란에 항목들이 떠야 정상입니다.

 

 

키워드를 입력하여 일치하는 것만 다운로드 되도록 합니다.

 

다운로드 필터 탭으로 이동한 뒤 추가 버튼을 누르면 자동으로 다운로드 할 조건을 입력할 수 있습니다.

 

 

영상소스가 720p 인 것만 받기 위해 정규식을 사용하여 구문 분석을 체크하고

 

"키워드" "720" 만 수정하여 사용하세요.

 

.*(키워드).*(720).*

 

 

두 개 이상 조합 시 아래 "키워드1" "키워드2" "720"만 수정하여 사용하세요.

 

.*(키워드1).*(키워드2).*(720).*

 

정규식에 지원하는 문법 안내가 공식 사이트에 없네요. 안되는 문법이 있어서 일반적인 정규표현식을 생각하고 막 넣으면 동작 안 하더라구요.

 

Lookaround, Character classes 정규표현식 패턴 테스트에서 되는 기능들이 일부 안돼서 정교한것 보단 잘못 받아지더라도 좀 더 포괄적인 표현식을 쓰는 것이 좋을 것 같습니다.

 

 


 

정리

 

이렇게 국내에서 막혀서 접속 못 하는 토렌트 사이트 RSS를 해외 서버로 우회하여 자동으로 다운로드하도록 적용해보았습니다.

 

각 단계별로 선택지가 더 많이 있습니다마는

  • 일단 저의 시놀로지는 도커가 안된다. (가장 큰 제약)
  • 도커가 안되니 시놀에서 차단 사이트 우회를 직접 하지 못한다.

 

NAS에서 직접 도커를 못쓰는 상태라면 이 방식이 가장 저렴하고 안정적이라 생각됩니다.

 

 

 

아래 추가 사항은 따로 검색하셔서 작업해두시면 좋습니다.

 

추가. 토렌트 다운로드 완료 시 다운로드 작업 삭제

추가. 토렌트 다운로드 완료 시 알림

 

 

 

 

 

긴 글 읽어주셔서 감사합니다.

 

 

 

 

반응형
반응형

 

부모님 댁에 있던 사연 있는 플러그입니다. 약정이 끝나고 이건 남겨두고 갔더군요. 그래서 지금은 제 집에서 활용 중입니다.

 

가끔 당근에 올라오는데 저렴하게는 만원에도 올라오더군요.

 

 

 

 

  • Z-Wave Stick

모델명 : GWG-02

uplus에서 서비스하고 있으니 당연히 국내 주파수를 쓰고 있습니다.

 

 

https://products.z-wavealliance.org/products/2113?selectedFrequencyId=17 

 

https://products.z-wavealliance.org/products/2113?selectedFrequencyId=17

LGUplus IoT Hub is universal controller which can control several control groups. This IoT Hub can support full function of notification sensor, On/Off switch, Valve, Open/Closed and Door Lock products made for LGUplus. Other products made as general Z-Wav

products.z-wavealliance.org

 

 

 

  • 플러그

모델명 : SPD-02A

제조사 : 다원 DNS

 

 

https://products.z-wavealliance.org/products/2142?selectedFrequencyId=17 

 

https://products.z-wavealliance.org/products/2142?selectedFrequencyId=17

The device can remotely power on/off to the load connected and will inform you of the electricity usage of your load. You can use it to measure the power of the load connected to the device (currently instantaneous power & used power).

products.z-wavealliance.org

 

세팅법

 

 

 1. 라즈베리파이에 스틱을 꽂아줍니다. 초록색 불이 들어옵니다.

 

 

 2. Z-Wave JS 애드온 설치 (공식 애드온)

 

 

 

애드온 설치 후 device를 usb로 선택해줍니다.

 

 

 

구동한 뒤 로그를 확인합니다.

 

 

 

 

저는 이미 설정이 되어있어서 Node 1번과 4번이 뜨는데 처음 등록할 때는 바로 뜨는지 모르겠네요.

 

Node 1은 Z-Wave 스틱이고 4번이 플러그입니다.

 

기기를 지웠다가 추가했다 하면서 증가했는데 환경마다 다르니 기기 목록에서 확인해보시면 됩니다.

 

 

 

플러그에서 5초간 버튼을 누르고 잠시 후(저는 한참 후....) Home Assistant에서 기기가 잘 보이는지 확인해줍니다.

 

이 과정을 하고 나면 플러그 Node 가 Z-Wave JS 로그에 떴던 것 같아요.

 

플러그가 전원 콘센트에 꽂혀있는 상태에서 버튼을 5초간 누르면 적색 LED가 점멸하게 될 때 손가락을 떼라고 매뉴얼에 나와있네요.

(위에 z-wavealliance 링크 타고 들어가시면 제조사 제공 매뉴얼이 있습니다.)

 

10초간 누르면 초기화된다고 합니다.

 

 

 

기기가 잘 등록되었는지 확인합니다.

 

 

 

Z-Wave JS 구성요소에 등록된 기기가 2개 확인됩니다. 기기가 추가되면 알림 메뉴에도 뜹니다.

 

 

 

취침등 콘센트를 클릭합니다. (저는 이미 등록 후 이름을 변경해서 이렇게 뜹니다)

 

 

 

Lovelace에 추가해줍니다.

 

 

이 방식이 아니더라도 둘러보기(Lovelace)에서 대시보드 편집으로도 추가 가능합니다.

 

 

저는 Google Assistant와 Home Assistant 연동 시 기기 동기화를 수동으로 설정했기 때문에 configuration.yaml 파일을 수정한 후 구글 홈 앱에서 새로 동기화를 해주었습니다.

 

 

바로 기기가 등록되고 음성인식 사용되네요.

 

 

 

 

 

 

 

반응형
반응형

사전 준비 사항

 

Google Assistant 연동 전 미리 준비해야 할 것이 있습니다.

 

Home Assistant를 설치하고 나서 http://ip주소:8123로 접속하실 텐데 Google과 연동하려면 https로 외부 서비스가 가능해야 합니다.

 

결론은 도메인이 필요하고, SSL 인증서가 필요합니다.

 

도메인은 무료든 구매하시든 상관없고 카페에선 dockdns를 많이 사용하시네요.

 

인증서는 무료인 Let's Encrypt를 많이들 쓰고 있습니다.

 

 

방법 1. 간단하게 Duck DNS 애드온으로 적용하는 가장 쉬운 방법입니다.

HomeAssistant

 

[유튜브] 7편. HA 설정하기 03 - HTTPS 접속하기 첫번째

안녕하세요~ 레이군 입니다.HA설치하기 일곱번째 시간을 들고왔어요..오늘도 뭔가 많네요....이쁜 모션그래픽을 넣을줄 모르는 1인이니, 저희 아들들 사진으로 채웠습니다!

cafe.naver.com

 

 

방법 2. Synology DDNS를 사용하고 있다면 깔끔하게 sub 도메인으로 추가할 수 있습니다.

https://ha.xxxx.synology.me 식으로 접속이 가능합니다.

HomeAssistant

 

Synology DSM 역방향 프록시 설정 (https:// 주소 사용하기)

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

 

기타 방법. 개인 도메인 + SSL 인증서 적용

 

저는 개인 도메인에 Home Assistant 운영 중인 IP로 서비스 도메인을 연결하고 Let's Encrypt로 인증서를 받아서 https를 적용하였습니다.

 

 

Let's Encrypt는 3개월 단위로 갱신이 필요하니 주기적으로 갱신하도록 자동화하는 것이 중요한 포인트입니다.

 


통합 구성요소 수동 등록

 

구글의 음성인식을 사용해서 Home Assistant에 등록된 기기들에게 일을 시켜볼 단계입니다.

 

구글에서 요구하는 https 주소를 갖는 것을 사전 준비사항에서 진행을 했고요.

 

아래 두 가지 작업을 진행하겠습니다.

  1. Google Assistant에게 내 음성을 통해 시킬 준비
  2. Home Assistant에게 Google Assistant가 시키면 받아들일 준비

 

1. Google Assistant에게 내 음성을 통해 시킬 준비

번역본(일부 공식 매뉴얼과 다른 내용이 있어 번역본은 참고만 하였습니다.)

구글 어시스턴트(Google Assistant)

 

구글 어시스턴트(Google Assistant)

Setup for Google Assistant integration

hakorea.github.io

공식 매뉴얼 Google Assistant

 

Google Assistant

Setup for Google Assistant integration

www.home-assistant.io

 

 

 

1. Actions on Google console 프로젝트 생성 및 설정

 

Actions on Google은 사용자가 Google 어시스턴트를 사용해 작업을 수행하도록 지원하는 서비스입니다.

 

쉽게 말해, 내가 구글 홈 미니를 통해서 말하는걸 → (음성인식 기능은 AI 스피커를 활용) → Home Assistant가 뭘 해야 할지를 정해준다(Action)입니다.

 

계정은 별도로 하나 더 생성하시길 추천드립니다. 개인 계정의 많은 연결된 동기화 서비스(캘린더, 연락처, 메모 등)가 구글 홈 미니를 통해 공유될 수 있습니다.

 

개인 계정 외 집 제어용 xxxxx.home@gmail.com 정도가 딱 적당합니다.

 

 

 

https://console.actions.google.com/ 접속하여 로그인 후 New project를 누릅니다.

 

프로젝트 명은 알아서 정하시면 돕니다. 언어와 지역을 선택해줍니다.

 

 

 

Smart Home 클릭 후 Smart Building 클릭

 

Action 추가하기

 

아래 이미지 참고하여 Action 추가 메뉴로 접속

 

 

Fulfillment URL을 작성합니다.

 

https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant

 

붉은색 부분을 자신의 Home Assistant 주소를 적어줍니다.(https 작업했던 주소)

 

 

저장 후 프로젝트 설정에서 Project ID를 메모장에 잘 복사해둡니다. (잠시 뒤 사용 예정)

 

 

Account linking 메뉴로 가서 Home Assistant와 연동에 필요한 설정을 합니다.

 

Client ID : https://oauth-redirect.googleusercontent.com/r/[YOUR_PROJECT_ID]

(위에서 복사해놨던 Project ID를 여기서 붙여 넣습니다)

 

Client Secret : 아무거나

(Home Assistant에서는 안 쓰인다고 아무거나 하라네요)

 

Authorization URL : https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize

Token URL : https://[YOUR HOME ASSISTANT URL:PORT]/auth/token

 

Configure your client의  scopes에 email 입력 후 add scope 누르고 , name을 입력 후 add scope 눌러 각각 추가해줍니다.

 

Google to transmit clientID and secret via HTTP basic auth header 은 체크를 해제해줍니다.

 

 

테스트 앱을 생성해줍니다

 

 

기기 테스트가 활성화되어있는지 확인합니다.

 

 

2. 다른 사용자 추가 필요시

 

Google Assistant를 통해 가족 등이 제어를 위해 권한 추가할 경우 아래 링크 참고하시면 됩니다. 제 경우는 구글 홈 미니를 통해서만 음성인식을 할 경우라 이 과정을 진행하지 않았습니다. 나중에 추가 가능합니다.

 

가족 초대가 필요할 경우 - Google Assistant

 

 

 

3. 기기 동기화 설정

 

구글 서버와 상태 정보를 동기화하기 위해 필요한 작업입니다.

 

 

서비스 계정 생성을 위해 GCP 콘솔 사이트로 이동합니다.

 

https://console.cloud.google.com/apis/credentials/serviceaccountkey

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

 

프로젝트 선택 후 서비스 계정 만들기

 

 

적당한 이름으로 생성

 

저는 이미 만들어놓은 게 있는데 스샷 찍으려고 하나 더 만들어 봤습니다.

 

 

서비스 계정 > 서비스 계정 토큰 생성자 권한 추가

 

 

 

 

계속 후 완료

 

 

 

키 관리에서 키를 생성합니다.

 

 

 

 

 

 

생성된 json 파일이 다운로드됩니다. 이 파일 이름을 service_account.json으로 변경합니다. 나중에 Home Assistant에서 사용됩니다.

 

HomeGraph API 사용 설정해줍니다.

 

https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

 

 

 

 

Home Assistant 구성 설정

 

 

애드온 스토어에서 파일 에디터나 Visual Studio Code를 설치해줍니다.

 

 

받아놨던 service_account.json 파일을 config 경로에 업로드해줍니다.

 

 

 

config 폴더에 있는 configuration.yaml을 편집합니다. (통합과 구성 관련된 메인 파일)

 

 

# Example configuration.yaml entry
google_assistant:
  project_id: YOUR_PROJECT_ID
  service_account: !include SERVICE_ACCOUNT.JSON
  report_state: true
  exposed_domains:
    - switch
    - light
  entity_config:
    switch.kitchen:
      name: CUSTOM_NAME_FOR_GOOGLE_ASSISTANT
      aliases:
        - BRIGHT_LIGHTS
        - ENTRY_LIGHTS
    light.living_room:
      expose: false
      room: LIVING_ROOM

 

Google Assistant 정보와 구성요소 (스위치, 전등 등)를 입력할 겁니다.

 

Home Assistant에서 등록해둔 구성요소를 자동으로 불러올 수도 있고 수동으로 등록할 수 있는데 저는 수동으로 설정했습니다.

 

 

제가 쓰고 있는 설정입니다. (#은 주석입니다.)

 

# Google Assistant Configuration
google_assistant:
  project_id: YOUR_PROJECT_ID # services_account.json 파일 안에 있는 project_id
  service_account: !include service_account.json
  report_state: true
  expose_by_default: false # 기본적으로 기기들을 연동할지 여부를 결정 (수동으로 추가하기 위해 false 처리)
  entity_config: 
    light.kocom_bedroom_light0: # 안방 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 안방
    switch.node_4: # 안방 취침등
      name: 취침등
      expose: true
      room: 안방
    light.kocom_dressingroom_light0: # 옷방 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 옷방
    light.kocom_livingroom_light1: # 거실 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 거실
    light.kocom_kitchen_light1: # 주방 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 주방
    light.kocom_kitchen_light2: # 식탁 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 식탁
    light.kocom_playroom_light0: # 컴퓨터방 전등
      name: 전등
      expose: true
      aliases:
        - 전등
        - 불
      room: 컴퓨터방
    switch.kocom_wallpad_elevator: # 엘리베이터
      name: 엘리베이터
      expose: true
    fan.kocom_wallpad_fan: # 환기
      name: 환기
      expose: true
      room: 오리네

 

 

설정 파일에 대한 설명은 공식 가이드 또는 번역 페이지 보시면 됩니다.

 

 

https://www.home-assistant.io/integrations/google_assistant/#configuration-variables

 

Google Assistant

Setup for Google Assistant integration

www.home-assistant.io

https://hakorea.github.io/integrations/google_assistant/#configuration

 

구글 어시스턴트(Google Assistant)

Setup for Google Assistant integration

hakorea.github.io

 

 

여기까지 진행하셨다면 Google Assistant와 Home Assistant가 연동되도록 "설정"까지 된 것입니다.

 

 

Google Home 앱에서 Home Assistant의 기기를 등록해주면 구글 홈 미니의 음성인식을 활용하여 기기를 제어할 수 있게 됩니다.

 

 

 

안드로이드 기준으로 작성하였습니다.

 

 

Google Home 앱을 설치하고 + 버튼을 눌러 추가해줍니다.

 

 

혹시 구글 계정을 여러 개 사용하신다면 Actions on Google에 사용한 계정으로 로그인해줍니다.

 

 

Google 호환 기능을 누르고 Actions on Google에서 만들었던 앱을 선택해줍니다. 만들 당시 이름을 지정하셨다면 그 이름으로 찾으시면 됩니다.

 

Actions on Google에서 만든 앱을 선택하면 Home Assistant 로그인 창이 뜹니다.

 

로그인을 하고 나면 설정해뒀던 기기들이 등록됩니다.

 

 

 

 

 

구글 홈 미니를 등록해두었다면 오케이 구글, 안방 불 꺼줘 라고 말하면 불을 꺼줍니다.

 

 

 

엘리베이터는 스위치로 등록되어있어서 엘리베이터 켜줘 라고 말해야 호출이 됩니다.

 

 

 

 

반응형
  1. 긴밤천국 2021.06.16 11:30

    정말 도움이 많이 되었습니다. 감사합니다.

  2. 궁금해요! 2021.06.28 00:26

    https://www.home-assistant.io/integrations/google_assistant/#configuration
    여기 가이드 보면 configuration.yaml에
    project_id를 아래와 같이 설정하라고 하는데요
    Project ID from the Actions on Google console (looks like words-2ab12)

    이 값은 service_account.json 하고는 다른값인데 무얼 적어야 할까요?

    • 오리야호 2021.06.30 01:11 신고

      혹시 동일한 계정에 동일한 프로젝트를 선택하신게 맞으신가요?
      https://console.actions.google.com/ 에서 생성한 프로젝트는 https://console.cloud.google.com/ 에서 동일한 프로젝트로 생성한 서비스토큰생성자의 키는 동일한 프로젝트 ID를 가져야 합니다~~

반응형

Home Assistant에 코콤을 연동하기 위해 2개 애드온 설치가 필요합니다.

 

 

 

1. Mosquitto (MQTT broker) 설치

MQTT가 무엇인지 궁금하신분은 아래 글을 읽어보시면 도움이 될 것 같습니다.

medium.com/@jspark141515/mqtt%EB%9E%80-314472c246ee

 

MQTT란?

MQTT는 M2M, IOT를 위한 프로토콜로서, 최소한의 전력과 패킷량으로 통신하는 프로토콜입니다. 따라서 IOT와 모바일 어플리케이션 등의 통신에 매우 적합한 프로토콜입니다.

medium.com

 

 

공식 애드온에서 Mosquitto broker 설치 후 설정

 

공식 애드온에서 Mosquitto broker 설치

 

구성 탭에서 아래와 같이 설정해줍니다. (기본값에서 로그인정보만 추가해줬습니다.)

logins:
  - username: 아이디
    password: 패스워드
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

 

 


 

 

2. 코콤 애드온 설치

 

코콤 애드온 설치

저장소 URL

 

github.com/HAKorea/addons

 

HAKorea/addons

Korean Community Add-ons for HA Supervised(Hassio) - HAKorea/addons

github.com

 

 

 

설정 방법

github.com/HAKorea/addons/tree/master/kocomRS485#installation

 

HAKorea/addons

Korean Community Add-ons for HA Supervised(Hassio) - HAKorea/addons

github.com

 

 

설정이 잘 되었다면 코콤 월패드에서 제어 하는 조명, 플러그, 보일러, 환기, 가스, 엘리베이터 제어가 HA 에서도 가능해집니다.

 

Mosquitto broker와 Kocom Wallpad Controller with RS485 애드온이 잘 돌고 있다면 로그에 잘 찍히는 것을 확인할 수 있습니다.

 

 

 

또 다른 확인 방법은 MQTT Explorer 프로그램을 사용해서 데이터를 볼 수 있습니다.

 

MQTT Explorer 접속 설정

 

MQTT 데이터 확인 가능합니다.

 

MQTT Explorer 데이터 확인

 

여기까지 오셨다면 Home Assistant에서 제어가 가능해집니다.

 

왼쪽메뉴의 둘러보기가 lovelace라는 대시보드 형태로 된 곳이고 여기에 여러 카드를 추가할 수 있습니다.

 

 

 

 

이제 마지막 단계는 Google Assistant를 통해 음성인식으로 Home Assistant의 기기들을 제어 하는 것만 남았네요.

반응형
반응형

설치 관련 글은 중간에 스크린샷을 아예 찍질 못해서 참고 했던 글로 대체 합니다. 다른 분들이 정리를 잘 해놓으셔서 제가 굳이 다시 정리할 필요가 없긴 하네요.

구매 리스트 (167,000원)

  • 라즈베리파이 4(램4GB)
  • 아르곤 M.2 케이스
  • 트랜센트 MTS830S SSD(128GB)
  • USB AM-AM 케이블(50CM)
  • 전원 5V-4A + USB-C 커넥터
  • (필요시) Micro SD 카드 & 리더기

 


 

조립하기

  • 설명서 대로 조립합니다

참고하시면 좋은 글

cafe.naver.com/koreassistant/4523

 

1-1. HomeAssistant 설치하기(라즈베리파이4b)

안녕하세요. 랜이입니다. 드디어 초보입문가이드의 시작인 HomeAssistant설치하기 를 게시하네요. 이미지와 글로 작성하려니 내용이 길어질듯하여 동영상으로 올립니다. (...

cafe.naver.com

 

 


 

 

HassOS 설치하기

Home Assistant Operating System (formerly HassOS) 은 Home Assistant와 Add-ons을 운영하기 위한 OS 입니다.

 

Home Assistant는 다양한 기기에서 설치방법을 제공합니다.

 

장비는 주로 NUC, 라즈베리, 시놀로지 NAS

 

설치 환경은 OS, Docker 를 많이 선택하시는것 같습니다.

 

저는 라즈베리파이에 Home Assistant OS를 SSD에 이미지 통채로 넣어주는 방식으로 설치 했습니다.

 

설치 방식은 어느걸 해도 상관없지만 애드온을 쓰기 위해선 OS 이미지로 설치하거나 Home Assistant Supervised를 설치 하셔야 합니다.

 

 

HA 공식 사이트설치 방식에 따른 기능 차이

 

설치 방법에 대한 공식 사이트 설명

www.home-assistant.io/installation#compare-installation-methods

 

Installation

Install Home Assistant

www.home-assistant.io

 

라즈베리 파이에 설치하기 공식 사이트 가이드

www.home-assistant.io/installation/raspberrypi

 

Raspberry Pi

Install Home Assistant on a Raspberry Pi

www.home-assistant.io

 

Raspberry Pi 4 64-bit 로 설치함, 라즈베리파이 8기가 이신분은 32비트 설치가 안되므로 64비트로 설치 하셔야 합니다.

 

 


 

SSD로 부팅안될 경우

블로그 보고 EEPROM 펌웨어 업데이트 진행했습니다.

2020년 하반기 이후 제조된 라즈베리파이 4는 EEPROM이 업데이트 되어 출고 된다는데... 제껀 이전 버전이었나봅니다.

SSD 부팅이 바로 안되는 문제로 SD 카드로 업데이트를 해줬습니다. 카페 공동구매를 진행하셨던 베어팹님 블로그 참고.

m.blog.naver.com/emperonics/221979352174

 

라즈베리파이4 usb(SSD)로 부팅시키기

라즈베리파이4 USB로 부팅하기 *2020년 하반기 이후 제조된 라즈베리파이4는 eeprom이 업데이트 된 상태...

blog.naver.com

 

 


 

 

WiFi 설정

아래 링크 참고하여 WiFi 설정을 해줬습니다.

중간쯤 Setting Up Wi-Fi for Home Assistant 부분을 참고하세요.

Setting up Home Assistant on the Raspberry Pi

 

Setting up Home Assistant on the Raspberry Pi

Automate your home

pimylifeup.com

아.. 한글로 잘 설명해주신분이 계셨네요.

HomeAssistant

 

[1편] 홈어시스턴트 HASS OS 공식OS 라즈베리파이4 설치 방법

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

 

 


Home Assistant 접속하기

부팅이 완료되면 공유기에서 ip를 확인한 뒤 http://ip:8123 으로 접속합니다.

 

처음엔 계정을 만드는 화면이 뜨는데 찍어 놓은게 없어서 로그인 화면으로 대체 합니다.

 

 

HA 로그인 화면

 


 

Argon ONE fan 설정하기

1. I2C 활성화 애드온 설치

 

 

애드온 설치

 

 

추가할 저장소 URL

 

github.com/adamoutler/HassOSConfigurator

 

adamoutler/HassOSConfigurator

A set of Add-Ons to configure HassOS For various platforms and development purposes. - adamoutler/HassOSConfigurator

github.com

github.com/adamoutler/HassOSArgonOneAddon

 

adamoutler/HassOSArgonOneAddon

A Home Assistant Addon for Argon One Fan Control. - adamoutler/HassOSArgonOneAddon

github.com

 

 

우선 저장소 추가 되었다면 저장소에 올라온 애드온들이 보일거에요.

 

먼저 HassOS I2C Configurator 애드온을 설치 해줍니다.

 

보호모드 해제 해주시고 시작을 누르시면 로그에 재부팅 2번 하라는 메세지가 뜹니다. 저는 이미 수행했기 때문에 Found i2c access! 라는 메세지가 뜨네요. 활성화가 된 이후 이 애드온은 삭제 해도 됩니다.

 

 

HassOS I2C Configurator 설정

 

 

혹시나 안되시는 분은 직접설정 방법

www.home-assistant.io/common-tasks/os#enable-i2c

 

Common Tasks - Operating System

Common tasks for Home Assistant Operating System

www.home-assistant.io

 

 

 

2. ArgonOne Active Cooling 애드온 설치

 

설정은 처음에 화씨로 설정되어있는데 섭씨로 바꿔줍니다.

 

팬 동작 설정

 

 

여기까지 오셨으면 팬이 돌아가는 소리가 이제 들리실거에요.

 

하드웨어는 준비가 다 되었네요.

반응형
반응형

사전에 읽으면 도움되는 글

[홈IoT] COMMAX 월패드 RS485 통신하기

 

[홈IoT] COMMAX 월패드 RS485 통신하기

COMMAX 월패드 통신하기 2020월 5월 3일 루피영호 차 례 □ 목 표 □ 준비물 □ 통신포인트 □ 싱크...

blog.naver.com

HomeAssistant Core / 코콤 월패드 샤오미 공기청정기 연동하기 / Elfin EW11 / RS485

 

HomeAssistant Core / 코콤 월패드 샤오미 공기청정기 연동하기 / Elfin EW11 / RS485

안녕하세요? 도정진입니다. 새로 이사한 집이 나름 최신식이라 월패드가 있었습니다. 이 월패드의 다수 기능을 휴대폰으로 가져와보도록 하겠습니다. 한편, 아래의 글은 IOT 어린이.. 아린이가

blog.djjproject.com

 


작업 과정

통신 데이터를 캡처하기 위해서 크게 아래 과정이 필요합니다.

  1. 우리 집 월패드 제조사
  2. 통신 구간 확인 (RS485로 통신하는 다양한 장소)
  3. EW11 연결

 

 

1. 우리 집 월패드 제조사 및 모델명 확인

월패드 제조사마다 통신 데이터가 다른데 다른 사람이 올려둔 자료를 미리 찾아두면 좋습니다.

 

 

2. 통신 구간 확인 (RS-485로 통신하는 다양한 장소)

아래 공간 중 한 곳에서 신호를 보내도록 작업해야 합니다.

설치 위치는 문제가 생겼을 때 쉽게 손볼 수 있는지를 고려하는 게 좋습니다. 월패드 뒤에 숨겨두면 문제 생길 때마다 월패드 해체를..

저의 경우에는 싱크대 하부장 보일러 밸브 제어기에서 배선은 내부로 작업하고 외부에 EW11을 놔두는 환경으로 구성했습니다.

  • 싱크대 하부장 보일러 밸브 제어기
  • 가스 감지기
  • 통신단자함(저희집엔 없었습니다)
  • 월패드 뒤 벽속
  • 등등

 

3. EW11 연결

 

  • EW11 외 대안 : 유선 연결 RS485 to USB

이런 식으로 RS485 to USB를 사용할 경우 라즈베리파이를 싱크대에 같이 위치해주어야 합니다.

찍어 놓은 사진이 이거밖에 없네요. 저는 이 방법으로 라즈베리 2로 테스트를 하고 EW11과 라즈베리 4를 구매했습니다.

이 과정은 굳이 거치지 않고 바로 EW11을 연결해도 무방합니다. RS485 usb로 검색하시면 많이 나오고 배송비가 더 나옵니다 ㅋㅋ

 

RS485 to USB

 

  • EW11 RS485 to WiFi

알리에서 1.5만 원 정도에 구매를 하고 일주일 정도 배송 기간이 걸렸습니다.

구매시 모델명을 유의하세요. EW10은 RS-232 시리얼용이라 EW11로 구매해야 하고 저는 외부 안테나 버전(EW11A0)을 구매했습니다.

 

 

처음 세팅은 전원만 인가한 뒤 통신설정을 해주는 과정입니다.

 

남는 USB 케이블을 잘라 아래 처럼 피복을 벗겨 냅니다.

 

USB 케이블로 전원케이블 만들기

 

 

+엔 빨간선(VCC) -엔 검은색(GND) 선을 연결해줍니다. 반대로 연결하면 안돼요. 위에 자세히 보시면 처음에 반대로 연결해서 받자마자 고장 낼 뻔 ㅋㅋ

 

 

EW11 전원 케이블 연결방법

 

USB 케이블은 5V 전원인데, EW11A0는 5~36V까지 가능하다고 되어있네요. 정상적으로 전원이 인가되면 EW11_ 로 시작하는 WiFi에 연결해줍니다.

 

브라우저에서 10.10.100.254 로 접속한 뒤 admin/admin 기본 계정으로 접속한 뒤 설정해줍니다.

 

 

  • EW11 시스템 세팅

시스템 설정

 

Authentication 에서 사용자, 비번 수정

WAN Settings DHCP ON 해주는 게 좋습니다. 나중에 접속 못해서 초기화해야 할 일 생길 수 있어요. DNS는 구글 DNS로 변경했습니다. (EW11에서 도메인 주소로 접속할 일이 없어서 의미는 없습니다)

WiFi Settings 각 집에 사용중인 WiFi ssid와 접속 비번을 설정해줍니다.

NTP Settings 구글 타임서버로 설정해줬습니다.

 

 

  • EW11 시리얼포트 세팅

 

시리얼포트 설정

 

  • EW11 통신 설정 

TCP 설정

 

8899 포트로 설정해줍니다.

 

 

 

 

 

저는 싱크대 아래 밸브 제어기에 랜선을 3미터 정도로 잘라서 라인을 추가해줬습니다. 그리고 선을 빼서 싱크대 위로 올렸습니다. 식기세척기 때문에 싱크대 구멍을 내놓은 게 있어서 나중에 유지보수를 위해 케이블을 밖으로 빼놨습니다.

 

 

 

랜선을 절적한 길이로 자른 후 결선해주었습니다.

 

기판에 RS485라고 적혀있는 곳은 코콤 데이터가 아니어서 다른 곳에 연결하면서 테스트했습니다. 밸브 제어기 제품이 코콤 말고 다른 다른 월패드도 지원하는 것 같은데 기기 세팅이 다를 수 있다고 추측만 하고 있습니다.

 

정상적이라면 RS-485 단자를 찾는 것이 맞지만 세대마다 다를 수 있으니 모든 가능성을 열어두고 데이터를 찾아야 합니다.

 

관련 카페글

HomeAssistant

 

코콤 월패드 사용중인데 시리얼 통신 값이 주기적으로 계속 발생되는 건 이상이 있는걸까요??

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

 

RS-485 라인도 EW11에 연결해줍니다.

 

보일러 밸브 제어기 RS485 통신 캡쳐

 

 

전원, 통신 케이블 연결

 

 

EW11 위치 정하기

 


 

데이터 확인하기

Windows 용 TCP 데이터 송수신 프로그램

 

blog.daum.net/pg365/276

 

시리얼 포트, TCP/IP, UDP/IP 터미널 프로그램 (시리얼 통신 프로그램)

프로그램을 잘 사용하고 계신다면, Youtube 구독과 좋아요 부탁드립니다. https://www.youtube.com/channel/UCyeFmUd3h9Gzw4wK7tglc9Q 이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프..

blog.daum.net

 

프로그램 실행 후 Connect 버튼을 누릅니다.

 

 

시리얼포트 송수신 프로그램

 

EW11 초기 세팅 때 DHCP로 IP를 할당받기 때문에 공유기 화면에서 확인해야 합니다. 저는 공유기 설정에서 고정값을 할당하도록 해주었습니다.

 

 

TCP 연결하기

 

수신 데이터 확인

 

 

 

패킷을 분석하여 올려주신 랜이님 감사합니다.

 

 

mscg.kr/65

 

[월패드] 코콤 월패드 및 그렉스 환기장치 RS485 패킷

담다패드 - 월패드만 있으면 우리집은 이미 스마트홈?! 담다패드 - 월패드만 있으면 우리집은 이미 스마트홈?! 스마트폰, 스마트전구, IoT가전제품, AI스피커 ...... 스마트한 세상에 살고계신

mscg.kr

 

 

 

여기까지 데이터를 잘 수신하신다면 4단계 중 첫 번째 단계를 완료한 것입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

최근 10년 내 지어진 아파트들은 월패드가 있어서 중앙제어가 가능하죠? 제가 거주 중인 집도 코콤 월패드를 쓰고 있어서 제어가 가능해요.

 

전등, 각방 보일러, 환기장치, 플러그, 가스밸브, 문열림 제어가 가능한데 월패드 뿐만 아니라 앱으로도 제어가 가능합니다.

 

 

처음엔 편하다고 생각했는데 점점 생각이 많아집니다.

  • 폐쇄적인 환경이 거슬립니다. 코콤 앱 외에는 뭘 할수 없네요?
  • 자동화 불가능
  • 음성인식 제어 불가능
  • 각종 센서, 추가적인 다른 기기와 통합 불가능

 

결정적으로 아래와 같은 상황이 저를 행동하게 만들었어요.

  • 주방에 아기 펜스를 쳐놨는데 전등을 키려면 펜스를 넘어서 전등을 켜고 다시 넘어 가야 하는 상황
  • 자려고 누웠는데 취침등을 끄려고 다시 일어나야 하는 상황
  • 나가면서 짐이 많을 때 손이 자유롭지 않는 상황에서 음성으로 엘리베이터 호출
  • 일몰 이후 일출 전까지 옷방에 들어갈 때 자동으로 점등
  • 부모님 댁 약정 끝나고 남아 있는 uplus 스마트 플러그 활용

 

 

지금 구성된 환경에 확장성을 더해 음성인식을 추가하고 기존 가전기기와 센서들을 활용하고 싶어 작업하면서 메모해놨던 것을 정리하였습니다.

 

 

검색하면 필요한 정보가 다 있었지만 처음엔 뭘 해야 하는지를 몰라서 헤맷는데, 처음 시작하려고 정보를 알아보는 분들에 맞춰 작성하려고 합니다. 

 

 

 

 


목표

 

  • 월패드로 제어 가능한 장비들을 음성으로 제어

 

목표 구성도

 

 


 

용어

개요 페이지를 읽을 때 알면 도움이 되는 용어

  • Home Assistant : 스마트 홈 구축 시 장치 중앙 제어를 위한 소프트웨어. 월패드 연동 및 플랫폼 확장 시 필요. Connector를 통해 여러 플랫폼과 연동. 
  • Google Assistant : 구글의 인공지능 비서 서비스. 음성인식 기능 활용. AI 스피커가 제일 저렴함.
  • SmartThings : 삼성전자의 IoT 플랫폼. SmartThings 앱, 허브, 센서 및 장치를 포함.
  • RS-485 : 월패드가 각종 센서와 장치들과 통신할 때 쓰임.(시리얼통신을 하고 있다 정도만 이해하고 넘어가겠습니다)
  • Z-Wave : 주로 가정용 자동화에 사용되는 무선 통신 프로토콜. 나라마다 사용하는 주파수가 달라 해외 직구 시 유의.

 


 

준비물

1. 월패드가 있는 집

Home Assistant 애드온으로 지원하는 월패드인지 확인하는 것이 중요합니다. (코콤, 삼성, 대림, 코맥스, 현대 가능한 것 같네요)

 

2. RS485 통신을 캡쳐할 장비

무선으로 할지 유선으로 할지 각자의 상황에 맞게 달라질 수 있지만 EW11 구매를 추천합니다.(알리에서 1.5만 원 정도)

(자세한 내용은 월패드 RS-485 통신 패킷 캡쳐 글에서)

 

3. Home Assistant를 설치할 장비

Home Assistant를 설치하는 방법은 환경에 따라 많은 갈림길이 있어요. 저는 라즈베리파이 + SSD 부팅 + HassOS 조합으로 카페 공구해서 17만 원 정도 들었습니다.

인텔 CPU가 장착된 시놀로지 NAS가 이미 있으신분은 도커로 설치하는 걸 추천합니다.

월패드를 그냥 SmartThings에서 제어하고 싶다 하시는분들은 브릿지 허브라는 제품 정식 발매를 기다리는 것도 대안이 될 수 있겠네요.

 

4. AI 스피커

갤럭시 홈 미니 VS 구글 홈 미니를 고민했습니다.

갤럭시 홈 미니가 있었지만 Home Assistant와 SmartThings를 연동하기 위해 SmartThings Hub가 추가로 필요했습니다. SmartThings Hub는 국내 정식발매 됐지만 현재는 재고가 없고 재입고가 7월은 되어야 한다고 합니다. aeotec 제품이 SmartThings Hub 호환 제품이고 해외 직구로 구매할 수도 있는데, Z-Wave가 미국향이라 보류. SmartThings Hub 중고제품도 보류했습니다.

주방과 안방 두 곳에 음성인식을 위한 AI 스피커가 필요한데 구글 홈 미니가 저렴해서 최종 결정했습니다.

갤럭시 홈 미니는 IR 리모컨으로 제어 하는 기기 등록이 가능한데 구글 홈 미니는  리모컨으로 제어하는 기기(선풍기 같은..)까지 음성인식으로 사용하시려면 IR 리모컨 제어하는 mBox같은걸 구매해야 합니다. 

 

 

 


 

목차

1. 월패드에서 통신하는 RS-485 패킷 캡쳐하기

 

1. 월패드에서 통신하는 RS-485 패킷 캡쳐하기

사전에 읽으면 도움되는 글 [홈IoT] COMMAX 월패드 RS485 통신하기 [홈IoT] COMMAX 월패드 RS485 통신하기 COMMAX 월패드 통신하기 2020월 5월 3일 루피영호 차 례 □ 목 표 □ 준비물 □ 통신포인트 □ 싱크...

blog.oriang.net

대안1. RS-485 to USB : HA가 설치된 하드웨어에 직결해야 하므로 위치선택 제약 생김

대안2(현재). RS-485 to EW11(TCP) : 무선으로 HA에 전송하므로 위치 선택이 용이

대안3. ESPHome

 

 

 

2. Home Assistant 설치하기(라즈베리파이 + SSD 부팅)

 

2. Home Assistant(HassOS) 설치하기(라즈베리파이4 + SSD 부팅)

설치 관련 글은 중간에 스크린샷을 아예 찍질 못해서 참고 했던 글로 대체 합니다. 다른 분들이 정리를 잘 해놓으셔서 제가 굳이 다시 정리할 필요가 없긴 하네요. 구매 리스트 (167,000원) 라즈베

blog.oriang.net

 

3. Home Assistant + 코콤 연동하기

 

3. Home Assistant + 코콤 연동하기

Home Assistant에 코콤을 연동하기 위해 2개 애드온 설치가 필요합니다. 1. Mosquitto (MQTT broker) 설치 MQTT가 무엇인지 궁금하신분은 아래 글을 읽어보시면 도움이 될 것 같습니다. medium.com/@jspark141515/..

blog.oriang.net

 

4. Home Assistant + Google Assistant 연동하기

 

4. Home Assistant + Google Assistant 연동하기

사전 준비 사항 Google Assistant 연동 전 미리 준비해야 할 것이 있습니다. Home Assistant를 설치하고 나서 http://ip주소:8123로 접속하실 텐데 Google과 연동하려면 https로 외부 서비스가 가능해야 합니다...

blog.oriang.net

대안1. HA와 GA가 아닌 다른 플랫폼 연결하기 (AI 스피커가 있는 SmartThings 같은..)

데인2. 브릿지 허브 구매. 정식출시 전. 5월 24일 예정. + GA/ST 연동. HA 없이 브릿지 허브 서버와 통신하므로 라즈베리, NUC 등 비용 절감 가능.

 

 

추가 - 라즈베리파이 HA에 uplus z-wave 스틱 + 스마트 플러그 사용하기

 

라즈베리파이 HA에 uplus z-wave 스틱 + 스마트 플러그 사용하기

부모님 댁에 있던 사연있는 플러그입니다. 약정이 끝나고 이건 남겨두고 갔더군요. 그래서 지금은 제 집에서 활용 중입니다. 가끔 당근에 올라오는데 저렴하게는 만원에도 올라오더군요. Z-Wave S

blog.oriang.net

 

 

 

반응형
반응형

몇년 전 삼성 SL-M2027을 구매했습니다.

 

 

구매할 당시엔 PC에 바로 연결해서 사용할 것이고 네트워크 프린터로 굳이 사용할 이유가 없다고 생각했었어요.

 

 

출력할 문서가 필요하면 USB 연결해서 출력하면 되는거니까요.

 

 

저 처럼 조금 더 저렴하게 구매하려고 USB 모델로 구매한 경우 이면서 이후에 네트워크를 통해 출력하고 싶을 때 이 글이 도움이 될 것 같습니다.

 

 

제가 겪었던 경험을 공유하려고 합니다.

 

 


 

시도 했던 방법

 

1. 프린터 공유

 프린터 속성에서 공유하는 방법. 프린터 공유를 검색하면 쉽게 찾을 수 있는 방법인데, 공유하는 PC가 켜져 있어야 동작하기 때문에 이 방법은 얼마 쓰지 않았습니다.

 

2. 시놀로지 NAS에 USB로 연결 (실패)

 제가 생각한 제일 이상적인 방법이 있으나 최종적으로 실패하였습니다. (이미 NAS는 사용중이고 연결만 하면 되는데...) 시놀로지 운영체제 DSM은 리눅스 기반이고 USB로 연결하면 인식은 됩니다. CUPS가 설치된 것을 보고 드라이버만 설치되면 가능할 거라고 판단했는데, 적합한 드라이버를 찾을 수가 없었습니다. 또 CUPS 관리자 화면을 설정에서 활성화 하더라도 소스파일은 포함시켜두지 않았더군요.

 

3. Raspberry Pi 활용

 결과적으로 이 방법으로 정착했습니다. 집에서 놀고 있는 Raspberry Pi를 활용하였습니다. CUPS를 설치하고 드라이버를 설치하고 라즈베리가 프린터 서버가 되는 형태입니다. (이럴바엔 네트워크 프린터를 구매하는 것이 좋다는 생각이 드네요)

 

 


 

작업 하기

 

1.  Raspberry Pi 준비, 초기 환경 설정

 이 글의 포인트는 네트워크 프린터로 만드는 것이기 때문에 라즈베리 초기 세팅부분은 항목만 나열하겠습니다.(구글을 통해 쉽게 정보를 얻을 수 있습니다)

 

  • 초기 비번 변경, hostname, timezone, 무선랜 설정(무선세팅이라면), 용량 확장, 업데이트

 

 

 

2. CUPS 설치 및 설정

 

  • CUPS 설치
# 설치
$ sudo apt install cups

# 그룹에 사용자 추가
$ sudo usermod -a -G lpadmin pi

 

  • CUPS 관리자 웹 접속 가능하도록 수정
# 설정 수정
sudo nano /etc/cups/cupsd.conf

# 접속 가능한 IP 대역 추가 (아래 코드 참고하여 해당 블럭에 추가)
Listen *:631
Allow 192.168.0.*


WebInterface Yes

 

아래 내용도 추가해줍니다

(설정은 버전과 구성을 하기 나름이기 때문에 각자 상황에 맞게 설정이 필요합니다.)


# Restrict access to the server...
<Location />
  Order allow,deny
  Allow 192.168.0.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow 192.168.0.*
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow 192.168.0.*
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow 192.168.0.*
</Location>

 

서비스 재시작

 

# 서비스 재시작
sudo service cups restart

 

 

3. 프린터 드라이버 설치

 

 여기서 이야기하는 드라이버는 CUPS에 SL-2027 프린터 드라이버를 설치(라고 표현하겠습니다.) 하는 과정입니다.

 

 이것이 가능하겠다. 라고 판단했던 글입니다.

www.reddit.com/r/linuxadmin/comments/cvt23c/print_via_rpi_cups_with_samsung_m2026_very_cheap/ 

 

Print via RPi CUPS with Samsung m2026 (very cheap printer)

Hi, There was another thread about this topic, but it's archived, so I can't update it. /u/electric_lute provided a useful reply, but I wanted...

www.reddit.com

 

 삼성에서 공식적으로 ARM 프로세스용, 리눅스 드라이버를 제공하지 않기 때문에 SpliX에서 배포하는 드라이버를 활용하였습니다.

 

 라즈베리파이에 모니터를 연결하거나 SSH 로 작업하면 됩니다.

# git 설치
$ sudo apt install git


# Install libscup2-dev
sudo apt install libcups2-dev

# splix 소스 clone
$ git clone https://gitlab.com/ScumCoder/splix.git



$ cd splix

# Compile Splix with uneccessary algorithm disabled (not needed and bugged for me)
$ sudo make DISABLE_JBIG=1

# Run install script, which will place all needed binaries into cups/filter etc...
$ sudo make install

 

4. CUPS 프린터 추가

 

CUPS가 설치 된 프린터 서버 아이피를 브라우저로 접속해봅니다. 라즈베리나 같은 망 대역에 있는 PC로 작업하시면 됩니다.

변경하지 않았다면 기본 포트는 631 이고 CUPS 설치 및 설정이 잘 되었다면 접속이 됩니다.

 

저의 경우는 위 설정대로 했을 때 https://192.168.0.20:631 이고 192.168.0.xx 대역에서 접속이 가능합니다.

 

CUPS 접속화면

 

상단 메뉴 중 Administration을 들어가면 프린터를 관리할 수 있습니다. Add Printer를 눌러 추가해줍니다.

 

프린터 추가

 

프린터 추가 - 프린터 선택

 

프린터 추가 - 이름과 설명 작성

 

추가 가능 프린터 목록

 

파일 선택을 누르고 컴파일 된 파일을 선택합니다. 라즈베리파이에서 컴파일 한 프린터 드라이버 파일을 다운받아서 추가해주었습니다.

(ARM 환경에서 컴파일된 드라이버를 추가해주는 작업입니다.)

 

이제 같은 네트워크상에 있는 노트북, 맥, PC, 스마트폰 등 다양한 기기에서 출력이 가능해집니다.

 

최근에 나온 SL-M2030 역시 유사 제품군이기 때문에 가능하지 않을까 생각합니다.

 

감사합니다. 

 

 

반응형

+ Recent posts