[AI路由器] 安装 MQTT broker(Mosquitto)
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传递协议,常用于物联网(IoT)设备之间的通信。 在 Home Assistant 中,MQTT 常用于自动化集成。例如,当你使用 Frigate 进行视频分析(如检测到有人进入特定区域),Frigate 会通过 MQTT 向 Home Assistant 发送消息,从而触发其他自动化操作(如开灯、发送通知等)。
MQTT 的角色:
MQTT 协议中的角色? 以 Frigate 集成 IP 摄像头与 Home Assistant 的场景为例:
- 发布者 (Publisher) : Frigate。当 Frigate 从 IP 摄像头的画面中检测到事件(例如,有人进入特定区域),它会将此事件作为一条消息发布到 MQTT 代理服务器。
- 订阅者 (Subscriber) : Home Assistant。它会订阅 Frigate 发布消息的特定主题。当 Home Assistant 收到消息后,便可触发自动化操作(例如开灯、发送通知)。
- 代理服务器 (Broker) : Mosquitto。它扮演中间人的角色,接收来自 Frigate 的消息,并将其转发给订阅该主题的 Home Assistant。 在这个例子中,Frigate 和 Home Assistant 彼此并不直接通信,而是通过 Mosquitto 这个 MQTT 代理服务器(Broker)来进行消息的传递与管理。
1. 前置准备
- 确认会使用 Portainer 的基本操作,可参考 用 AdGuard Home 案例认识 Docker、Image、Container、Portainer的教程。
- 过程中会用到 vi 这个文本编辑器的基本操作,可先上网查找相关教程。
2. 安装 Mosquitto
2-1. 使用 Portainer 部署 Mosquitto:
- 进入 Portainer 的「Stacks」页面,点击「Add Stack」。
- 将此 Stack 命名为 mosquitto。
- 在「Web editor」中,粘贴以下配置:

version: "3.8" services: # --- MQTT Broker (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" # WebSocket volumes: mosquitto_config: mosquitto_data: mosquitto_log: |
2-2. 点击「Deploy the stack」按钮,完成部署。

3. 配置 Mosquitto
3-1. 进入 Portainer 的「Containers」页面,找到mosquitto。
3-2. 点击 mosquitto 进入容器详情页面,点击「Console」标签。

3-3. 在「Command」栏输入 /bin/sh,点击 「Connect」按钮,进入容器命令行界面。

3-4. 在命令行中输入以下命令,创建密码文件
mosquitto_passwd -c -b /mosquitto/config/passwd <username> <password>
<username> 和 <password> 替换为你想设置的用户名和密码(建议使用英文和数字组合,且账号密码开头不要用 # 符号) 确认文件创建:你可以输入 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 的「Containers」页面,找到mosquitto。
- 点击 mosquitto 进入容器详情页面,点击「Restart」按钮,重启容器。

4. 在 Home Assistant 中设置 MQTT 集成
4-1. 进入 Home Assistant 的「设置 (Settings)」>「设备与服务 (Devices & services),点击「新增集成 (ADD INTEGRATION)」。
4-2. 搜索并选择「MQTT」。

4-3. 在弹出的对话框中,选择 MQTT,输入以下信息:
- Broker: localhost 或 AI board 的 IP 地址
- Port: 1883
- Username: 你在上一步为 mosquitto 设置的账号
- Password: 你为 mosquitto 设置的密码


4-4. 完成后,你可以使用 MQTT 客户端连接到 mosquitto。

如何取得(Utility / Firmware)?
您可以在华硕下载中心取得最新的软件、手册、驱动程序和固件。
如果您需要有关华硕下载中心的更多信息,请参考此链接。