본문 바로가기
IoT

OrangePi Zero IOT 보드 테스트

by ㅋㅋ잠자 2021. 3. 20.
반응형

안녕하세요? 도정진입니다.

하기 보드를 대여 에디님께 대여 받아서 테스트 중에 있습니다.

 

오늘은 OS를 올리고 이전 HA 세팅을 마이그레이션 하는 것 까지 진행해 보겠습니다.

보드 정보 : www.orangepi.org/orangepizero/

제가 가지고 있는 세트는 핀헤더로 올라와 있는 USB 2.0 라인에 CC2530 이 같이 있는 세트입니다.

알리의 판매자는 Homebridge + Zigbee2mqtt 를 합쳐서 판매를 하고 있네요. 가격적으로 8만원 정도인데 가격이 조금 비싸 보입니다.

 

사양으로는 A7 QUAD + 512MB 로써, 일단 Cortex A7이라는게 많이 걸리고 메모리가 512MB라는게 심각하게 마음에 걸리네요.

100mbps 이더넷 / bgn 와이파이 가 있으며, 도터보드를 꽂지 않고서는 본래 보드에 하기와 같은 포트들이 존재합니다.

해당 칩의 데이타쉬트는 하기와 같습니다.

wiki.friendlyarm.com/wiki/images/0/08/Allwinner_H2%2B_Datasheet_V1.2.pdf

데이터쉬트에서 하기의 정보를 캐치할 수 있었습니다.

 

1. 보드에 붙어있는 SPI FLASH 가 pre 부트로더이며, 이 부트로더가 SD카드로 부팅을 시켜주는 것으로 보이네요.

2. DDR의 경우 DDR3 까지 1333까지 지원하며 최대 용량이 2GB로 나와 있습니다.

3. SDMMC 속도가 SDR50 / DDR50 까지 지원되며, 흔히 저희가 생각하는 HS200 HS400 모드는 지원되지 않습니다.

--> SDR의 경우 1클락이기 때문에 50MB/s 이며 DDR의 경우 1클락에 라이징/폴링이기 때문에 100MB/s 대역이 나옵니다. 결국에 좋은 SD카드 써봤자 속도는 떨어진다는 이야기입니다.

--> 확인 결과 SDR DDR 상관없이 대역이 50MB/s 라고 하네요. 이게 왜 그런지는 잘 모르겠습니다.

--> SDR104 모드가 지원되면 대역폭이 104MB/s 라 조금 좋을 것 같지만 보드가 너무 로우엔드라서 애매하긴 합니다.

--> SD카드 스펙은 하기 링크를 참조하시길 바랍니다.

www.sdcard.org/developers/sd-standard-overview/

4. Display의 경우 HDMI 1.4 를 지원하지만, 이 보드에서는 HDMI가 아닌 CVBS 포트로 이전 고전게임 포트로 출력을 지원하는 것 같습니다.

5. 카메라의 경우 CCIR656 8비트 병렬 라인으로 지원하는 것 같습니다.

6. USB2.0 OTG / USB2.0 3포트 를 지원한다고 나와 있습니다.

7. 내부 이더넷 PHY로 100mbps 이더넷을 지원하고 RGMII 를 따로 사용하여 PHY가 외부에 있으면 1000mbps 도 가능하다고는 나오네요.

 

기타 내용은 필요 없는것으로 보이고 이런 사양을 대충 확인하고 핀헤더를 보면 아래와 같습니다.

왼쪽핀에 USB2.0 DM DP 2채널 / 아날로그 오디오 출력 / CVBS 영상 출력 (720x480) / 마이크 / IR

오른쪽에는 디버그UART

SPI 2개 / UART 2개 / PWM 1개가 올라와 있네요. 실제로 TWI 라는게 처음 들어보는 방식이라 무엇인지는 모르겠습니다.

 

일단은 CC2531 같은 것을 수제작하여 왼쪽 핀헤더에 도터보드를 만들어서 올리면 딱 좋을 것 같은 느낌이네요. 세트로 파는것은 가격이 8만원이라 너무한것 같습니다.

 

아니면 하기 도터보드를 이용하여 가격을 낮추는 것도 좋은 방법으로 보이네요.

USB를 2개 더 만들어주는 도터보드에 CC2531을 꽂아서 쓰면 어떨까 하는 생각입니다.

 

