반응형

 

 

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

 

NAS의 속도및 쾌적한 사용을 위해 2Bay NAS중에 하나는 SSD, 하나는 HDD를 사용하고 있습니다. 2Bay이기에 Raid로 묶지않고 독립적인 볼륨으로 각각 사용중에 있습니다. 이렇게 독립 볼륨임에도 불구하고 SSD를 접근하게되면 HDD도 Wake-up하여 동작하게 되어 HDD Sleep 모드에 진입하지 않는 현상을 보였습니다. 그래서 이를 해결하기 위한 방법을 찾아보다 큐냅 포럼에서 다음과 같은 방법을 찾아서 적용해보니 현재 상태(펌웨어 5.0.0.1870)에서 문제없이 동작하고 있어서 관련 설정 공유하기 위해 포스팅합니다.

조건

저는 2Bay이기에 두개다 독립볼륨인 상태이지만, 4Bay 이상에서는 SSD만 독립볼륨, HDD는 Raid등으로 묶여있어도 활용 가능합니다.

*** 데이터 손실의 위험이 있으니 반드시 백업후 진행하시기 바랍니다 ***
저의 경우는 문제가 없었으나 혹시 다른 문제를 발생시킬 수 있습니다.
  • 독립 볼륨의 SSD(시스템 디스크) - 어플리케이션 및 시스템 모두 SSD상에 위치
  • Raid 혹은 다른 볼륨으로 구성되어있는 HDD

현재 드라이브 확인

현재 SSD와 HDD가 어떤 파티션에 할당되어있는지 확인이 필요합니다.

SSH로 QNAP Nas에 접근하여 다음과 같은 명령어를 입력해 줍니다.

parted -l

현재 NAS에 사용중인 SSD및 HDD정보와 디스크 정보가 기록되어있습니다.

저의 경우에는 다음과 같이 할당되어있는것을 알수 있습니다

  • /dev/sdb : SSD 1TB
  • /dev/sda: HDD 4TB

Internal Raid1 Disconnect

SSD및 HDD가 동시에 Wake-Up이 되는 이유중 하나는 내부의 파티션들이 Raid1으로 구성되어 있기 때문입니다. 그래서 위 포럼의 아이디어는 평소에는 Raid1구성연결을 끊어두고 있다가, 하루에 1번씩 스케쥴링하여 복구시켜주고 다시 끊어주고를 반복하는 형태로 진행됩니다.

Internal Raid 1 볼륨 리스트

  • /dev/md9
  • /dev/md13

두 볼륨의 구성을 확인하려면 mdadm을 통해 확인가능합니다

mdadm -D /dev/md9 
mdadm -D /dev/md13

위의 명령어를 통해 확인해보면 다음과 같이 SSD, HDD의 1번파티션들이 묶여있는 것을 알 수 니다.

다음 과 같은 스크립트를 통해 md9, md13에 연결되어있는 HDD의 Parition을 제거하여 줍니다.

disconnect_internal_raid.sh

#!/bin/bash 
echo "Disconnect md9" 
mdadm /dev/md9 --fail /dev/sda1 
echo "Disconnect md13" 
mdadm /dev/md13 --fail /dev/sda4

 

이제 HDD만 독립적으로 Sleep에 들어갈 수 있도록 파티션을 수정하였습니다. 다음과 같은 명령어를 통해 현재 HDD상태를 확인할 수있습니다. hddparm -C /dev/sda

 

주기적으로 Raid1의 복구를 위해 다음과 같이 다시 연결해주는 스크립트를 추가적으로 작성합니다.

rebuild_internal_raid.sh

#!/bin/bash 
echo "Re-adding md9" 
mdadm /dev/md9 --re-add /dev/sda1 
echo "Re-adding md13" 
mdadm /dev/md13 --re-add /dev/sda4

 

위의 스크립트를 통해 Disconnect된 Internal_raid1의 정보를 복구할 수있습니다. 이제 Crontab에 위에서 작성한 스크립트가 정기적으로 수행될 수있도록 추가해 줍니다

vim /etc/config/crontab

저는 4시에 Rebuild 4시 15분에 Disconnect되도록 스케쥴 하였습니다.

 

SWAP Partition 변경

HDD 상에 존재하는 Swap Partion을 SSD에만 위치하게 함으로써 시스템 접근시 HDD사용이 안되도록 하는 방법이라고 생각하시면 됩니다.

