Docker部署Home Assistant 及MQTT

0
33

一、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)

  1. 打开 Home Assistant设置设备与服务
  2. 点击右下角 添加集成
  3. 搜索 MQTT
  4. 填写以下信息:
    • 主机名:如 192.168.1.100
    • 端口:1883
    • 用户名 / 密码:MQTT 中设置的
  5. 点击 提交

三、配置 HASS.Agent 与 MQTT

第一步:下载并安装 HASS.Agent

  1. 前往官方发布页面下载最新版 .exe
  2. 双击安装

第二步:配置 HASS.Agent

配置 Home Assistant API

  1. HASS.Agent → Configuration > Home Assistant API
  2. 输入地址,例如:
http://10.10.10.88:8123
  1. 在 Home Assistant 中:
    • 用户配置文件 → 长期访问令牌 → 创建新令牌
    • 复制 token 到 HASS.Agent
  2. 点击 Test Connection 测试连接

配置 MQTT

  1. HASS.Agent → Configuration > MQTT
  2. 填写:
    • MQTT 地址,如 192.168.1.100
    • 端口:1883
    • 用户名 / 密码
  3. 点击 Test Connection

第三步:添加命令

  1. 在主界面点击 Commands
  2. 点击 Add New
  3. 选择命令(如 Shutdown、Restart 等)
  4. 点击 SaveSave & Activate

第四步:在 Home Assistant 中验证

  1. Home Assistant → 设置设备与服务
  2. 找到 MQTT 集成
  3. 应能看到刚通过 HASS.Agent 添加的传感器、命令等实体

发布回复

请输入评论!
请输入你的名字