[AI 공유기] MQTT 브로커(Mosquitto) 설치
MQTT [메시지 큐잉 텔레메트리 트랜스포트]는 IoT 기기 간의 통신에 일반적으로 사용되는 경량 메시지 프로토콜입니다. Home Assistant에서는 MQTT가 자동화 통합에 자주 사용됩니다. 예를 들어, Frigate를 사용하여 영상 분석(예: 특정 영역에 사람이 들어오는 것을 감지)을 할 때, Frigate는 MQTT를 통해 Home Assistant에 메시지를 보내고, Home Assistant는 이 메시지를 받아 다른 자동화(예: 조명 켜기 또는 알림 전송)를 트리거할 수 있습니다.
MQTT 역할:
MQTT 프로토콜에서 역할은 무엇인가요? Frigate IP 카메라를 Home Assistant와 통합하는 시나리오를 예로 들면:
- Publisher: Frigate. Frigate가 IP 카메라 피드에서 이벤트(예: 누군가 특정 영역에 들어옴)를 감지하면, 이 이벤트를 메시지로 MQTT broker에 발행합니다.
- Subscriber: Home Assistant. Frigate가 발행한 특정 토픽을 구독합니다. Home Assistant가 메시지를 받으면, 자동화(예: 조명 켜기 또는 알림 전송)를 트리거할 수 있습니다.
- Broker: Mosquitto. 중개자 역할을 하며, Frigate로부터 메시지를 받아 Home Assistant 구독자에게 전달합니다. 이 예시에서는 Frigate와 Home Assistant가 직접 통신하지 않고, Mosquitto MQTT broker를 통해 메시지를 주고받습니다.
1. 사전 준비 사항
- Portainer의 기본적인 조작법에 익숙한지 확인하세요. 안내서를 참고할 수 있습니다 Docker, 이미지, 컨테이너, Portainer 이해하기 [AdGuard Home 예제].
- 일부 단계에서는 vi 텍스트 편집기를 사용해야 합니다. 익숙하지 않다면 vi 기본 튜토리얼을 온라인에서 찾아보세요.
2. Mosquitto 설치
2-1. Portainer에서 Mosquitto 배포:
- Portainer의 [스택] 페이지로 이동하여 [스택 추가]를 클릭하세요.
- 이 스택의 이름을 mosquitto로 지정하세요.
- [웹 편집기]에서 아래 구성을 붙여넣으세요:

version: "3.8" services: # --- MQTT 브로커 (Eclipse Mosquitto) --- mosquitto: image: eclipse-mosquitto:2 container_name: mosquitto restart: unless-stopped volumes: - mosquitto_config:/mosquitto/config - mosquitto_data:/mosquitto/data - mosquitto_log:/mosquitto/log
ports: - "1883:1883" # MQTT - "9001:9001" # 웹소켓 볼륨: mosquitto_config: mosquitto_data: mosquitto_log: |
2-2. [스택 배포] 버튼을 클릭하여 배포를 완료합니다.

3. Mosquitto 구성
3-1. Portainer의 [컨테이너] 페이지로 이동하여 mosquitto를 찾습니다.
3-2. mosquitto를 클릭하여 컨테이너 상세 페이지로 들어간 다음 [콘솔] 탭을 클릭합니다.

3-3. [명령어] 필드에 /bin/sh를 입력합니다.그리고 [연결]을 클릭하여 컨테이너의 명령줄 인터페이스를 엽니다.

3-4. 명령줄에서 다음 명령어를 입력하여 비밀번호 파일을 생성합니다:
mosquitto_passwd -c -b /mosquitto/config/passwd <사용자이름> <비밀번호>
<사용자이름>과 <비밀번호>를 원하는 사용자 이름과 비밀번호로 바꿉니다 (영문자와 숫자만 사용하고 #으로 시작하지 마세요). 파일이 생성되었는지 확인하려면: ls /mosquitto/config 명령어를 실행하여 mosquitto.conf와 passwd 파일이 모두 있는지 확인하세요.

3-5. Mosquitto 설정 파일 mosquitto.conf을 편집하려면 다음을 입력하세요:
vi /mosquitto/config/mosquitto.conf

3-6. mosquitto.conf에서 비밀번호 파일 경로를 지정하고 익명 접근을 비활성화하려면 아래 설정을 추가하세요: i를 눌러 입력 모드로 들어간 후, 아래 내용을 파일의 처음 또는 끝에 추가합니다. 텍스트를 붙여넣기 위해 ctrl + shift + v를 vi 에디터에서 사용할 수 있습니다.
allow_anonymous false password_file /mosquitto/config/passwd listener 1883 0.0.0.0 socket_domain ipv4 |

3-7. Esc를 누르세요, :wq를 입력하고 Enter를 눌러 저장하고 에디터를 종료하세요. (변경 사항을 취소하려면 :q! 를 입력한 후 Enter를 누르세요.)

3-8. Mosquitto 컨테이너를 재시작하여 설정을 적용하세요:
- Portainer에서 [컨테이너] 페이지로 돌아가서 mosquitto를 찾으세요.
- mosquitto를 클릭하여 컨테이너 상세 페이지로 들어간 다음, [재시작] 버튼을 클릭하세요.

4. Home Assistant에서 MQTT 연동 설정
4-1. Home Assistant에서 [설정] > [장치 및 서비스]로 이동한 후 [연동 추가]를 클릭하세요.
4-2. [MQTT]를 검색하여 선택하세요.

4-3. 팝업 대화 상자에서 MQTT를 선택하고 다음 정보를 입력합니다:
- Broker: localhost 또는 AI 보드의 IP 주소
- Port: 1883
- Username: Mosquitto에 설정한 사용자 이름
- Password: Mosquitto에 설정한 비밀번호


4-4. 완료되면 MQTT 클라이언트를 사용하여 Mosquitto에 연결할 수 있습니다.

(유틸리티 / 펌웨어)를 얻는 방법?
최신 driver, 소프트웨어, 펌웨어 및 사용자 설명서는 ASUS 다운로드 센터에서 다운로드할 수 있습니다.
추가 정보가 필요하다면 ASUS 다운로드 센터에 대해서는 이 링크를 참고하세요.