cat /proc/swaps 명령어를 통해 현재의 SWAP영역을 확인할 수있습니다.

다음 명령어를 통해 Home 위치에 512MB SWAP을 생성해 줍니다.

dd if=/dev/zero of=/share/homes/admin/swapfile bs=1024 count=524288

그리고 다음 스크립트를 통해 Swap 파일을 새로 생성한 영역으로 변경하여 줍니다. 그리고 부팅시 실행될 수있도록 autorun.sh상에 반영하여 줍니다.

move_swap_to_file.sh

#!/bin/bash 
echo "Turning SWAP off" 
swapoff -a 
echo "Initializing file swap" 
mkswap /share/homes/admin/swapfile 
swapon /share/homes/admin/swapfile

 

위와같이 세팅을 진행하면, 설정→하드웨어→디스크대기모드 시간 세팅을 진행하면, 해당시간이후 HDD만 Sleep으로 빠지는 것을 확인 할 수 있습니다.

 

반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[QNAP] Rclone VFS Mount  (0) 2021.02.25
[QNAP] autorun.sh 설정 방법  (0) 2021.02.25
[QNAP] Komga 설치  (0) 2021.01.27
[QNAP][HA][EW11] EW11 자동 재부팅(Restart) 스크립트  (0) 2020.11.30
[QANP] 부팅시 Autorun QPKG 생성  (0) 2020.11.30
반응형

 

 

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

 

클리앙 아이고성 님의 글을 따라 QNAP에 VFS Rclone Mount 설정을 정리 업로드 합니다.

[수정]rclone vfs 마운트가 더 좋아졌네요. : 클리앙
(수정 내용) vfs-cache-mode full에서도 --vfs-read-chunk-size옵션과 --vfs-read-chunk-size-limit옵션이 유의미하다고 합니다 공식문서를 읽어보실 분들은 여기로. https://rclone.org/commands/rclone_mount/#vfs-virtual-file-system rclone 버전 1.53.0 이상에서 vfs cache 부분에 개선이 이뤄졌고, 실제 성능도 더 좋아졌다고 하네요. 저는 마운트 옵션을 바꾼 뒤, 이전보다 영상파일 로딩시간이 많이 줄어들었습니다. 아래는 해당 옵션 적용방법입니다. 먼저 rclone 버전을 1.53.0 이상으로 업데이트 해주시고, (현재 최신 버전은 1.53.1) 캐시 폴더로 사용할 공간을 20~30기가 이상 확보해주세요.
https://www.clien.net/service/board/cm_nas/15415864?po=0&sk=title&sv=vfs&groupCd=&pt=0

필요사항

  • Rclone ( Qnap Club )

 

설치 및 실행

원하는 위치에 다음과 같은 Script를 작성합니다. Rclone의 실행파일을 절대경로로 넣은 이유는, Autorun script수행시 일부 Path가 접근되지 않는 경우가있어서 입니다.

 

CONFIG

다음 명령어를 통해서 Rclone의 연결 설정을 추가해 줍니다. 해당 연결에는 Google Drive, Onedrive등 본인이 연결하고자하는 Drive와 맞는 설정을 추가 진행하면 됩니다. Rclone의 기본 CONFIG 파일이 /root 폴더아래 존재하면 재부팅시마다 초기화가 되기때문에 /share/my/Rclone 폴더를 별도로 생성하여 해당위치에 저장하도록 하였습니다.

#!/bin/bash 
/share/CACHEDEV1_DATA/.qpkg/RClone/rclone --config /share/my/Rclone/rclone.conf config

Mount

위에서 설정한 Drive(아래에서는 gdrive) 를 이제 Mount원하는 위치(/share/CACHEDEV1_DATA/gdrive )에 Mount 하기위한 옵션과 Configuration입니다. 옵션들의 상세 설명은 다음의 링크에서 확인하실 수 있습니다.

간략히 볼 중요 옵션은 다음 정도라고 생각합니다.

  • —cache-dir: Cache 파일의 위치
  • —vfs-cache-max-size: Cache 파일의 사이즈 ( 풀링타임마다 모니터링 하기에 이보다 더 커질 수 있음 )
Documentation
First, you'll need to configure rclone. As the object storage systems have quite complicated authentication these are kept in a config file. (See the --config entry for how to find the config file and choose its location.)
https://rclone.org/docs/
rclone mount
Mount the remote as file system on a mountpoint. rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of Rclone's cloud storage systems as a file system with FUSE. First set up your remote using rclone config. Check it works with rclone ls etc.
https://rclone.org/commands/rclone_mount/

 