그리고 이번에는 이 512MB 에서 충분히 오피스텔이나 원룸 사이즈의 HomeAssistant 구동이 가능한지? 한번 테스트를 해볼 예정입니다.

 

설치 해야할 패키지는 아래와 같습니다.

1) Apache2 : 프록시용 (그런데 이미 NUC가 있어서 설치를 하지 않을 예정입니다.)

2) HomeAssistant Core

3) Zigbee2Mqtt

4) 트루월드님 kocom.js 수정본

5) mqtt daemon

 

모든 장비를 연동시킬 계획이며, 단지 블루투스가 없어서 이전에 쓰던 이라이트 무드등은 연동을 못할 것 같네요.

이 게시글로 설치 글을 작성하고 대략 2주간 사용해볼 예정입니다.

 

예상되는 문제점은 아래와 같습니다.

1) 메모리 부족

2) SD카드 읽기 속도 부족에서 오는 자동화 씹힘, 로그 불러오기 속도 저하

3) CPU파워 부족에서 오는 자동화 씹힘

4) 발열 안정성 및 CPU자체 BSP 코드 안정성때문에 오는 24시간 365일 구동 불가능 문제

5) 보드 자체의 만듬세에서 오는 다년간 사용가능한지?

 

그럼 시작해 보겠습니다.

1. OS 다운로드

하기 링크로 이동하면, 다운받을 수 있는 운영체제가 있습니다.

www.orangepi.org/downloadresources/

저는 여기서 armbian 을 사용하여 구성할 예정입니다.

하기 링크로 이동하여 다운을 받아줍니다.

www.armbian.com/orange-pi-zero/

정말 커널 판올림은 엄청 빠르네요. 그래도 allwinner 가 소스를 많이 오픈을 한것 같습니다. 가격도 저렴하여 많이 팔리는 듯 싶네요.

focal 버전을 한번 시도해보고 싶지만, 우분투20.04 이기 때문에 데비안 10 buster로 다운받고 시도하겠습니다.

 

하기 W32 Disk Imager 를 통해 이미지를 Write 하시면 됩니다.

SD카드는 무조껀 싼디스크 홍모델을 사용하시는게 정신건강에 좋습니다.

그런데 오렌지파이ZERO 의 경우 SDXC는 지원을 하지 않는 것으로 보이네요.. SDHC를 구매해야 합니다.

절대 제품 광고는 아니고, 다른 제품에서도 나오는 최상급 모델로 해주셔야 스트레스를 받지 않습니다.

2. 초기 컨넥션

공유기의 사용중인 IP정보를 확인하여 찾아봅니다.

상기 주소로 접근해 보겠습니다.

root / 1234 로 기본 로그인이 가능합니다.

++ 주의사항

어댑터 5V 출력이 낮으면 uboot 의 DDR 초기화에서 멈춤 증상이 생깁니다.

혹시 부팅이 안되거나, 디버그 UART 콘솔로 확인하였을 때 DDR init 에서 멈춘다면, 전원 어댑터를 점검하시길 바랍니다.

3. 기본 최적화 진행

처음으로 일단 apt update 를 진행합니다.

root@orangepizero:~# apt update
Get:1 http://security.debian.org buster/updates InRelease [65.4 kB]
Hit:2 http://deb.debian.org/debian buster InRelease
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://deb.debian.org/debian buster-backports InRelease [46.7 kB]
Get:6 http://security.debian.org buster/updates/main armhf Packages [330 kB]
Get:5 https://mirrors.ustc.edu.cn/armbian buster InRelease [18.3 kB]
Get:7 http://deb.debian.org/debian buster-backports/main armhf Packages.diff/Index [27.8 kB]
Get:8 http://deb.debian.org/debian buster-backports/main armhf Contents (deb).diff/Index [27.9 kB]
Get:9 http://deb.debian.org/debian buster-backports/non-free armhf Packages.diff/Index [22.9 kB]
Get:10 http://deb.debian.org/debian buster-backports/main armhf Packages 2021-03-15-0809.38.pdiff [1,813 B]

와 ... apt update 도 엄청 오래걸리네요. SD카드를 좋은것을 사용해도 이 부분은 sdmmc 채널 자체가 hs200 이나 hs400 모드로 돌지 않아서 개선이 힘들 것으로 보입니다.

