[ zigbee2mqtt 설치 가이드 ] zigbee2mqtt(z2m) install & setup Guide

반응형

z2m_Setup_Guide.pdf
0.27MB

 

zigbee2mqtt(z2m setup env - 설치 환경 및 준비물)

  • raspberry pi 4 Model B (raspbian OS 64 bit)
  • ZigbeeGW Conbee2 - HW
  • MQTT Broker mosquitto
  • Zigbee2MQTT - app

Raspberry pi 4에 MQTT 설치 및 설정

sudo apt update && sudo apt upgrade

sudo apt install -y mosquitto mosquitto-clients

sudo systemctl enable mosquitto.service

mosquitto -v // version 확인

------------------------------------------------------

sudo nano /etc/mosquitto/mosquitto.conf

 

이후 아래와 같이 설정

프로세스 포트, 접근 권한 설정

설정이 모두 끝났으면 프로세스 재실행

sudo systemctl restart mosquitto

zigbee2mqtt(z2m) 설치 및 설정

Raspberry pi에서 Zigbee Adapter 찾아서 시리얼 설정해주기

$ sudo dmesg

------------------------
...
usbcore: registered new interface driver ch341
usbserial: USB Serial support registered for ch341-uart
ch341 3-1:1.0: ch341-uart converter detected
usb 3-1: ch341-uart converter now attached to ttyUSB0
... 
또는
... 
usb 1-1.1: New USB device found, idVendor=1cf1, idProduct=0030, bcdDevice= 1.00
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.1: Product: ConBee II
usb 1-1.1: Manufacturer: dresden elektronik ingenieurtechnik GmbH
usb 1-1.1: SerialNumber: DE2211357
cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
...
와 같은 출력 확인

또는

$ ls -l /dev/serial/by-id

------------------------

usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2211357-if00 -> ../../ttyACM0

와 같은 출력 확인

 

위의 예시에선 zigbee GW인 'ConBee 2' 가 현재 ttyACM0 쪽에 인식되어있음을 확인

자신의 환경에 맞춰서 Zigbee GW가 엣지 컴퓨터에 잘 물려있는지 확인해주면 된다.

Node.js, git setup 및 env 설정

zigbee2mqtt는 nodejs 기반이므로 raspberry pi에 node.js 및 npm 구축이 필요하며

dependencies repository 및 라이브러리 구축을 위해 다음과 같은 설정이 필요하다.

# Set up Node.js repository and install Node.js + required dependencies
# NOTE 1: Older i386 hardware can work with [unofficial-builds.nodejs.org](<https://unofficial-builds.nodejs.org/download/release/v16.15.0/> e.g. Version 16.15.0 should work.
# NOTE 2: For Ubuntu see tip below
sudo curl -fsSL <https://deb.nodesource.com/setup_16.x> | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

# Verify that the correct nodejs and npm (automatically installed with nodejs)
# version has been installed
node --version  # Should output v14.X, V16.x, V17.x or V18.X

sudo apt install nodejs npm
npm --version  # Should output 6.X, 7.X or 8.X

# Create a directory for zigbee2mqtt and set your user as owner of it
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt

# Clone Zigbee2MQTT repository
git clone --depth 1 <https://github.com/Koenkk/zigbee2mqtt.git> /opt/zigbee2mqtt

# Install dependencies (as user "pi")
cd /opt/zigbee2mqtt
npm ci

 

zigbee2mqtt 실행 및 환경 설정(configuration.yaml)

zigbee2mqtt의 구동 환경은 기본적으로 아래와 같은 필수 요소와 optional한 요소를 가진다.

(option) zigbee2mqtt conf

[ 필수요소 및 각 property configurations ]

- mqtt = MQTT server(mosquitto) configuration

             (mqtt의 출력 값 및 형태 설정가능(json 등..) & mqtt 메시징 암호화 설정 방법 등등

- serial = adapter & adapter Serial connection settings

- advanced = zigbee network settings

- frontend = zigbee2mqtt default frontend

 

[ 선택사항 optional configuration ]

- homeassistant = HA 연동 유무 및 HA configurations

- devices = device와 Groups에 대한 수동 설정

- advanced (log) = 필수요소의 advanced에 대한 log 요소

- blocklist, passlist = z2m 애플리케이션 이하 block 및 pass할 디바이스 설정

 

 

최초의 basic한 동작을 위해 아래와 같이 configuration.yaml을 zigbee2mqtt package dir의 data dir에 생성해야한다.

raspberry pi 4 기준 초기 pass는 다음과 같다.

(/opt/zigbee2mqtt/data/configuration.yaml)

#homeassistant: false
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost:1883
serial:
  port: /dev/ttyACM0
advanced:
	network_key: GENERATE
frontend: true

npm start zigbee2mqtt service start

마지막으로 z2m 프로세스를 실행해준다.

cd /opt/zigbee2mqtt

npm install
npm start

--------------------------------
권한 오류 발생 시 zigbee2mqtt 이하 접근 권한 변경

sudo chmod -R 777 zigbee2mqtt

 

아래와 같은 출력을 가질 시 정상적으로 z2m이 실행되어 이제 mosquitto broker를 통해 메시징이 가능해진다.