#!/bin/bash 
/share/CACHEDEV1_DATA/.qpkg/RClone/rclone --config /share/my/Rclone/rclone.conf \
mount gdrive: /share/CACHEDEV1_DATA/gdrive \
--daemon \
--allow-other \
--allow-non-empty \
--fast-list \
--drive-skip-gdocs \
--poll-interval=15s \
--vfs-cache-mode full \
--vfs-write-back 5s \
--bwlimit-file 16M \
--buffer-size=16M \
--vfs-read-chunk-size=32M \
--vfs-read-chunk-size-limit 2048M \
--vfs-cache-max-size 150G \
--vfs-cache-max-age 336h \
--vfs-read-ahead 32M \
--dir-cache-time=1000h \
--cache-dir=/share/CACHEDEV2_DATA/gcache \
--timeout 1h \
--log-level ERROR \
--log-file=/share/log/rclone.log \
--umask 000

 

부팅시 자동 실행

앞서 포스팅한 autorun.sh(https://proactive.tistory.com/100) 가 적용되어있다면, 다음의 스크립트를 autorun/script 폴더에 넣어주시면 됩니다.

012-vfs_mount.sh

#!/bin/bash 
export LANG=en_US.UTF-8 
pushd /share/my/Rclone 
./rclone_vfs_mount.sh 
popd

 

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

이전에 autorun qpkg를 생성하여 부팅시 실행시켜주는 방법을 포스팅(https://proactive.tistory.com/97) 했었는데, QNAP에는 부팅시 스크립트를 실행해주는 autorun.sh 파일이 존재합니다. 다른 QPKG들과의 의존성 때문에 별도의 autorun package를 만들어 수행하는편을 선호하지만, 기본 형태의 autorun.sh을 편집 수행에 도움을 주는 Script를 찾아 관련내용 포스팅 합니다.

필요사항

  • GIT ( Qnap Club )

설치 및 실행

매우 간단합니다. 다음 Github 링크에 존재하는 Script를 Clone하여, 실행해 주시면 됩니다.

OneCDOnly/create-autorun
This is a run-once BASH script to create an autorun environment on your QNAP NAS. This can be used to automatically execute your own scripts when the NAS boots-up. This installer script writes an autorun.sh processor into your default volume, below the .system directory.
https://github.com/OneCDOnly/create-autorun
git clone https://github.com/OneCDOnly/create-autorun.git cd create-autorun ./create-autorun.sh

실행 및 사용방법

위의 스크립트를 수행하면, autorun.sh에 새로운 코드가 추가가 됩니다. 그리고 설정→전원에 가서 시작하는 동안 사용자가 지정한 프로세스 실행을 키고 저장을 해 줍니다.

그리고 다음의 생성된 경로에 실행하고자 하는 shell script를 넣어주면 부팅시 순차적으로 수행이 됩니다. /share/CACHEDEV1_DATA/.system/autorun/scripts

010-script.sh 011-script2.sh

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

만화책을 라이브러리 스트리밍형식으로 보기위한 방법으로 여러 방법들이있지만 그중 Komga 서버가 QNAP에서 QPKG형태로 설치 지원을하여 써보기로 하고 관련 설치 및 설정사항을 정리해 보고자 본 포스팅을 작성합닌다.

필요사항

  • Komga ( Qnap Club )

설치 및 실행

QJDK8 이상의 버전이 Install 되어있어야 Komga가 설치가능합니다. 순서를 지켜 설치 부탁드립니다. Kmoga도 qpkg형태의 설치를 지원하기 때문에 간단히 설치가 가능합니다. 설치 완료이후 다음 주소로 접근하면 Komga서버의 관리페이지에 접근가능합니다. http://<QNAP 내부IP>:10102/

그리고 E-mail과 Password로 User등록을 수행하면 됩니다. 그럼 다음과 같은 welcome page를 만날수 있습니다.

QPKG스크립트를 보면 단순히 JAR를 수행시켜주는 역할만 들어있습니다 최신 Release버전을 업데이트 하고싶은데 QPKG업이 느릴경우 .qpkg/komga/komga.jar 파일을 최신화 하고 서버 재시작 하면 됩니다.

외부접근을 위해서는 공유기에서 10102포트의 포트포워딩 설정이 필요합니다 포트 변경을하고싶으면 .qpkg/komga/komga.sh 내의 포트번호를 변경해야합니다.

서버 설정 에서는 Library와 User추가가 가능합니다. Libraries 옆에 + 버튼을 누르고 NAS내부의 라이브러리 경로를 추가하여 줍니다.

라이브러리 파일 내의 이미지들이 스캔이 완료되면 이제 접근 및 스트리밍이 가능합니다. 스캔에는 약간 시간이소요되므로 스캔완료후에 Read가능합니다

Plex와 같은 라이브러리 들이 다음과 같이 나타나고 각 시리즈들을 누르면 웹리딩 모드로 접근 가능하여 읽을 수 있습니다. Reader모드에는 설정상에서, 읽기방향등이 설정 가능하니 라이브러리에 맞게 잘 세팅하여 사용하시면 될 것 같습니다.

안드로이드 리더

안드로이드에서 서버 접근을위해서는 다음의 APK를 설정합니다

Tachiyomi
Free and open source manga reader for Android Cloud Download icon Download Book Open Variant icon User Guide Automatically keep track of your manga with MyAnimeList, AniList, Kitsu, Shikimori, and Bangumi Online and offline reading from sources like MangaDex, MangaKakalot, and hundreds more A configurable reader with multiple reading modes, custom color filters, and other settings
https://tachiyomi.org/

확장기능에서 Komga를 찾아 설치 후 서버 주소와 아이디 비밀번호를 설정해 줍니다. 설정이후 앱을 재부팅 해야 제대로 접근이 가능합니다.

반응형
반응형

 

 

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

 

 

[해외] HF 최소형 ELFINEW11ELFINEW110 무선 네트워킹 장치 MODBUS TPC IP 기능 RJ45 RS485WIFI 직렬 서버, EW11-0 Single Server, Other

월패드에 EW11을 넣어두었는데 동작의 안정화를 위해 가끔 Restart를 하고싶을 때가 있다. 그래서 Telnet을 통한 주기적으로 Restart해줄 수 있는 Script를 작성하여 활용해본다.

필요사항

  • QPython3 ( Qnap Club )
  • EW11

 

EW11 설정

우선 EW11이 Telenet으로 접근가능하도록 System Setting에서 Telnet을 On하고 Port를 세팅해준다(현재 2323)

실행

그리고 다음과 같은 Script를 작성하여 Telnet상에서 Restart Command를 전송할 수 있도록 Setting 하여 준다. 아래 스크립트상에서 host, port, id, pw모두 본인이 ew11접근을 위해 사용하는 정보로 변경하면된다. 이렇게 작성한 스크립트는 crontab등에 스케줄로 추가하여 주기적으로 초기화가 이루어질 수 있도록 하면 됩니다.

#!/usr/bin/env python3 
from telnetlib import Telnet 
host = "192.168.1.153" 
port = 2323 
id = '<id>' 
wd = '<pw>' 
with Telnet(host, port) as tn: 
  tn.read_until(b"login:") 
  tn.write(id.encode('ascii') + b"\n") 
  if wd: 
    tn.read_until(b"password:") 
    tn.write(wd.encode('ascii') + b"\n") 
  tn.write(b"Restart\n")
  tn.read_until(b"Restart..")

 

[해외] HF 최소형 ELFINEW11ELFINEW110 무선 네트워킹 장치 MODBUS TPC IP 기능 RJ45 RS485WIFI 직렬 서버, EW11-0 Single Server, Other

 

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

"재부팅이 되고 특정 프로세스가 자동으로 시작되면 좋겠다" 라는 생각을 기본적으로 많이들 하실거라고 생각합니다. QNAP에서도 autorun.sh를 기본적으로 사용할 수 있지만, 일부 명령어들은 QPKG실행 디펜던시 때문인지는 몰라도 실행이... 안되는 현상을 보이고있었습니다. 그래서 사용가능한 또다른 방법으로 Autorun QPKG를 만들어 APP중의 하나로 제일 마지막에 실행 하도록 하는 방법입니다.

필요사항

  • SSH

설정방법

기본적으로 ssh를 통한 접근을 다 하신다는 가정하에 다음과 같은 스크립트를 특정 폴더에 넣어 줍니다.여기서 실행/멈추고 싶은 명령어들을 변경하여 기입해 주시면됩니다.

#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="MyAutorun"

case "$1" in
  start)
        ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
        if [ "$ENABLED" != "TRUE" ]; then
                /bin/echo "$QPKG_NAME is disabled."
                exit 1
        fi
	# 실행하고자 하는 명령어 
        cd /share/my/HA/sds_wallpad/sds_wallpad
        ./run_standalone.sh &

        ;;

  stop)
	# 실행하였던 명령어
        PID=`ps -eaf | grep run_standalone.sh | grep -v grep | awk '{print $1}'`
        if [[ "" !=  "$PID" ]]; then
           echo "killing $PID"
           kill -9 $PID
        fi
        PID=`ps -eaf | grep sds_wallpad.py | grep -v grep | awk '{print $1}'`
        if [[ "" !=  "$PID" ]]; then
           echo "killing $PID"
           kill -9 $PID
        fi
        ;;

  restart)
        $0 stop
        $0 start
        ;;

  *)
        /bin/echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0