다음으로 swap 을 생성합니다.

root@orangepizero:/# dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 records out

root@orangepizero:/# mkswap swapfile
mkswap: swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=87548f59-12f9-4044-ad7b-3606e7fcc0fd

root@orangepizero:/# chmod 0600 swapfile
root@orangepizero:/# swapon swapfile

root@orangepizero:/# free -h
              total        used        free      shared  buff/cache   available
Mem:          491Mi        78Mi       6.0Mi       1.0Mi       406Mi       399Mi
Swap:         2.2Gi       0.0Ki       2.2Gi

root@orangepizero:/# vi /etc/fstab
/swapfile       swap    swap    defaults        0       0

최적화라고 거창하게 이름을 달았지만, 실제로는 아무것도 없습니다.

다음으로 넘어가겠습니다.

4. Docker 설치

root@orangepizero:~# curl -fsSL https://get.docker.com/ | sudo sh

root@orangepizero:~# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.10.21-sunxi
 Operating System: Armbian 21.02.3 Buster
 OSType: linux
 Architecture: armv7l
 CPUs: 4
 Total Memory: 491.7MiB
 Name: orangepizero
 ID: PZOZ:JBRT:DMKS:B7DM:4JMM:T5BY:I2T6:64WM:ANNE:46Q7:T7LG:YWKU
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

좀 많이 걸립니다.

5. HA core 설치

root@orangepizero:~# mkdir -p /opt/hass/config

root@orangepizero:~# docker run -d --name hass --restart=always -v /etc/localtime:/etc/localtime:ro -v /opt/hass/config:/config --privileged --network host homeassistant/home-assistant:latest
Unable to find image 'homeassistant/home-assistant:latest' locally
latest: Pulling from homeassistant/home-assistant
c58e8a26a840: Pull complete
35a504841ef3: Extracting  2.097MB/2.331MB
6584ab3a5e29: Download complete
ca5fe7c06d11: Downloading  16.55MB/22.43MB
fe7880a238cf: Download complete
bd16a9b1021a: Download complete
a38550048175: Downloading  10.93MB/46.98MB
dc6b1c0333ef: Download complete
1e939df3d5f9: Download complete
b80e4ad6b07a: Downloading  2.329MB/4.706MB
f531eee0db84: Waiting
59c1efe0b0e3: Waiting
c40cb32af1d0: Waiting
210e653da1fd: Waiting
a62336d4f04b: Waiting
fc91472c7dff: Waiting
cef9df9cbdce: Waiting
875d2e393cd5: Waiting
690db0f4ca0d: Waiting
ae83b00f3cb9: Waiting
87d4bb60f8e3: Waiting
44ef9c90c198: Waiting

6. MQTT 설치

root@orangepizero:~# apt install mosquitto
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libev4 libuv1 libwebsockets8
Suggested packages:
  apparmor
The following NEW packages will be installed:
  libev4 libuv1 libwebsockets8 mosquitto
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 365 kB of archives.
After this operation, 700 kB of additional disk space will be used.
Do you want to continue? [Y/n]

7. kocom.js 설치

github.com/djjproject/hass/tree/master/kocom

root@orangepizero:/opt/kocom# ls
kocom_rs485.js  kocom_watchdog.sh

root@orangepizero:/opt/kocom# apt install npm nodejs

root@orangepizero:/opt/kocom# npm install util net mqtt stream
npm WARN npm npm does not support Node.js v10.24.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
[..................] | rollbackFailedOptional: verb npm-session ca57005a02964550

