728x90
Android 스마트폰을 활용하여 루팅 없이 완전한 Home Assistant 서버를 구축합니다.
이를 통해 저전력, 상시 가동이 가능한 스마트홈 허브를 만들 수 있습니다.
📱 시스템 요구사항
- Android 버전: 5.0 (Lollipop) 이상
- RAM: 최소 2GB (권장 4GB 이상)
- 저장공간: 최소 4GB 여유 공간
- 네트워크: Wi-Fi 연결 필수
🛠️ 필요한 도구
- Android 앱: UserLAnd (Google Play Store)
- PC 프로그램: MobaXterm (Windows) 또는 Terminal (Mac/Linux)
- 기본 지식: Linux 터미널 명령어 기초
UserLAnd로 Linux 환경 구축
📲 UserLAnd 설치
- Google Play Store 접속
- "UserLAnd" 검색 후 설치
- 약 100MB 저장공간 필요
- Linux 배포판 선택
⚠️ 중요: Kali Linux를 선택하세요! - Ubuntu/Debian: Python 3.8 이하 (추가 작업 필요) - Kali: Python 3.10+ (Home Assistant 즉시 설치 가능)
🔧 Kali Linux 초기 설정
- 사용자 정보 입력
💡 보안을 위해 실제 사용 시에는 복잡한 비밀번호 사용 권장Username: test Password: test VNC Password: test
- 연결 방식 선택
- SSH 선택 (VNC보다 가볍고 안정적)
- 첫 로그인
- 자동으로 터미널 실행
- Password 입력:
test
🔐 Root 권한 설정
# root 전환
sudo su
# root 비밀번호 설정
passwd root
# 새 비밀번호 2회 입력
SSH 환경 설정
💻 PC에서 원격 접속 준비
MobaXterm 설치 (Windows)
- 다운로드: https://mobaxterm.mobatek.net/
- Home Edition (무료) 선택
스마트폰 절전 모드 방지
- UserLAnd 메인 화면
- "Acquire wakelock" 버튼 클릭
- 화면 꺼짐 방지 활성화
🔒 OpenSSH 서버 구성
- 필수 패키지 설치
apt update apt install openssh-server nano -y
- SSH 설정 파일 편집
nano /etc/ssh/sshd_config
- 설정 변경 내용
# 포트 변경 (22번은 UserLAnd에서 사용 불가) Port 2022 # Root 로그인 허용 PermitRootLogin yes # 비밀번호 인증 활성화 PasswordAuthentication yes
- 저장 및 종료
Ctrl + O
→Enter
(저장)Ctrl + X
(종료)
- SSH 서비스 시작
service ssh start
🖥️ PC에서 SSH 접속
- MobaXterm 실행
- 새 세션 생성
Session → SSH - Remote host: [스마트폰 IP 주소] - Username: root - Port: 2022
- IP 주소 확인 방법
# 스마트폰 터미널에서 ip addr show | grep inet
시스템 기본 설정
📦 시스템 업데이트
# 패키지 목록 업데이트
apt update
# 시스템 업그레이드
apt upgrade -y
업그레이드 중 나타나는 프롬프트 응답
run (Y/I/N/O/D/Z) [default=N] ?
→ Enter- Keyboard 선택: 26 (Other) → 60 (Korean) → 1 (Korean)
- Console setup: 27 (UTF-8)
- Character set: 23 (Guess optimal character set)
🌏 타임존 설정
dpkg-reconfigure tzdata
- 6 (Asia) → 69 (Seoul) 선택
📚 필수 의존성 패키지 설치
apt install -y \
software-properties-common \
apparmor-utils \
avahi-daemon \
ca-certificates \
wget curl git nano unzip \
dbus jq network-manager socat \
build-essential \
libpq-dev libssl-dev openssl \
zlib1g-dev gnupg-agent \
python3 python3-pip python3-dev python3-venv \
sqlite3 libsqlite3-dev \
libjpeg-dev autoconf \
libopenjp2-7 libturbojpeg0-dev \
tzdata ffmpeg npm cargo
🐍 Python 버전 확인
python3 --version
- 최소 요구사항: Python 3.9+
- Kali Linux: 보통 Python 3.10+ 설치됨
300x250
Home Assistant 설치
🏗️ Python 가상환경 생성
# 홈 디렉토리로 이동
cd /root
# 가상환경 생성
python3 -m venv homeassistant
# 가상환경 활성화
source /root/homeassistant/bin/activate
💡 가상환경 활성화 시 프롬프트가 (homeassistant) root@...로 변경됨
📥 Home Assistant 설치
# pip 업그레이드
pip install --upgrade pip
# wheel 설치 (의존성 관리)
pip install wheel
# Home Assistant 설치
pip install homeassistant
🚀 첫 실행
# Home Assistant 실행
hass
첫 실행 시
- 초기 설정 파일 생성 (5-10분 소요)
- 필요한 패키지 자동 다운로드
🌐 웹 인터페이스 접속
http://[스마트폰_IP]:8123
- 예: http://192.168.219.128:8123
👤 초기 계정 설정
- 이름, 사용자명, 비밀번호 설정
- 위치 정보 설정 (선택사항)
- 통계 정보 공유 여부 선택
PM2 데몬 설정
📊 PM2 설치
# PM2 설치
npm i -g --unsafe-perm pm2
# npm 업데이트
npm install -g npm@8.11.0
🔄 Home Assistant 데몬 실행
# HA를 PM2로 실행
pm2 start /root/homeassistant/bin/hass \
--interpreter=/root/homeassistant/bin/python \
-- --config /root/.homeassistant/
# 현재 설정 저장 (재부팅 시 자동 시작)
pm2 save
🛠️ PM2 관리 명령어
# 프로세스 목록 확인
pm2 ls
# 로그 확인
pm2 logs hass
# 프로세스 제어
pm2 stop hass # 중지
pm2 start hass # 시작
pm2 restart hass # 재시작
# 상세 정보
pm2 show hass
# 저장된 프로세스 복원
pm2 resurrect
필수 애드온 설치
🎨 HACS (Home Assistant Community Store)
# HACS 설치 스크립트 실행
cd /root/.homeassistant/
wget -q -O - https://install.hacs.xyz | bash -
설치 후
- Home Assistant 재시작
- 설정 → 기기 및 서비스 → 통합구성요소 추가
- "HACS" 검색 및 설치
- GitHub 계정 연동
📝 File Editor
# configurator 다운로드
cd /root/.homeassistant
wget https://raw.githubusercontent.com/danielperna84/hass-configurator/master/configurator.py
# PM2로 실행
pm2 start /root/.homeassistant/configurator.py \
--interpreter=/root/homeassistant/bin/python
configuration.yaml에 추가
panel_iframe:
configurator:
title: File editor
icon: mdi:wrench
url: http://192.168.219.128:3218
🔌 ESPHome
# 가상환경 생성
python3 -m venv esphome
source /root/esphome/bin/activate
# ESPHome 설치
pip install --upgrade pip
pip install wheel
pip install esphome
# 가상환경 종료
deactivate
PM2로 실행
source /root/esphome/bin/activate
pm2 start /root/esphome/bin/esphome \
--interpreter=/root/esphome/bin/python \
-- /root/.homeassistant/esphome/ dashboard
deactivate
- 접속 주소: http://192.168.219.128:6052
📡 MQTT (Mosquitto)
# Mosquitto 설치
apt install mosquitto -y
# 사용자 생성
mosquitto_passwd -c /etc/mosquitto/password_file admin
# 비밀번호 입력 (예: admin1234)
# 설정 파일 편집
nano /etc/mosquitto/mosquitto.conf
설정 파일 끝에 추가
per_listener_settings true
listener 1883
allow_anonymous false
password_file /etc/mosquitto/password_file
socket_domain ipv4
# 실행 디렉토리 생성
mkdir -m 775 /run/mosquitto
# PM2로 실행
pm2 start mosquitto -- -v -c /etc/mosquitto/mosquitto.conf
Home Assistant에서 MQTT 통합
- 브로커:
localhost
- 포트:
1883
- 사용자:
admin
- 비밀번호:
admin1234
🐝 Zigbee2MQTT
# 소스코드 클론
git clone https://github.com/Koenkk/zigbee2mqtt.git /root/zigbee2mqtt
# 가상환경 설정
cd /root
python3 -m venv zigbee2mqtt
source /root/zigbee2mqtt/bin/activate
# 필요 패키지 설치
pip install --upgrade pip
pip install wheel nodeenv
nodeenv -p -n 10.15.1
deactivate
# npm 의존성 설치
cd /root/zigbee2mqtt
npm ci
설정 파일 생성
nano /root/zigbee2mqtt/data/configuration.yaml
homeassistant: true
frontend:
port: 8080
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://localhost
user: admin
password: admin1234
serial:
port: tcp://192.168.219.197:8899 # ESPHome 코디네이터 주소
adapter: zstack
PM2로 실행
cd /root/zigbee2mqtt
pm2 -n zigbee2mqtt start npm -- start
유지보수 및 업그레이드
🔄 Home Assistant 업그레이드
최신 버전으로
pm2 stop hass
source /root/homeassistant/bin/activate
pip3 install --upgrade homeassistant
deactivate
pm2 start hass
특정 버전으로
pm2 stop hass
source /root/homeassistant/bin/activate
pip3 install --upgrade homeassistant~=2024.1.0
deactivate
pm2 start hass
🐝 Zigbee2MQTT 업그레이드
pm2 stop zigbee2mqtt
cd /root/zigbee2mqtt
# 설정 백업
cp -R data data-backup
# 업데이트
git checkout HEAD -- npm-shrinkwrap.json
git pull
rm -rf node_modules
npm ci
# 설정 복원
cp -R data-backup/* data
rm -rf data-backup
pm2 start zigbee2mqtt
💾 백업 권장사항
# 전체 설정 백업
tar -czf ha_backup_$(date +%Y%m%d).tar.gz /root/.homeassistant
# 중요 파일만 백업
cd /root/.homeassistant
tar -czf config_backup.tar.gz \
configuration.yaml \
automations.yaml \
scripts.yaml \
scenes.yaml \
secrets.yaml \
.storage/
문제 해결 가이드
❌ 일반적인 문제와 해결방법
1. SSH 접속 실패
# UserLAnd에서 세션 재시작
# Sessions → SSH 길게 누르기 → Stop Session
# 다시 SSH 클릭하여 시작
2. Home Assistant 시작 실패
# 로그 확인
pm2 logs hass --lines 100
# 설정 파일 검증
source /root/homeassistant/bin/activate
hass --script check_config
deactivate
3. 메모리 부족
# 불필요한 프로세스 중지
pm2 stop all
# 메모리 사용량 확인
free -h
# 스왑 메모리 추가 (선택사항)
dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
4. 포트 충돌
# 사용 중인 포트 확인
netstat -tlnp | grep LISTEN
# PM2 프로세스 확인
pm2 ls
🔧 성능 최적화 팁
- 불필요한 통합구성요소 비활성화
- 로그 레벨 조정 (configuration.yaml)
logger: default: warning
- 히스토리 보관 기간 단축
recorder: purge_keep_days: 7
이를 통해 Android 스마트폰을 활용한 완전한 Home Assistant 서버를 구축할 수 있습니다.
루팅 없이도 다음과 같은 기능을 모두 사용할 수 있습니다.
- ✅ 완전한 Home Assistant Core
- ✅ HACS를 통한 커스텀 통합구성요소
- ✅ ESPHome 장치 관리
- ✅ MQTT 브로커
- ✅ Zigbee2MQTT 지원
- ✅ 자동 시작 및 백그라운드 실행
📌 추가 확장 가능성
- Node-RED 설치
- InfluxDB + Grafana 모니터링
- 음성 어시스턴트 통합
- 외부 접속을 위한 리버스 프록시 설정
728x90
그리드형(광고전용)
댓글