드디어 국내에 네스트 허브가 정식 출시 되었다

 

 

 

가격은 

네스트 미니 : 64,900

네스트 허브 : 115,000

 

두개를 동시에 구매 하면 35,980원 할인해서

143,920 원에 구매 가능하다.

 

구매 링크는 

 

https://store.google.com/kr/magazine/compare_nest_speakers_displays

 

 

'강좌 > IoT' 카테고리의 다른 글

구글 홈 - 네스트 미니, 네스트 허브 출시  (0) 2020.06.30
구글 홈 음성 명령으로 컴퓨터 켜기  (0) 2020.02.06

synobot 이 0.9 버전으로 업데이트 되었습니다.

다운로드 스테이션의 작업 제목에 특수 문자가 들어 가는 경우 메시지를 보내지 못하는 오류가 있어

해당 부분을 수정하였습니다.

 

https://hub.docker.com/r/acidpop/synobot/

 

Docker Hub

 

hub.docker.com

 

  1. 개그만스 2020.07.11 14:53

    synobot 0.9 설치하고 텔레그램으로 비밀번호 치라는 메세지는 오는데, 비밀번호 쳐도 로그인 성공했다는 메세지는 안오네요,,,
    포트번호도 다 확인했고, IP로 입력했고, 다 맞게 입력했는데 어디 부분이 문제인지 모르겠습니다, 도와주세요 ㅠ

Synology NAS 에 발급 받은 인증서를 라즈베리파이 nginx 에 적용하기

 

Synology NAS 도 가지고 있고 라즈베리파이도 가지고 있는 상태에서

 

라즈베리파이의 nginx 세팅에 인증서를 적용하고 싶다면 다음과 같은 방법으로 사용

 

1. Synology NAS 에서 인증서 내보내기

제어판 -> 보안 -> 인증서

해당 인증서 선택 후 마우스 우클릭 -> 인증서 내보내기

 

인증서 내보내기를 하면 압축파일을 다운로드 할 수 있다.

2. 라즈베리파이 접속 (nginx 가 설치 되어 있는 상태)

mkdir -p /home/pi/cert

/home/pi/cert 경로에 다운로드 받은 인증서 압축 파일 업로드

unzip _archive.zip

unzip 명령으로 압축 파일 해제

3. pem 파일 합치기

압축을 해제 하면 cert.pem, chain.pem, privkey.pem 파일이 보이는데

이 중 cert.pem 과 chain.pem 파일을 합쳐야 한다.

다음 명령으로 파일을 합치자.

cat cert.pem > fullchain.pem && echo -e "\n" >> fullchain.pem && cat chain.pem >> fullchain.pem

4. nginx 설정 변경하기

sudo vi /etc/nginx/sites-enabled/default

server 설정 부분 중 빨간 색 부분 확인

server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#


listen 443 ssl default_server;
listen [::]:443 ssl default_server;


# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php  to the list if you are using PHP

index index.html index.htm index.nginx-debian.html index.php;

server_name pi.acidpop.kr;

ssl_certificate /home/pi/cert/fullchain.pem
ssl_certificate_key /home/pi/cert/privkey.pem

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

 

5. 빨간색으로 표시 된 부분을 추가/수정 한 다음 설정을 다시 로딩하기

 

sudo /etc/init.d/nginx reload

 

 

2016년 3월 8일부터 제공 되었던 텔레그램 통합대기지수 알림 채널이 잠정적으로 중단 됩니다.

"라즈베리파이" 라는 소형 컴퓨터에서 서비스를 진행 하였었는데

중간 중간 SD 카드도 고장이 나서 교체를 진행 하면서 서비스를 제공 하였습니다.

현재 사용중인 라즈베리파이2 장비가 4년을 쉬지 않고 작동을 하다 보니 메모리 불량이 발생하였습니다.

SD 카드 교체 비용/라즈베리파이 교체 비용이 생각보다는 크기 때문에 당분간은 서비스 제공이 어렵습니다.

언제가 될 지는 모르겠지만 추후 라즈베리파이를 새로 구매 하게 되면 그때 다시 서비스를 제공 하도록 하겠습니다.