root@orangepizero:/opt/kocom# node kocom_rs485.js
[2021. 3. 20. 오전 1:11:13] Success connect server
[2021. 3. 20. 오전 1:11:13] [Serial] Send to Dev: Light 2 ->  Read (1014ms)  aa5530bc000e0001003a0000000000000000350d0d
[2021. 3. 20. 오전 1:11:14] [Raw] Received: aa5530dc0001000e003a0000000000000000550d0d
[2021. 3. 20. 오전 1:11:14] [true-world] Success Receive Light Read command ACK
[2021. 3. 20. 오전 1:11:14] [Raw] Received: aa5530bc0001000e0000ff00000000000000fa0d0d
[2021. 3. 20. 오전 1:11:14] [MQTT] Send to HA: kocom/Light1/power1/state -> ON
[2021. 3. 20. 오전 1:11:14] [Raw] Received: aa5530dc000e00010000ff000000000000001a0d0d
[2021. 3. 20. 오전 1:11:14] [true-world] Data is Command or ACK(Gate2Device)
[2021. 3. 20. 오전 1:11:15] [Serial] Send to Dev: Outlet 2 ->  Read (1007ms)  aa5530bc003b0001003a0000000000000000620d0d
[2021. 3. 20. 오전 1:11:15] [Raw] Received: aa5530dc0001003b003a0000000000000000820d0d
[2021. 3. 20. 오전 1:11:15] [djjproject] Success Receive Outlet Read command ACK
[2021. 3. 20. 오전 1:11:15] [Raw] Received: aa5530bc0001003b0000ffff000000000000260d0d
[2021. 3. 20. 오전 1:11:15] [MQTT] Send to HA: kocom/Outlet1/power1/state -> ON
[2021. 3. 20. 오전 1:11:15] [MQTT] Send to HA: kocom/Outlet1/power2/state -> ON
[2021. 3. 20. 오전 1:11:15] [Raw] Received: aa5530dc003b00010000ffff000000000000460d0d
[2021. 3. 20. 오전 1:11:15] [true-world] Data is Command or ACK(Gate2Device)
[2021. 3. 20. 오전 1:11:16] [Serial] Send to Dev: Thermo 1-1 ->  Read (1011ms)  aa5530bc00360001003a00000000000000005d0d0d
[2021. 3. 20. 오전 1:11:16] [Raw] Received: aa5530dc00010036003a00000000000000007d0d0d
[2021. 3. 20. 오전 1:11:16] [Serial] Success Receive boiller Read command ACK
[2021. 3. 20. 오전 1:11:16] [Raw] Received: aa5530bc00010036000000010a001a000000480d0d
[2021. 3. 20. 오전 1:11:16] [Raw] Received: aa5530dc00360001000000010a001a000000680d0d
[2021. 3. 20. 오전 1:11:16] [true-world] Data is Command or ACK(Gate2Device)
[2021. 3. 20. 오전 1:11:18] MQTT Ready...

systemd 스크립트를 작성합니다.

root@orangepizero:/etc/systemd/system# vi kocom.service

[Unit]
Description=kocom mqtt

[Service]
ExecStart=/usr/bin/node /opt/kocom/kocom_rs485.js

[Install]
WantedBy=multi-user.target

root@orangepizero:/etc/systemd/system# systemctl enable kocom.service
root@orangepizero:/etc/systemd/system# systemctl start kocom.service