이렇게 생성된 스크립트에는 실행 권한을 주시고

chmod +x myautorun.sh

"/etc/config/qpkg.conf" 파일의 제일 마지막 줄에 다음과 같은 구문을 추가해 주시면됩니다. 여기서 젤 중요한 부분은 Shell 부분에 위에서 작성한 스크립트 경로를 넣어주시면 됩니다.

/etc/config/qpkg.conf 젤 마지막에 다음 추가

[MyAutorun]
Status = complete
Name = MyAutorun
Version = 1.0.0
Author = moggging
QPKG_File = None
Date = 2020-11-26
Shell = /share/my/myautorun/myautorun.sh
Install_Path = /share/my/myautorun
RC_Number = 101
WebUI = null
Display_Name = MyAutorun
Enable = TRUE

위와같이 수정후 재부팅 진행하면 다음과 같이 App center에서 MyAutorun QPKG가 생성되어 실행 및 정지 가능합니다. 맨뒤에 두었으므로 부팅 순서도 젤 뒤가되어 디펜던시 문제도 없을 것이라 생각됩니다.

반응형
반응형

 

 

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

 

광군절 구매 아이템중의 하나인 TUYA Zigbee 모터입니다. 다음 링크 제품을 구매하여 사용하였습니다.

US $42.89 34% OFF|Tuya 스마트 지그비 전기 커튼 모터 자동 전동 커튼 상태 트랙 타이밍 APP 원격 제어 Alexa Google 홈|홈 자동화 모듈| - AliExpress
Tuya 스마트 지그비 전기 커튼 모터 자동 전동 커튼 상태 트랙 타이밍 APP 원격 제어 Alexa Google 홈,중국을 포함한 전 세계의 판매자들에게서 구매하세요. 무료 배송, 한정 세일 타임, 간편한 반품과 구매자 보호 기능을 누리세요! ✓ 전세계 무료 배송! ✓ 제한된 시간 세일 ✓ 진정한 귀환
https://ko.aliexpress.com/item/4000739390813.html?spm=a2g0s.9042311.0.0.3fb04c4dHilOgz

 

