블로그 이미지
안녕하세요~ iolate(a.k.a. isho) 의 블로그 입니다~! iolate

카테고리

분류 전체보기 (196)
끄적끄적 (6)
Review (15)
IoT (9)
Linux, Server, Web (50)
Mac, iOS (36)
Embedded (15)
개발개발 (51)
Network (3)
기타 (11)
비공개글 (0)
Total816,264
Today78
Yesterday209

Docker로 설치해봤는데, docker 이미지는 web installer 방식이라 초기 설치시간이 오래걸리길래 그냥 네이티브로 깔았다.

참고로 아래 설치법은 일부 선택 옵션들을 포함하니 참고.

Installation on Linux — Nextcloud 여기 잘 설명되어 있으니 그냥 여길 봐도 된다. 좀 귀찮게 해서 그렇지...


1. apache2 + php7.4 설치

Ubuntu 18.04의 기본 php 는 7.0이다. 7.3 이상을 권장하니 7.4를 깔아주자

nginx도 못쓰는건 아닌데,, 왠지 apache2 가 기본값인 것 같아서 그냥 apache2 로 진행하였다.

sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php

sudo apt install apache2 libapache2-mod-php7.4 php7.4 php7.4-bcmath php7.4-bz2 \
    php7.4-curl php7.4-gd php7.4-gmp php7.4-intl php7.4-json php7.4-mbstring \
    php7.4-mysql php7.4-xml php7.4-zip libxml2


NextCloud 에서 imagic 모듈도 설치를 추천한다.

sudo apt install php-imagick


2. NextCloud 설치

php 기반의 프로그램이다. 웹사이트에서 받아서 적절한 위치에 압축을 풀어만 주면 됨.

https://nextcloud.com/install/#instructions-server


3. apache2 설정

/etc/apache2/site-available/cloud.conf (당연히 이름과 각종 경로는 알아서 수정..)

<VirtualHost *:80>
        ServerName 사이트주소

        DocumentRoot /var/www/nextcloud/
        <Directory /var/www/nextcloud/>
                Require all granted
                AllowOverride All
                Options FollowSymLinks MultiViews
        </Directory>

        LogLevel emerg
</VirtualHost>

apache2 에 필요/선택 모듈을 활성화해준다.

a2enmod rewrite headers env dir mime


4. php 설정

php 기본 설정은 업로드 용량이 2MB이므로, 조금 늘려준다.

메모리 제한값도 기본은 128MB이지만 추천은 512MB

sudo vi /etc/php/7.4/apache2/php.ini
memory_limit = 512M
post_max_size = 10G
upload_max_filesize = 10G


5. HTTPS 설정

이건 알아서 해주자.

Posted by iolate
TAG nextcloud

댓글을 달아 주세요

zigbee IoT 장치들(End Device)를 사용하기 위해선 장치들이 연결되기 위한 Coordinator가 필요하다.

코디네이터를 중심으로 end device 들이 연결되는데, 중간에 네트워크 확장을 위해서 라우터를 추가하기도 함.

코디네이터 혹은 라우터로 사용할 수 있는 CC2531 을 구매 후 펌웨어 변경 작업을 정리해 보았음.


CC2531 펌웨어 플래싱 with RPi

* 참고: 
    * What do I need? | zigbee2mqtt.io - https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html
    * Flashing the firmware on the CC2531 USB stick | zigbee2mqtt.io - https://www.zigbee2mqtt.io/getting_started/flashing_the_cc2531.html
    * Alternative flashing methods | zigbee2mqtt.io - https://www.zigbee2mqtt.io/information/alternative_flashing_methods.html
    * ConBee implementation #72 - https://github.com/jmichault/flash_cc2531/issues/9


우선 CC2531(약 $5) 이랑 다운로더 케이블(약 $2)를 준비한다. 난 AliExpress 에서 주문하였음.

칩안테나(회로에 안테나가 그려져 있는) 버전이 있고 안테나 단자가 달려 있고 안테나를 같이 파는 버전도 있다.

CC2531 을 그냥 쓸 경우 신호가 약하다는 글을 많이 봐서 난 안테나 버전으로 구매하였음.


펌웨어 작업이 이미 되어 있는 CC2531을 팔기도 한다던데 그걸 살 경우 다운로더 케이블과 이 작업이 필요없다.


위에 참고로 건 글 중 Flashing the firmware on the CC2531 USB stick 글을 보면 Windows, Mac, Linux 에서 플래싱을 할 수 있지만, 왠지 pi에서 하는게 더 편할 것 같았다.

pi나 아두이노로 진행하는 방법은 Alternative flashing methods 글을 참고하면 됨.


1. 파이에 WiringPI 설치

sudo apt install wiringpi


2. 파이에서 툴 다운로드

git clone https://github.com/jmichault/flash_cc2531.git


3. 파이와 다운로더 모듈 간에 GPIO핀 연결

연결을 위해선 암-암 점퍼 케이블 4개가 필요함.

다운로더 모듈

 파이

 pin 1 (GND)

 pin 39 (GND)

 pin 7 (reset)

 pin 35 (GPIO24, BCM19)

 pin 3 (DC)

 pin 36 (GPIO27, BCM16)

 pin 4 (DD)

 pin 38 (GPIO28, BCM20)