root@orangepizero:/etc/systemd/system# systemctl status kocom
● kocom.service - kocom mqtt
   Loaded: loaded (/etc/systemd/system/kocom.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-03-19 16:28:48 UTC; 3s ago
 Main PID: 11026 (node)
    Tasks: 6 (limit: 905)
   Memory: 3.7M
   CGroup: /system.slice/kocom.service
           └─11026 /usr/bin/node /opt/kocom/kocom_rs485.js

8. Zigbee2Mqtt 설치

root@orangepizero:/dev/serial/by-id# ls
usb-1a86_USB2.0-Serial-if00-port0

root@orangepizero:~# ls /dev | grep ttyUSB0
ttyUSB0

root@orangepizero:/dev/serial/by-id# mkdir /opt/z2m

root@orangepizero:~# docker run -d -it -v /opt/z2m:/app/data --device=/dev/ttyUSB0 -e TZ=Asia/Seoul -v /run/udev:/run/udev:ro --name z2m --restart always --net host --privileged koenkk/zigbee2mqtt
Unable to find image 'koenkk/zigbee2mqtt:latest' locally
latest: Pulling from koenkk/zigbee2mqtt
8e85c7428c31: Downloading  2.141MB/2.408MB
70c7f4382015: Downloading  1.422MB/34.84MB
38cceb9e3240: Downloading  1.369MB/2.419MB
6eb3f42a8395: Waiting
11de21dd44ae: Waiting
f8d38f357de3: Waiting
dea9464bf297: Waiting
fd2a96bbb6b8: Waiting
1a63aa2b359d: Waiting
34e9e3010520: Waiting
6806ebbb834a: Waiting
77fed31198e3: Waiting
4d30d2a157d9: Waiting
9a6c1dd11446: Waiting
root@orangepizero:/dev/serial/by-id# vi /opt/z2m/configuration.yaml

# Home Assistant integration (MQTT discovery)
homeassistant: true

# allow new devices to join
permit_join: false

# 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/ttyUSB0

advanced:
  availability_blocklist: []
  availability_passlist: []
frontend:
  port: 8124
experimental:
  new_api: true
devices: {}

9. Zigbee 장치 재 페어링

하기 4개의 장비를 다시 페어링 예정입니다.

재 페어링의 경우 이전에 쓰던 Z2M을 중단 시키고 USB 도 분리 시켜주어야 둘의 간섭이 없습니다.

그리고 그냥 리셋 버튼을 꾹 눌러주기만 하면 연결이 됩니다.

 

하기와 같이 모두 연결하였습니다.

페어링을 완료하면 우측 상단의 Permit Join 을 눌러 조인을 막아주셔야 합니다. 버튼 네이밍이 TO-BE 라서 헷깔릴 수 있습니다.

 

아래 다원 플러그 페어링과 마찬가지로 디바이스 이름을 하나도 바꾸지 않았기 때문에 그냥 재 페어링만 하면 문제 없이 마이그레이션이 가능합니다. 되도록이면 이름은 HA에서 Friedly Name 을 바꾸시는게 좋습니다.

10. 다원 플러그 재 페어링

제가 플러그를 대략 4개 정도 사용중에 있습니다. mqtt 주소가 바뀌어서 해당 부분을 바꿔주어야 합니다.

 

와이파이 플러그 시리얼 대로 설정은 들어가 있어서 mqtt 주소만 바꾸어서 설정을 다시 해주면 문제없이 재 페어링 가능합니다.

 

다원 플러그 stkang90 님의 프로그램을 받고 재 페어링을 해줍니다.

OrangePi 에 와이파이가 있어서 해당 와이파이를 이용하여 설정을 진행할 예정입니다.

root@orangepizero:~# wget https://github.com/stkang/home-assistant-custom-component/raw/master/custom_components/dawon/Dawon.jar -O /opt/dawon/dawon.jar

root@orangepizero:~# apt install openjdk-11-jre

root@orangepizero:~# cd /opt/dawon/
root@orangepizero:/opt/dawon# java -jar dawon.jar
###############################################
######### [Dawon Dns 스마트 플러그 설정 툴] #########
###############################################
## 테스트 성공 모델: Smart Plug(B530-WF/B540-WF) ##

######### [WIFI 설정] #########
WIFI 이름을 입력하세요.

상기와 같이 제대로 동작하는게 확인이 되셨다면, armbian-config 메뉴를 통해 와이파이를 연결하고 설정을 진행합니다.

root@orangepizero:/opt/dawon# armbian-config

구석에 있다 보니 감도가 매우 낮아 보이네요. 그냥 PC로 처리하기로 했습니다.

PS E:\다운로드> java -jar .\Dawon.jar
###############################################
######### [Dawon Dns 스마트 플러그 설정 툴] #########
###############################################
## 테스트 성공 모델: Smart Plug(B530-WF/B540-WF) ##

######### [WIFI 설정] #########
WIFI 이름을 입력하세요.
DJJ_AP
WIFI 비밀번호을 입력하세요. (8자리 이상)
1q2w3e4r
##############################

######### [MQTT 설정] #########
MQTT 서버 주소(IP or Domain)를 입력하세요
192.168.0.106
MQTT 서버 포트를 입력하세요. (기본값: 1883)
1883
MQTT 서버 비밀번호를 입력하세요. (1234 입력 권장)
1234
#### [디바이스(스마트 플러그) 설정] ###
디바이스 주소(IP)를 입력하세요. (IPv4) (기본값: 192.168.43.1)
192.168.43.1
디바이스 포트를 입력하세요. (기본값: 5000)
5000

########## [설정 확인] #########
WIFI 이름: DJJ_AP
WIFI 비밀번호: 12345678
MQTT IP: 192.168.0.106
MQTT 포트: 1883
MQTT 비밀번호: 1234
디바이스 IP: 192.168.43.1
디바이스 포트: 5000

위 설정이 맞습니까? (y/n)
y
설정 완료

연결 시도 중입니다.
연결 성공
SendData: {"server_addr":"192.168.0.106","server_port":"1883","ssl_support":"no","ssid":"DJJ_AP","pass":"12345678","mqtt_key":"1234","company":"DAWONDNS","model":"B5X","topic":"dwd"}
#### 성공 ####

한대씩 차근 차근 진행해줍니다.

다만, 켜져있는 장비에서 플러그 리셋을 할 경우, 전원이 나가버리는 문제가 있어서 서버에 붙어있는 플러그는 마이그레이션을 하지 못했네요.

11. HA 마이그레이션

대망의 HA 마이그레이션 입니다. 이전에 쓰던 서버에서 cofing 폴더를 통짜로 복사합니다.

root@orangepizero:/opt/hass# copy /opt/hass/config
secrets.yaml                                  100%  206    79.6KB/s   00:00
.scripts.yaml.swp                             100%   12KB   2.4MB/s   00:00
yeelight.bright                               100%    2     1.0KB/s   00:00
yeelight.temp                                 100%    5     3.3KB/s   00:00
notify_leaving_zone.yaml                      100% 1260   499.3KB/s   00:00
motion_light.yaml                             100% 1219   582.7KB/s   00:00
root@orangepizero:/opt/hass# cd config/
root@orangepizero:/opt/hass/config# ls
automations.yaml    google_assistant.json  known_devices.yaml  switchs.yaml     yeelight.run
blueprints          groups.yaml            scenes.yaml         tts              yeelight.sh
configuration.yaml  home-assistant.log     scripts.yaml        www              yeelight.temp
core                home-assistant_v2.db   secrets.yaml        yeelight.bright  zigbee.db
custom_components   input_boolean.yaml     sensors.yaml        yeelight.color
deps                kakao.session          smb.conf            yeelight.power
root@orangepizero:/opt/hass/config# rm home-assistant_v2.db
root@orangepizero:/opt/hass/config# docker start hass

마이그레이션 이후 첫 부팅까지 매우 오랜 시간이 걸렸습니다. 이 보드에서 HA 구동은 추천드리지 않습니다.

HA 첫 부팅 하는것데에 12분 정도가 걸렸습니다.

 

메인 서버가 프록시를 가지고 있음으로 프록시 주소를 살짝 수정합니다.

root@debian:~# vi /etc/apache2/sites-available/ha.conf
ProxyPreserveHost On
SSLProxyEngine On
ProxyRequests Off
RequestHeader set Front-End-Https "On"

ProxyPass /api/websocket ws://192.168.0.106:8123/api/websocket
ProxyPassReverse /api/websocket ws://192.168.0.106:8123/api/websocket
ProxyPass / http://192.168.0.106:8123/
ProxyPassReverse / http://192.168.0.106:8123/

RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)  ws://192.168.0.106:8123/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)  http://192.168.0.106:8123/$1 [P,L]

root@debian:~# service apache2 reload

12. 후기

생각보다 잘 구동은 됩니다. 제가 쓰는 모든 IOT 관련 서비스를 마이그레이션 하였습니다.

온도는 매우 위험 위험 해보이네요 ㅎㅎ

풀로드 걸릴 때 78도 정도 까지 올라갑니다.

 

메모리는 대략 하기와 같이 남아 있습니다.

root@orangepizero:/opt/hass/config# free -h
              total        used        free      shared  buff/cache   available
Mem:          491Mi       288Mi        19Mi       4.0Mi       183Mi       197Mi
Swap:         2.2Gi        72Mi       2.2Gi

다른 서버를 돌리지 않고 24시간 IOT 용도로만 사용한다면, 괜찮은 제품으로 보입니다만, IOT 특성상 다른 애드온을 많이 설치 하고 운영되기 때문에 꼭 그렇지는 않은 것 같습니다.

 

많은 HA 사용자 분들께서 겪고 계시는 SD카드 속도 저하 문제는 어쩔 수 없어보입니다만, 라이트하게 사용하는 데에는 문제가 없어 보입니다.

 

 

2주 후에 뵙겠습니다.

 

감사합니다.

 

반응형

댓글