一、Docker-compose.yml 配置
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:latest
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
network_mode: host
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
restart: unless-stopped
network_mode: host
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./mosquitto/config/passwd:/etc/mosquitto/passwd
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
二、MQTT 配置
1. mosquitto.conf 配置文件
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
请确保
password_file指向容器内的正确路径。
2. 创建和配置密码文件
安装 mosquitto-clients(如果尚未安装)
sudo apt install mosquitto-clients
使用 mosquitto_passwd 创建密码文件并添加用户
mosquitto_passwd -c ./mosquitto/config/passwd your_username
系统会提示输入密码并确认。
设置权限
chmod 600 ./mosquitto/config/passwd
如果需要,可将文件所有者设置为容器内 Mosquitto 的用户(常为 UID 1883):
sudo chown 1883:1883 ./mosquitto/config/passwd
主机上未必存在 1883 用户,无影响。
3. 重启 Mosquitto 容器
docker-compose down
docker-compose up -d
查看日志确认配置成功:
docker logs mosquitto
若日志中无“无法打开密码文件”等错误,则说明配置成功。
4. 添加 MQTT 集成(Home Assistant)
- 打开 Home Assistant → 设置 → 设备与服务
- 点击右下角 添加集成
- 搜索 MQTT
- 填写以下信息:
- 主机名:如
192.168.1.100 - 端口:
1883 - 用户名 / 密码:MQTT 中设置的
- 主机名:如
- 点击 提交
三、配置 HASS.Agent 与 MQTT
第一步:下载并安装 HASS.Agent
- 前往官方发布页面下载最新版
.exe - 双击安装
第二步:配置 HASS.Agent
配置 Home Assistant API
- HASS.Agent → Configuration > Home Assistant API
- 输入地址,例如:
http://10.10.10.88:8123
- 在 Home Assistant 中:
- 用户配置文件 → 长期访问令牌 → 创建新令牌
- 复制 token 到 HASS.Agent
- 点击 Test Connection 测试连接
配置 MQTT
- HASS.Agent → Configuration > MQTT
- 填写:
- MQTT 地址,如
192.168.1.100 - 端口:
1883 - 用户名 / 密码
- MQTT 地址,如
- 点击 Test Connection
第三步:添加命令
- 在主界面点击 Commands
- 点击 Add New
- 选择命令(如 Shutdown、Restart 等)
- 点击 Save → Save & Activate
第四步:在 Home Assistant 中验证
- Home Assistant → 设置 → 设备与服务
- 找到 MQTT 集成
- 应能看到刚通过 HASS.Agent 添加的传感器、命令等实体