다운로더 모듈의 핀보드는 모듈에 적혀있으니 그걸 보면 되고, 파이의 핀 위치는 https://pinout.xyz/ 사이트 참고.


4개 핀도 연결하고 전원 공급을 위해 CC2531 을 파이의 USB단자에도 연결해준다.


4. 플래싱

1) 먼저 잘 연결이 되었는지 확인해본다.

cd flash_cc2531
./cc_chipid -m 90
  ID = b524.

ID가 0000, ffff 등이 나온다면 뭔가 오류가 있음.

원래 -m 90 을 붙여주지 않아도 되는데, 나의 경우 계속 붙여줘야 정상적으로 진행이 가능했다.


2) 펌웨어 파일 다운로드

코디네이터 버전 - https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_Home_1.2/bin/default

라우터 버전 - https://github.com/Koenkk/Z-Stack-firmware/tree/master/router/CC2531/bin

# 코디네이터
wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_Home_1.2/bin/default/CC2531_DEFAULT_20190608.zip
unzip CC2531_DEFAULT_20190608.zip

# 라우터
wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/router/CC2531/bin/CC2531_router_2020_09_29.zip
unzip CC2531_router_2020_09_29.zip


라우터 버전은 펌웨어가 3개가 나온다.

- router-cc2531-std.hex: 라우터 기능만 작동
- router-cc2531-diag.hex: 라우터 + 진단 정보
- router-cc2531-diag-usb.hex: 라우터 + 진당전보 + USB 시리얼포트로 인식 (진단정보를 USB로 읽기 가능)

진단정보가 뭘 말하는건지 모르겠어서 난 그냥 -std 버전을 사용하였음.


3) 펌웨어 플래싱

./cc_erase -m 90
./cc_write -m 90 CC2531ZNP-Prod.hex (혹은 해당하는 펌웨어명)


Posted by iolate

댓글을 달아 주세요

보통 HA에서 Zigbee 를 사용하기 위해 CC2531 칩 + zigbee2mqtt 를 많이 사용하지만,
ConBee II 라는 애가 "Very powerful"⁽¹⁾ 라고 소개되어 있어서가 있어서 구매해보았다.

아마존에서 $47에 구매, 57,304원이 빠져나갔다. CC2531 한개가 약 $5 인걸 고려하면 무시무시한 금액...ㅠㅠ


zigbee2mqtt 와 아직 호환이 완벽하지 않다고 적혀있어서⁽²⁾ deCONZ 란걸 사용해보았음

(1) Supported adapters | zigbee2mqtt.io - https://www.zigbee2mqtt.io/information/supported_adapters.html
(2) ConBee implementation - #72 https://github.com/Koenkk/zigbee-herdsman/issues/72


deCONZ 설정

# USB 제어를 하기 위해 현재 사용자를 dialout 그룹에 추가
# RPi 에서 pi 계정의 경우 이미 추가가 되어 있음.
sudo usermod -a -G dialout $USER

# 이미지 받아오기
docker pull marthoc/deconz

docker run -d \
    --name=deconz \
    --net=host \
    --restart=always \
    -v /home/pi/ha/deconz:/root/.local/share/dresden-elektronik/deCONZ \
    --device=/dev/ttyACM0 \
    -v /etc/localtime:/etc/localtime:ro \
    -e DECONZ_WEB_PORT=2000 \
    -e DECONZ_WS_PORT=2001 \
    marthoc/deconz


설정 파일 위치는 지정하기 나름. 이전 글에 이어서 /home/pi/ha/deconz으로 지정하였음.

--device=/dev/ttyACM0 부분은,, zigbee 모듈을 연결하고 해당 USB 항목을 넘겨주는건데 알아서 하자.

포트는 기본이 80, 443 인데 마음에 안들어서 각 2000, 2001 로 바꾸었다.

이제 http://RPi주소:2000로 접속 가능.


HA 웹페이지 통합 구성요소로 가면 deCONZ가 나타나고 클릭해서 연결하면 된다.

deCONZ 웹에서도 그룹을 만들거나, 제어를 하는게 가능하지만 어차피 HA로 제어를 할테니 zigbee 장비 연결만하고 돌아오면 됨.

그룹을 만들 경우 HA에도 나타나서 거슬린다.


문제점

 localhost 주소가 아닌 경우 pi의 IP가 바뀌면 HA와 deCONZ가 서로 통신을 못하는 어처구니 없는 일이 발생한다.

로컬주소로 바꿔봤는데도 이상함.. 그냥 deCONZ 자체가 IP가 바뀌면 이상하게 작동을 한다..ㅡㅡ


그리고 다원 DNS의 Zigbee Smart plug 는 연결은 되지만 제어만 되고 전력 소모량 등의 값은 올라오지 않는다.

Zigbee 전등 스위치는 아예 연결도 안됨...


결국 deCONZ 대신 zigbee2mqtt 를 다시 깔았다.. 이건 따로 글을 쓸 예정.

deCONZ 를 안쓸 경우 만들었던 docker 이미지를 꺼주거나, 지워주자.


# 인스턴스 정지
docker stop deconz

# 컨테이너 삭제
docker rm deconz

# 이미지 삭제
docker rmi marthoc/deconz


Posted by iolate

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함