감사합니다.

  1. Darimee 2020.05.29 10:22

    엇...정말 유용했는데...

    제가 서버 제공하는데 도움 드리고 싶은데 후원계좌있으면 후원하고 싶습니다.

    • BlogIcon Acidpop acidpop 2020.05.29 12:41 신고

      안녕하세요
      후원 가능하시다면 텔레그램 채널에 후원 정보를 추가해두었습니다.

      정말 감사합니다 ^^

  2. 9033 2020.05.29 12:08

    aws 람다 같은 서버리스로 옮기는 것도 방법같습니다.

    • BlogIcon Acidpop acidpop 2020.05.29 12:42 신고

      예전에 AWS 를 한번 사용했다가 요금이 많이 청구 된 적이 있어서 AWS 는 손이 잘 안가더라구요

  3. ip.day.cat 2020.05.29 13:05

    헉.. 여태 잘 사용했는데 라즈베리가 이제 한계가 왔나보군요;;
    그간 감사했습니다 ㅎㅎ

  4. 2020.05.29 17:57

    비밀댓글입니다

  5. 2020.05.29 18:28

    너무 유용하게 사용했었는데 아쉽습니다.
    그동안 사용한 이용료라고 생각하고 후원계좌 통해서 작게나마 도움 드릴께요~

  6. 대기화이팅 2020.06.08 02:36

    ㅠㅠ 올해 초에 알아서 유용하게 미세먼지 상황을 받았는데 ..
    아쉽네요 ㅠ

 

https://hub.docker.com/r/acidpop/synobot/

 

Docker Hub

 

hub.docker.com

 

synobot 이 0.8 로 업데이트 되었습니다.

 

기존에 배포 하였던 0.5 버전에서 자잘한 버그 및 소소 한 기능들 몇가지 업데이트 완료.

시놀로지 NAS 를 사용하면서 24시간 사용이 필요치 않기에 

필요시마다 WOL 을 이용하여 부팅을 하고 있다.

구글 홈 미니와 Sonoff 를 연동해서 조명을 켜고 끄는데 컴퓨터도 켤 수 있지 않을까? 해서 생각을 해보니

다음과 같은 방법으로 사용이 가능하다.

1. 준비물

- 구글 홈 또는 구글 홈 미니 기기

- 라즈베리 파이 (Web 요청을 받으면 자신의 네트워크에서 WOL 매직 패킷을 전달하기 위함)

- WOL 이 작동 하는 컴퓨터

 

2. 설계

작동 방식 구성은 다음 처럼..

 - 구글 홈에게 컴퓨터 켜 라고 말하면 IFTTT 에서 구글 홈 명령을 해석하여 특정 URL 을 호출

 - 라즈베리파이 웹 서버에서 해당 요청을 받으면 WOL 매직 패킷 보내기

 

3. 방법

 3-1. 구글 홈 앱에서 루틴 설정 하기.

다음을 말하면 조건에 "컴퓨터 켜", "컴퓨터 켜 줘" 문장을 등록 한다.

필요 하다면 다른 문장을 추가 해도 좋다.

 

"Google 어시스턴트가 할 행동" 에는 IFTTT 가 알아 들어야 할 문장을 등록해야 하는데 영어만 지원 되기 때문에

작업 추가를 클릭 -> "my desktop on" 이라고 등록 한다.

 

한번 더 작업 추가를 눌러-> 인기 있는 작업을 누르고

가장 아래에 말하기 기능에 톱니 모양을 누른다.

 

"내 컴퓨터를 켭니다" 라고 등록한다. (문장을 각자 알아서 수정)

 

3-2. 라즈베리파이에 Web 요청 처리 만들기

라즈베리파이는 WOL 로 켤 컴퓨터와 같은 네트워크상에 존재 해야 한다.

그리고 ngnix 또는 apache 와 같이 WAS 가 설치되어 있고 php 가 연동이 되어 있는 상태여야 한다. (was 및 php 구성은 구글 검색으로 설치)

필자는 nginx 와 php 7.0 이 연동되어 작동 중이므로 해당 환경으로 설명한다.

 

/var/www/html 경로에 wol 이라는 디렉토리를 생성하여 wol.php 코드를 작성 한다.

전체 경로 (/var/www/html/wol/wol.php)

<?php
function wol($broadcast, $mac)
{
    if (strstr($mac, "-"))
    {
        $mac_array = explode('-', $mac);
    }
    else
    {
        $mac_array = explode(':', $mac);
    }
    $hwaddr = '';
 
    foreach($mac_array AS $octet)
    {
        $hwaddr .= chr(hexdec($octet));
    }
 
    // Create Magic Packet
 
    $packet = '';
    for ($i = 1; $i <= 6; $i++)
    {
        $packet .= chr(255);
    }
 
    for ($i = 1; $i <= 16; $i++)
    {
        $packet .= $hwaddr;
    }
 
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    if ($sock)
    {
        $options = socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, true);
 
        if ($options >=0) 
        {    
            $e = socket_sendto($sock, $packet, strlen($packet), 0, $broadcast, 7);
            socket_close($sock);
        }    
    }
}