거실과 안방 암막커튼용으로 2개의 모터를 구매하였고, 레일은 마마바에서 가변 전동커튼 레일을 주문하였습니다.

 
https://smartstore.naver.com/mamaba01/products/5152098821

 

 

필요사항

  • 레일 + 모터

설치 및 실행

zigbee2mqtt설정

zigbee2mqtt의 data폴더에 가면 configuration.yaml이 있는데 다음과 같이 설정하시면 됩니다.

configuration에 대한 상세설명은 공식페이지(https://www.zigbee2mqtt.io/information/configuration.html) 참고바랍니다.

 

  • homeassistant: HA에서 MQTT discovery에 발견되게 할것인지를 설정합니다
  • permit_join: 새로운 기기 등록이 가능하게 할건지 확인합니다. (커튼 등록 이후에는 false로 변경)
  • mqtt: server: mosquitto 서버의 접속 방법에 대한 IP (ID/PW)등을 설정하면 됩니다.
  • serial: cc2531이 설치된 포트로 설정하고 disable_led는 LED를 끄기위해 활용합니다
  • devices: devices.yaml 별도로 devices.yaml파일로 관리하기 위하여 위와같이 추가했습니다.
  • advanced: channel: zigbee통신의 채널 설정이가능합니다. wifi와 겹치지 않게 세팅하였습니다.
# Home Assistant integration (MQTT discovery)
homeassistant: true

# allow new devices to join
permit_join: true

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/ttyACM0
  disable_led: true

devices: devices.yaml
gropus: groups.yaml

advanced:
  channel: 20

zigbee2mqtt에 TS0601 추가

구매한 모터의 경우 뒤에 리셋버튼을 통해 연결을 제어가능하고 다음과 같이 동작합니다.

  • 3번 연달아 누른후 꾹~ (LED 깜빡일때 까지) 누르면 - 네트워크 초기화 를 진행하고
  • 4번을 누르면 Zigbee pairing을 시도합니다.

 

 

 

--Updated 2021.03.30---
제가 갖고 있는 모델 기준으로는 최신 버전에서 자동으로 curtain기기로 등록이되어, 아래의 추가 Set-up을 진행할 필요가 없어졌습니다. 혹시 안되시는 분들을 위해 기존 포스팅은 남겨 두겠습니다
-----------------------------

 

 

 

zigbee2mqtt가 동작중인 상태에서 버튼을 4번 누르면 paring이 진행되고 device에 추가가 되긴 하였습니다. 하지만 Zigbee model이 TS0601로 잡히고 지원하지 않는 모델이라는 메세지가 발생했습니다. ( Unsupported )

info  2020-11-19 13:54:15: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"0x5c0272fffec3d107"},"type":"device_connected"}'
info  2020-11-19 13:54:15: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"0x5c0272fffec3d107"},"type":"pairing"}'
info  2020-11-19 13:54:15: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"0x5c0272fffec3d107"},"type":"device_announced"}'
info  2020-11-19 13:54:16: Successfully interviewed '0x5c0272fffec3d107', device has successfully been paired
warn  2020-11-19 13:54:16: Device '0x5c0272fffec3d107' with Zigbee model 'TS0601' is NOT supported, please follow https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
info  2020-11-19 13:54:16: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"friendly_name":"0x5c0272fffec3d107","supported":false},"type":"pairing"}'
warn  2020-11-19 13:54:20: Received message from unsupported device with Zigbee model 'TS0601'
warn  2020-11-19 13:54:20: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.
warn  2020-11-19 13:54:25: Received message from unsupported device with Zigbee model 'TS0601'
warn  2020-11-19 13:54:25: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.
info  2020-11-19 13:54:30: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'offline'
info  2020-11-19 13:54:30: Disconnecting from MQTT server
info  2020-11-19 13:54:30: zigbee-herdsman stopped

 

