zigbee2mqtt 설치
(이전 글에 합쳐져있던 내용을 새 글로 분리)
zigbee2mqtt (이하 z2m) 은 mqtt 란 프로토콜을 기반으로 작동하는건데,
z2m은 mqtt 클라이언트로서 연결할 mqtt broker (서버라고 생각하면 됨)가 필요하다.
docker 로 mqtt broker 인 eclipse-mosquitto 와 z2m 둘 다 설치할거임.
# eclipse-mosquitto 이미지 다운 및 실행
docker pull eclipse-mosquitto
sudo docker run -d \
--name=mosquitto \
-p 1883:1883 \
-p 9001:9001 \
--restart=always \
-v /home/pi/ha/mosquitto/data:/mosquitto/data \
-v /home/pi/ha/mosquitto/log:/mosquitto/log \
eclipse-mosquitto
# z2m 이미지 다운 및 실행
docker pull koenkk/zigbee2mqtt
docker run -d \
--name="z2m" \
--net=host \
--restart=always \
-v /home/pi/ha/z2m:/app/data \
--device=/dev/ttyACM0 \
-v /run/udev:/run/udev:ro \
-e TZ=Asia/Seoul \
--privileged=true \
koenkk/zigbee2mqtt
설정 파일 경로는 이전글에 이어서 /home/pi/ha/ 폴더 안에 각 폴더를 만들고 지정해주었다.
z2m 실행시 필요한 --device 이름 역시 필요하다면 알아서 바꿔주자.
z2m 의 설정을 조금 변경해준다.
기본값으로 꺼져있는 homeassistant 를 켜주고, devices, group 을 관리하기 편하게 별도 파일로 만든다
cd ~/ha/z2m
sudo touch devices.yaml groups.yaml
sudo vi /home/pi/ha/z2m/configuration.yaml
homeassistant: true
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://localhost'
serial:
port: /dev/ttyACM0
devices: devices.yaml
groups: groups.yaml
zigbee 장비가 다 추가되고 나면 permit_join: false 로 바꿔주면 됨.
그 다음 HA의 설정도 변경, mqtt 항목을 추가해준다.
mqtt broker 를 추가하는거기 때문에 혹시나 eclipse-mosquitto 를 다른 장비나 다른 포트에서 작동시킬 경우 적당히 수정해주자.
sudo vi ~/ha/config/configuration.yaml
mqtt:
broker: 127.0.0.1
discovery: true
둘 다 재시작
docker restart z2m home-assistant
이제 HA의 통합 구성요소에 MQTT 가 나타나고 기기와 구성요소에도 z2m을 통해 연결된 장비가 나타단다.
deCONZ 로는 안 보였던 다원 스마트 플러그의 전력량도 잘 보이고, 다원 전등 스위치도 연결이 잘 됨.
실시간으로 올라오는 z2m의 로그를 보려면
tail -f $(ls -td ~/ha/z2m/log/*/ | head -1)log.txt
이렇게 하면 됨. z2m을 재시작할 때마다 실행 시간으로 디렉토리가 생긴다.
tail 명령어로 열었는데, 지난 로그를 보고 싶으면 vim이나 nano 등으로 직접 열어봐도 됨.
'IoT' 카테고리의 다른 글
RPi를 이용한 CC2531 펌웨어 플래싱 (0) | 2020.08.13 |
---|---|
RPi HA에 deCONZ 설치하기 (ConBee II) (0) | 2020.08.13 |
RPi에 Home Assistant 설치하기 (+HomeBridge) (0) | 2020.08.11 |
도어락 제어하기 1탄 (하지만 2탄은 영원히 미정) (11) | 2017.11.12 |
IoT 전등 스위치를 직접 만들어보기 (아두이노, BLE, HomeKit) 3탄 (7) | 2017.08.24 |