$AUTH_KEY="";
$PC_TYPE="";

$broadcast_ip = "";
$mac_addr = "";


$WOL_KEY="RANDOMKEY";

if( isset($_GET['wolkey']) ){ $AUTH_KEY=$_GET['wolkey']; }

if( isset($_GET['wolpc']) ){
        $PC_TYPE=$_GET['wolpc'];
}
else{
        $res_data = ['result' => 'fail'];
        header('Content-type: application/json');
        echo json_encode($res_data);
        return;
}

if( strcmp($WOL_KEY, $AUTH_KEY) != 0 ) {
        $res_data = ['result' => 'fail'];
        header('Content-type: application/json');
        echo json_encode($res_data);
        return;
}

// PC Type is NAS or PC
if( strcmp($PC_TYPE, "NAS") == 0 ){
    $broadcast_ip = "192.168.0.2";
    $mac_addr = "00-11-22-33-44-55";
    $res_data = ['result' => 'success', 'pctype' => 'NAS'];
}else if( strcmp($PC_TYPE, "PC") == 0){
    $broadcast_ip = "192.168.0.3";
    $mac_addr = "AA-BB-CC-DD-EE-FF";
    $res_data = ['result' => 'success', 'pctype' => 'PC'];
}else{
        $res_data = ['result' => 'fail'];
        header('Content-type: application/json');
        echo json_encode($res_data);
        return;
}

wol($broadcast_ip, $mac_addr);


header('Content-type: application/json');
echo json_encode($res_data);
 
?>

 

위 코드 중$WOL_KEY 에 있는 값은 적당하게 긴 문자열로 만들어 준다. (WOL Url 에 최소한의 보안을 위함)

// PC Type is NAS or PC 주석 아래에 WOL 컴퓨터의 IP 와 MAC 주소 값을 입력해 준다.

필요한 컴퓨터가 많다면 $PC_TYPE 의 문자열과 else if 부분을 복사/붙여넣기 하여 추가 하면 된다.

 

php 가 작성이 완료 되었다면 라즈베리 파이에서 다음 명령으로 시험을 해본다.

curl "http://127.0.0.1/wol/wol.php?wolkey=RANDOMKEY&wolpc=NAS"

RANDOMKEY 와 NAS 는 각자 세팅에 맞게 변경 한다.

 

위 테스트로 WOL 이 작동 하면 이제 외부에서 url 호출만으로 WOL 을 사용 할수 있게 된다.

 

※ IFTTT 와 연동 해야 하므로 공유기를 사용 한다면 라즈베리파이의 WAS 포트를 포트 포워딩 해야 한다.

라즈베리파이의 WAS 포트는 80 이고 포트 포워딩은

외부 포트는 8080 , 내부 포트는 80으로 포트 포워딩을 설정 하였다면

WOL 작동 주소는 다음과 같이 된다.

http://공인IP:8080/wol/wol.php?wolkey=RANDOMKEY&wolpc=NAS

 

 


3-3. IFTTT 에서 구글 홈 문장을 분석하는 애플릿 만들기

IFTTT 에 접속하여 Explore 를 클릭

+ 버튼을 눌러 애플릿 생성으로 들어 간다.

 

+ This 를 클릭한다.

google 을 검색하여 Google Assistant 를 클릭

(Google Assistant 가 나오지 않거나 say a simple phrase 항목이 나오지 않는 다면 IFTTT 와 구글 계정 연동이 먼저 되어 있야 나오게 된다.)

 

Say a simple phrase 를 클릭

 

What do you want to say? 항목에 루틴에서 설정 하였던 "my desktop on" 을 입력

What do you want the Assistant to say in response? 항목에는 해당 애플릿 수행 후 구글 홈에서 말 할 TTS 문장을 입력한다. (TTS 재생이 필요 없다면 굳이 하지 않아도 되며 한국어는 지원하지 않는다.)

 

아래로 내려서 "Create trigger" 버튼을 클릭

 

 

+ That 을 클릭

webhook 을 검색하여 Webhooks 선택

Make a web request 선택

URL 항목에 라즈베리파이의 WOL URL 을 작성하고 Create Action 버튼을 눌러 애플릿 작성을 완료 한다.

 

 

구글 홈에서 "컴퓨터 켜" 라고 명령 하게 되면 다음과 같은 순서로 작동을 한다.

 

구글 홈 -> IFTTT -> 라즈베리 파이 PHP 호출 -> WOL 패킷 송신.

 

 