devices.yaml

앞서 발견된 device들의 이름을 수정하여 추후 설정이 편하도록 해 줍니다. configuration.yaml과 같은 폴더 내에 위치한 다음 파일을 열어 friendly_name을 수정해 주시면됩니다.

Devices.js 수정

container-station에서 zigbee2mqtt 도커를 선택하면 단말(console) 클릭후 /bin/sh를 입력하여 docker shell을 실행해 줍니다.

 

 

열린 shell에서 다음 링크에 있는 파일을 열어줍니다.

cd node_modules/zigbee-herdsman-converters/
vi devices.js

 

model: 'TS0601_curtain' 부분을 찾습니다. 현재 기준으로 1700라인 근처에 있습니다.

--------------------------------------------------- Update 20.12.21-----------------------------------------------------------

아래 가이드에서는 zigbeeModel에 TS0601자체를 추가하였지만, 그렇지 않고 fingerprint에 모터의 manufacutrerName을 등록하시면
됩니다.
모터의 manufacutrerName은 zigbee2mqtt 의 data가 저장되어 있는 폴더에서 database.db 파일을 참고하시면 확인 할 수 있습니다.

data/database.db 파일

 

fingerprint추가

 

더보기

 

--------------------------------------------------- Previous ---------------------------------------------------------------------

 

여기에 zigbeeModel에 TS0601을 추가해서 저장해 주시면됩니다.

 

--------------------------------------------------- Previous ---------------------------------------------------------------------


 

이후 zigbee2mqtt를 재시작 해주시면 서비스 등록과 discovery가 되어 HA상의 구성요소에 추가된 것을 확인할 수 있습니다.

 

 

 

커튼 열림 닫힘 상태 바꾸기

상태 확인을 해보니 열림상태일때 → 닫힘 / 닫힘상태일때 → 열림으로 표기되고 있어서 해당 부분 수정을위해 다음과 같은 작업을 수행하였습니다.

통합구성요소 →MQTT →설정에서 다음과같은 페이로드를 날려줍니다.

topic: zigbee2mqtt/curtain/set
{
    "options":{
        "reverse_direction": "true"
    }
}