잘 되지 않는 경우 IFTTT 의 로그에서 구글 홈 명령이 전달이 되었는지, 라즈베리파이의 URL 은 정상적으로 호출 되는지 등을 확인 하면 된다.

'강좌 > IoT' 카테고리의 다른 글

구글 홈 - 네스트 미니, 네스트 허브 출시  (0) 2020.06.30
구글 홈 음성 명령으로 컴퓨터 켜기  (0) 2020.02.06

미디어 색인이 작동 안하는 경우 사용 하는 스크립트

 

MediaIndexScript.tgz
0.00MB

 

사용법

 

위 압축 파일을

/volume1/homes/acidpop/MediaScript

경로에 업로드 하여 압축 해제

root 권한으로 ./updateIndexVideo.sh 실행

 

출처 : https://m.blog.naver.com/lastingchild/220763255604

 

위 블로그에서 받은 스크립트 파일이 파일명에 '(작은 따옴표) 가 포함 되어 있는 경우 처리 하지 못하는 부분 수정

 

하드웨어 : 라즈베리파이 3+

OS : Raspbian 10 (buster)

 

1. 의존성 라이브러리 설치

sudo apt-get update

sudo apt install -y libffi-dev libbz2-dev liblzma-dev \
    libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev \
    libreadline-dev libssl-dev tk-dev build-essential \
    libncursesw5-dev libc6-dev openssl git

2. python 3.8 설치

cd /home/pi

mkdir pkg_install

cd pkg_install

mkdir pkg_python

cd pkg_python

wget "https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz"

tar xvfz ./Python-3.8.0.tgz

cd Python-3.8.0

./configure

make -j 6

sudo make install

 

3. Python 3.8 pip 설치

cd /home/pi/pkg_install/pkg_python

wget https://bootstrap.pypa.io/get-pip.py

sudo python3 ./get-pip.py



4. Chromium Driver 설치

cd /home/pi/pkg_install

mkdir pkg_chromium

cd pkg_chromium

wget "http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-codecs-ffmpeg_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb"

wget "http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-codecs-ffmpeg-extra_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb"

wget "http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-browser_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb"

wget "http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-chromedriver_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb"

 

sudo dpkg -i ./chromium-codecs-ffmpeg_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb

sudo dpkg -i ./chromium-codecs-ffmpeg-extra_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb

sudo dpkg -i ./chromium-browser_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb

sudo dpkg -i chromium-chromedriver_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb

 

 

위 명령 중 sudo dpkg 수행시 다음과 같은 오류가 발생 한다면?

sudo dpkg -i ./chromium-browser_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb 
(Reading database ... 45515 files and directories currently installed.)
Preparing to unpack .../chromium-browser_75.0.3770.90-0ubuntu0.18.10.1_armhf.deb ...
Unpacking chromium-browser (75.0.3770.90-0ubuntu0.18.10.1) over (75.0.3770.90-0ubuntu0.18.10.1) ...
dpkg: dependency problems prevent configuration of chromium-browser:
 chromium-browser depends on libatk-bridge2.0-0 (>= 2.5.3); however:
  Package libatk-bridge2.0-0 is not installed.
 chromium-browser depends on libatk1.0-0 (>= 2.2.0); however:
  Package libatk1.0-0 is not installed.
 chromium-browser depends on libatspi2.0-0 (>= 2.9.90); however:
  Package libatspi2.0-0 is not installed.
 chromium-browser depends on libcairo2 (>= 1.6.0); however:
  Package libcairo2 is not installed.
 chromium-browser depends on libcups2 (>= 1.4.0); however:
  Package libcups2 is not installed.
 chromium-browser depends on libgdk-pixbuf2.0-0 (>= 2.22.0); however:
  Package libgdk-pixbuf2.0-0 is not installed.
 chromium-browser depends on libgtk-3-0 (>= 3.9.10); however:
  Package libgtk-3-0 is not installed.
 chromium-browser depends on libnspr4 (>= 2:4.9-2~); however:
  Package libnspr4 is not installed.
 chromium-browser depends on libnss3 (>= 2:3.22); however:
  Package libnss3 is not installed.
 chromium-browser depends on libpango-1.0-0 (>= 1.14.0); however:
  Package libpango-1.0-0 is not installed.
 chromium-browser depends on libxcursor1 (>> 1.1.2); however:
  Package libxcursor1 is not installed.
 chromium-browser depends on xdg-utils; however:
  Package xdg-utils is not installed.

dpkg: error processing package chromium-browser (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.62) ...
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
 chromium-browser

sudo apt-get -f install

위 명령으로 의존성 오류난 라이브러리를 모두 설치 하기

 

+ Recent posts