(이과정은 필요한지 잘 모르겠으나...) 그리고 devices.yaml에 invert_cover: true 를 추가하였습니다.

 

그리고 나니 상태가 변경이되어 제대로 출력되는것을 확인할 수있었습니다.

 

이후 구글홈과 연동하여 60%닫아줘~ 열어줘 ~ 닫아줘 등 모든 명령어가 잘 동작하는것을 확인할 수 있었습니다.

 

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

이번에 광군절에 구매한 Tuya zigbee motor와 QNAP에서 구동중인 HA와 연동하기위해선, Zigbee2mqtt 설치가 필요합니다. zigbee용 usb는 역시 마찬가지로 aliexpress에서 cc2531을 구매하였습니다.

US $10.65 |Smartrf04eb cc1110 cc2530 다운로더 cc2531 무선 지그비 스니퍼 베어 보드 블루투스 4.0 동글 캡처 패킷 모듈|반도체 집적회로| - AliExpress
Smartrf04eb cc1110 cc2530 다운로더 cc2531 무선 지그비 스니퍼 베어 보드 블루투스 4.0 동글 캡처 패킷 모듈,중국을 포함한 전 세계의 판매자들에게서 구매하세요. 무료 배송, 한정 세일 타임, 간편한 반품과 구매자 보호 기능을 누리세요! ✓ 전세계 무료 배송! ✓ 제한된 시간 세일 ✓ 진정한 귀환
https://ko.aliexpress.com/item/4000179393045.html?spm=a2g0s.9042311.0.0.3fb04c4dArzZr6

cc2531의 flashing은 간단하게 다음 링크의 가이드를 따라하시면 진행 할 수있습니다.

Flashing the CC2531 USB stick
The firmware can be flashed with multiple devices. The easiest but most expensive option is with the CC Debugger from Texas Instruments, which is described on this page. However, you can also use a Raspberry Pi or a MCU like the Arduino Uno or the cheap ESP8266 with four dupont cables and optionally a downloader cable.
https://www.zigbee2mqtt.io/information/flashing_the_cc2531.html

이제 이런 USB Stick과 MQTT 브로커를 연결해주는 역할을 하는 zigbee2mqtt를 설치하기위해 QNAP의 container station을 통한 설치를 진행하면 됩니다.

필요사항

  • Container Station
  • Zigbee USB(cc2531)

설치 및 실행

USB 연결

Zigbee USB를 QNAP에 꽂고서 SSH상에서 다음과 같은 명령어를 통해서 제대로 인식이 되었는지 확인 가능합니다

lsusb를 하면 Texas Instruments, Inc가 보이는지 확인해 봅니다.

Docker 설치

Container Station이 설치되어있는 상태에서 다음과 같은 script를 통해 설치하시면 됩니다. 수정해주셔야 하는 포인트는

  • -v <NASPATH>:/app/data : zigbee2mqtt의 설정 파일들을 담는 폴더 경로 지정해주시면됩니다.
  • —name: Docker이름입니다.
  • —network: qnapclub의 mosquitto를 사용하시면 그대로 사용하시면 됩니다.
#!/bin/bash
#source /share/my/env.sh
QPKG_NAME=container-station
QPKG_DIR=$(/bin/sed -nr ":s /^\[$QPKG_NAME\]/ b o; n; b s; :o n; /^\[/ q; /^Install_Path[ ]*=/ {s/.*=[ ]*// p; q;} b o;" "/etc/config/qpkg.conf")
export PATH=$QPKG_DIR/bin:$PATH

if [ "$#" -gt 0 ]; then
  if [ "$1" == "restart" ]; then
    docker stop zigbee2mqtt
    docker start zigbee2mqtt
  fi
else
  docker run \
    -d --name zigbee2mqtt \
    -v /share/my/HA/zigbee2mqtt/data:/app/data \
    --device=/dev/ttyACM0 \
    --privileged=true \
    --network host \
    koenkk/zigbee2mqtt:latest
fi

위와같은 script 파일을 임의의 경로에 만드신 후 실행하시면 설치 가능합니다.

chmod +x zigbee2mqtt.sh
#Docker install
./zigbee2mqtt.sh

#Docker restart
./zigbee2mqtt.sh restart

설정

위에서 설정한 app/data폴더에 가면 configuration.yaml파일을 찾을 수 있습니다. 여기서 설정 변경작업을 하시면 됩니다.

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

필요사항

  • Container-Station
  • SSH

설치

Container Station에서 Docker형태로 Nginx Proxy Manager를 설치하는 방법입니다. 별도 DB설치가 필요없는 다음 이미지를 이용하여 설치할 예정입니다.

jlesage/docker-nginx-proxy-manager
This is a Docker container for Nginx Proxy Manager. Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. NOTE: The Docker command provided in this quick start is given as an example and parameters should be adjusted to your need.
https://github.com/jlesage/docker-nginx-proxy-manager

우선 8080, 8181, 4443 포트가 QNAP에서 사용중이면 안됩니다. 저는 Web서비스랑 포트가 겹쳐서 서비스 포트를 변경하였습니다. 아니면 별도로 도커 포트 매핑을 하시면 됩니다.

이후 작업은 SSH로 접속하여 진행할 예정입니다.

SSH로 접속하여 /config 폴더로 사용할 경로를 하나 만들어줍니다. 저의경우 /share/my/nginx-proxy-manager 폴더를 사용 할 예정입니다. 그리고 다음과 같은 스크립트로 수행하시면 설치 작업이 수행됩니다.(경로는 본인에 맞게 변경 바랍니다)

#!/bin/bash

export PATH=/share/CACHEDEV1_DATA/.qpkg/container-station/bin:$PATH
mycmd="docker run -d --name nginx-proxy-manager \
-v /share/my/nginx-proxy-manager:/config \
--restart "on-failure:10" \
-p 8181:8181 \
-p 8080:8080 \
-p 4443:4443 \
jlesage/nginx-proxy-manager"

echo ${mycmd}
${mycmd}

포트포워딩

위와같이 설치를 완료하였으면 다음과 같이 포트 포워딩을 공유기에서 설정해 주면됩니다.

80(외부) <—> 8080(내부)

443(외부) <—> 4443(내부)

8181(외부) <—> 8181(내부)

DuckDNS DNS Set-up

QNAP NAS의 경우 xxx.myqnapcloud.com 이라는 DNS를 기본적으로 제공하고있다. 그런데 이상하게도 해당 DNS로 하위주소를 추가할 경우 접근이... 안되는 증상이 있어서 DuckDNS에 접속 주소를 생성하여 활용하였다. DuckDNS( https://duckdns.org )에 구글아이디 등으로 로그인하고 사용하고자 하는 도메인명과 IP주소를 넣으면 해당 주소로 서버 접근이 가능하다.

Nginx Proxy Manager Set-up

앞의 세팅을 모두 잘 했다면 발급받은 주소로 접근하면 다음과 같은 메세지를 얻을 수 있다.

이제 URL:8181 주소로 접근하면 Proxy Sever 설정 로그인 화면이 나온다. 초기 비밀번호는 다음과 같고 접속해서 원하고자 하는 계정을 생성하면 된다.

  • ID: admin@example.com
  • PW: changeme

이후 Detail탭에서 필요한 정보들을 입력해주고 SSL탭에서 인증서 신청과 메일을 넣어주면 인증서발급과 함께 새로운 주소 사용이 가능하다.

최종적으로 아래와 같이 활성화된 서버가 Online되었다.

반응형
반응형

Requirement

Contents

QNAP에 기본으로 되어있는 vi의 경우 빌드과정에서 많이 줄여놓아 많은 기능들이 빠져있다.
심지어 한글 Editing 및 Viewing도 지원하지 않는다.
그래서 Ubuntu 18.04에서 Static Compile을 해서 VIM을 복사하여 사용 할 수있다
다음 링크를 참고하여 빌드 진행하였다.

참고: https://raymii.org/s/blog/Statically_cross_compiled_vim_for_x86_x86-64_and_mips.html

아래와 같은 Script수행 후 bin폴더내의 vim을 원하는 위치에 복사하여 사용하면 된다.


#!/bin/bash



apt install libncurses5-dev build-essential git



git clone https://github.com/vim/vim.git





pushd vim/src

export LDFLAGS="-static"

export MAKEFLAGS="-j4"

export CFLAGS=""

./configure --with-features=small  --with-compiledby='Remy <relst@relst.nl>'  --with-x=no  --disable-gui  --disable-netbeans  --disable-pythoninterp  --disable-python3interp  --disable-rubyinterp  --disable-luainterp

make



strip vim

popd

mkdir bin

cp vim/src/vim bin/.
반응형

+ Recent posts